othree
14 years ago
4 changed files with 161 additions and 4 deletions
@ -0,0 +1,99 @@ |
|||||||
|
/* |
||||||
|
* TypeHelpers version 1.0 |
||||||
|
* Zoltan Hawryluk, Nov 24 2009. |
||||||
|
* @see http://www.useragentman.com/blog/2009/11/29/how-to-detect-font-smoothing-using-javascript/
|
||||||
|
* |
||||||
|
* Released under the MIT License. http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* |
||||||
|
* Works for |
||||||
|
* - IE6+ (Windows), |
||||||
|
* - Firefox 3.5+ (Windows, Mac, Linux), |
||||||
|
* - Safari 4+ (Windows, Mac OS X), |
||||||
|
* - Chrome 3.0+ (Windows). |
||||||
|
* Opera 10.10 and under reports unknown support for font-smoothing. |
||||||
|
* |
||||||
|
* Modified by Christian Beier (www.beier-christian.eu) to detect the ClearType technology. |
||||||
|
* |
||||||
|
* Required: jQuery 1.3.x |
||||||
|
* |
||||||
|
* |
||||||
|
* METHODS |
||||||
|
* ------- |
||||||
|
* |
||||||
|
* hasSmoothing() returns: |
||||||
|
* true if font smoothing is enabled |
||||||
|
* false if font smoothing isn't enabled |
||||||
|
* null if it cannot detect if it's on or not. |
||||||
|
* |
||||||
|
* addClasses() adds the following classes to the html tag: |
||||||
|
* "hasFontSmoothing-true" if font smoothing is enabled |
||||||
|
* "hasFontSmoothing-false" if it isn't |
||||||
|
* "hasFontSmoothing-unknown" if it cannot detect it. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
var TypeHelpers = new function(){ |
||||||
|
var me = this; |
||||||
|
|
||||||
|
me.hasSmoothing = function(){ |
||||||
|
// IE has screen.fontSmoothingEnabled - sweet!
|
||||||
|
if (typeof(screen.fontSmoothingEnabled) != "undefined") { |
||||||
|
return screen.fontSmoothingEnabled; |
||||||
|
} else { |
||||||
|
try { |
||||||
|
// Create a 35x35 Canvas block.
|
||||||
|
var canvasNode = document.createElement("canvas"); |
||||||
|
canvasNode.width = "35"; |
||||||
|
canvasNode.height = "35" |
||||||
|
|
||||||
|
// We must put this node into the body, otherwise
|
||||||
|
// Safari Windows does not report correctly.
|
||||||
|
canvasNode.style.display = "none"; |
||||||
|
document.body.appendChild(canvasNode); |
||||||
|
var ctx = canvasNode.getContext("2d"); |
||||||
|
|
||||||
|
// draw a black letter "O", 32px Arial.
|
||||||
|
ctx.textBaseline = "top"; |
||||||
|
ctx.font = "32px Arial"; |
||||||
|
ctx.fillStyle = "black"; |
||||||
|
ctx.strokeStyle = "black"; |
||||||
|
|
||||||
|
ctx.fillText("O", 0, 0); |
||||||
|
|
||||||
|
// start at (8,1) and search the canvas from left to right,
|
||||||
|
// top to bottom to see if we can find a non-black pixel. If
|
||||||
|
// so we return true.
|
||||||
|
for (var j = 8; j <= 32; j++) { |
||||||
|
for (var i = 1; i <= 32; i++) { |
||||||
|
var imageData = ctx.getImageData(i, j, 1, 1).data |
||||||
|
var alpha = imageData[3]; |
||||||
|
|
||||||
|
if (alpha != 255 && alpha != 0 && alpha > 180) { |
||||||
|
return true; // font-smoothing must be on.
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
// didn't find any non-black pixels - return false.
|
||||||
|
return false; |
||||||
|
} |
||||||
|
catch (ex) { |
||||||
|
// Something went wrong (for example, Opera cannot use the
|
||||||
|
// canvas fillText() method. Return null (unknown).
|
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$(document).ready(function() { |
||||||
|
var result = me.hasSmoothing(); |
||||||
|
if (result == true) { |
||||||
|
$('html').addClass('hasFontSmoothing-true'); |
||||||
|
} else if (result == false) { |
||||||
|
$('html').addClass('hasFontSmoothing-false'); |
||||||
|
} else { // result == null
|
||||||
|
$('html').addClass('hasFontSmoothing-unknown'); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
html { |
||||||
|
font-family: serif; |
||||||
|
} |
||||||
|
|
||||||
|
html.hasFontSmoothing-true { |
||||||
|
font-family: "微軟正黑體", "Microsoft JhengHei", sans-serif; |
||||||
|
} |
||||||
|
|
||||||
|
div.wikistyle{width:960px} |
||||||
|
|
||||||
|
div.wikistyle{background-color:#f8f8f8;padding:.7em;} |
||||||
|
div.wikistyle{border:1px solid #e9e9e9;} |
||||||
|
|
||||||
|
.wikistyle h1,.wikistyle h2,.wikistyle h3,.wikistyle h4,.wikistyle h5,.wikistyle h6{border:0!important;} |
||||||
|
.wikistyle h1{font-size:170%!important;border-top:4px solid #aaa!important;padding-top:.5em!important;margin-top:1.5em!important;} |
||||||
|
.wikistyle h1:first-child{margin-top:0!important;padding-top:.25em!important;border-top:none!important;} |
||||||
|
.wikistyle h2{font-size:150%!important;margin-top:1.5em!important;border-top:4px solid #e0e0e0!important;padding-top:.5em!important;} |
||||||
|
.wikistyle h3{margin-top:1em!important;} |
||||||
|
.wikistyle p{margin:1em 0!important;line-height:1.5em!important;} |
||||||
|
.wikistyle a.absent{color:#a00;} |
||||||
|
.wikistyle ul,#wiki-form .content-body ul{margin:1em 0 1em 2em!important;} |
||||||
|
.wikistyle ol,#wiki-form .content-body ol{margin:1em 0 1em 2em!important;} |
||||||
|
.wikistyle ul li,#wiki-form .content-body ul li,.wikistyle ol li,#wiki-form .content-body ol li{margin-top:.5em;margin-bottom:.5em;} |
||||||
|
.wikistyle ul ul,.wikistyle ul ol,.wikistyle ol ol,.wikistyle ol ul,#wiki-form .content-body ul ul,#wiki-form .content-body ul ol,#wiki-form .content-body ol ol,#wiki-form .content-body ol ul{margin-top:0!important;margin-bottom:0!important;} |
||||||
|
.wikistyle blockquote{margin:1em 0!important;border-left:5px solid #ddd!important;padding-left:.6em!important;color:#555!important;} |
||||||
|
.wikistyle dt{font-weight:bold!important;margin-left:1em!important;} |
||||||
|
.wikistyle dd{margin-left:2em!important;margin-bottom:1em!important;} |
||||||
|
.wikistyle table{margin:1em 0!important;} |
||||||
|
.wikistyle table th{border-bottom:1px solid #bbb!important;padding:.2em 1em!important;} |
||||||
|
.wikistyle table td{border-bottom:1px solid #ddd!important;padding:.2em 1em!important;} |
||||||
|
.wikistyle pre{margin:1em 0;font-size:12px;background-color:#eee;border:1px solid #ddd;padding:5px;line-height:1.5em;color:#444;overflow:auto;-webkit-box-shadow:rgba(0,0,0,0.07) 0 1px 2px inset;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} |
||||||
|
.wikistyle pre::-webkit-scrollbar{height:8px;width:8px;} |
||||||
|
.wikistyle pre::-webkit-scrollbar-track-piece{margin-bottom:10px;background-color:#e5e5e5;border-bottom-left-radius:4px 4px;border-bottom-right-radius:4px 4px;border-top-left-radius:4px 4px;border-top-right-radius:4px 4px;} |
||||||
|
.wikistyle pre::-webkit-scrollbar-thumb:vertical{height:25px;background-color:#ccc;-webkit-border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(255,255,255,1);} |
||||||
|
.wikistyle pre::-webkit-scrollbar-thumb:horizontal{width:25px;background-color:#ccc;-webkit-border-radius:4px;} |
||||||
|
.wikistyle pre code{padding:0!important;font-size:12px!important;background-color:#eee!important;border:none!important;} |
||||||
|
.wikistyle code{font-size:12px!important;background-color:#f8f8ff!important;color:#444!important;padding:0 .2em!important;border:1px solid #dedede!important;} |
||||||
|
.wikistyle a code,.wikistyle a:link code,.wikistyle a:visited code{color:#4183c4!important;} |
||||||
|
.wikistyle img{max-width:100%;} |
||||||
|
.wikistyle pre.console{margin:1em 0!important;font-size:12px!important;background-color:black!important;padding:.5em!important;line-height:1.5em!important;color:white!important;} |
||||||
|
.wikistyle pre.console code{padding:0!important;font-size:12px!important;background-color:black!important;border:none!important;color:white!important;} |
||||||
|
.wikistyle pre.console span{color:#888!important;} |
||||||
|
.wikistyle pre.console span.command{color:yellow!important;} |
||||||
|
.wikistyle .frame{margin:0;display:inline-block;} |
||||||
|
.wikistyle .frame img{display:block;} |
||||||
|
.wikistyle .frame>span{display:block;border:1px solid #aaa;padding:4px;} |
||||||
|
.wikistyle .frame span span{display:block;font-size:10pt;margin:0;padding:4px 0 2px 0;text-align:center;line-height:10pt;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;} |
||||||
|
.wikistyle .float-left{float:left;padding:.5em 1em .25em 0;} |
||||||
|
.wikistyle .float-right{float:right;padding:.5em 0 .25em 1em;} |
||||||
|
.wikistyle .align-left{display:block;text-align:left;} |
||||||
|
.wikistyle .align-center{display:block;text-align:center;} |
||||||
|
.wikistyle .align-right{display:block;text-align:right;} |
Loading…
Reference in new issue