对于我的website,我选择在我的字体系列中使用一些非常模糊的字体。最着名的字体(家庭中的第3个)是Century Gothic,大多数计算机都有。
font-family:Tw Cen MT,Gill Sans,Century Gothic,sans-serif;
问题是世纪哥特式的12px字体远远大于Tw Cen MT& 12中的12px字体。吉尔桑斯。如果计算机依赖于Century Gothic,那么字体就会变得一团糟。我需要一个Jquery解决方案,说世纪哥特式的字体大小是正常值的75%。我不需要它来检测字体。我只需要它说,如果使用世纪gotchi,使字体大小为正常值的75%。任何解决方案?
答案 0 :(得分:1)
如果你构成垂直节奏,这不应该造成很大的问题。
http://24ways.org/2006/compose-to-a-vertical-rhythm
这完全是矫枉过正,但您可以使用http://www.lalit.org/lab/javascript-css-font-detect并创建条件。
我真的建议使用像第一种方法(垂直节奏)这样的东西来使整个问题尽可能无关紧要。你晚上睡得好多了。
答案 1 :(得分:0)
我认为这个问题是世纪哥特式的相对较高的x高度。尝试在ex
声明中使用font-size
个单元。 ex
单位基于身高,与em
,px
和pt
不同。
将line-height
设置为像素大小也有助于规范高度,但会对在浏览器中更改文本缩放级别的用户造成问题。
编辑:我回去测试了,前单位没有帮助。 Century Gothic比其他人更高更宽。
问题是,DOM 不允许您从列出的替代品中分辨出用户具有哪种特定字体,而CSS不允许为每种字体分别设置字体(或调整)。
但是,JQuery 可以测试文本容器的大小。因此,如果您在页面上提供了一个隐藏元素,其中包含一个已知字母,您可以在用户的浏览器上测试该元素的宽度。
由于该字母的宽度将由用户安装的字体确定,因此您可以将该宽度与您自己计算机上首选字体中相同文本的宽度进行比较,并为用户大致计算字体大小符合你的意图。
示例代码:
<style>
p { font-size: 15pt;
font-family:"Tw Cen MT","Gill Sans","Century Gothic",sans-serif;
}
p#testwidth {
/* Ensure test is invisible and isn't messed up with borders, etc. */
margin:0; padding:0; border:none; color:white; display:inline;
}
</style>
<p>Your text goes here.</p>
<p id="testwidth">m</p>
<script language="Javascript">
window.onload = function() {
// Same as your default CSS for font-size (just the number, not the units)
var desiredFontSize = 15;
// Experiment by testing width when Tw Cen MT *is* available. In pixels.
var expectedWidth = 17;
// width found will depend which font is available
var testedWidth = $('#testwidth').width();
// ratio, rounded to one decimal point
var normalizedFontSize = Math.round(
expectedWidth / testedWidth * desiredFontSize * 10) / 10;
// change the stylesheet to "fix" the font size (in your preferred units)
$('p').css('font-size', normalizedFontSize + 'pt');
}
四个警告:
答案 2 :(得分:0)
lalit.org上有一个脚本,用于猜测用户机器上可用的字体。
您可以使用它来查看是否正在使用Century Gothic,如果是这样,请加载一个额外的样式表来修改您的字体大小。