我打电话$("#foobar").css("line-height")
并恢复“正常”。如何将其转换为像素量?在CSS规范中定义“正常”还是浏览器特定?jQuery/CSS:“正常”的行高== ==?px
回答
正常实际上被称为abnormal
在several instances,因为存在相当大的浏览器不一致性。
声明的line-height:正常不仅 从浏览器有所不同的浏览器,这是我 此前预计,事实上,量化 这些差异是整个 点,但也从一个字体 面变化另一个,并且也可以在给定的面内变化 。
我认为它值得提供一个链接回到埃里克迈耶的网站为您的报价来源,一个迷人的阅读:http://meyerweb.com/eric/thoughts/2008/05/ 06/line-height-abnormal/ – 2010-09-01 01:14:45
-1,因为这不会接近回答问题。良好的信息,但应该是一个评论。 – 2012-04-26 14:02:41
@MartinJespersen我不会删除答案,即使现在阅读它,我仍然认为我的答案是正确的,因为'normal'是浏览器特定的,因此,跨浏览器不一致,不应该转换为像素。这表示我非常感谢您花时间提供关于downvote的反馈,谢谢! :) – Frankie 2012-04-26 19:34:26
normal
是line-height
的有效设置,因此对于那些将返回该值的浏览器并没有真正的解决方法。
或者,您可以使用.css('height')
,因为它只会计算元素的内部部分,而不是padding/border/margin。如果你有一个多行元素,或者一个元素不仅仅是文本,它会带来一点创意。
编辑:周围的工作的一个例子是具有
<span id='def' style='line-height:inherit;display:none;'> </span>
的元素中,然后找到行高你可以只使用#def的.height()
因为它总是只有一行,因此也就是父元素的行高。
浏览器在Windows XP是,除非明确规定,否则在返回的jsfiddle一个normal
浏览器的一个例子。 Firefox返回一个像素数。 normal
是每个w3规格的初始值。 http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height
显然你提供的解决方法似乎是最好的选择。感谢那。 – inhan 2013-10-29 20:13:05
据this page,看来最近的浏览器使用line-height: normal
相同的值:1.14,ID EST的font-size
财产与1.14系数。
试图与几个浏览器(在Windows XP):
- 的Chrome 21.0.1180.75
- 火狐14.0.1
- 的Safari 5.1.7
- 歌剧11.64
- IE 7
- IE 8
编辑
我错了,line-height
取决于font-family
,font-size
,您的浏览器,也许你的操作系统...
更多阅读Eric Meyers' website。
note:line-height:1em; == font-size:* any * px; – 2013-01-16 12:22:12
那么这是否意味着“line-height:1.14em”是等价但明确的陈述? – 2013-06-12 14:54:44
我以为,但事实并非如此。 'line-height'取决于'font-family','font-size',你的浏览器,也许你的操作系统......你会在[Eric Meyers的网站]上找到一些阅读(http://meyerweb.com/埃里克/想法/ 2008/05/06 /行高-异常/) – zessx 2013-06-12 15:14:46
精确计算像素中的法线高度很困难。虽然,根据MDN它大约1.2em。
如果您已经:
body{
font-size: 16px;
}
所以,你的网站有正常的字体大小为16像素,然后正常的line-height将大致24px
。这意味着您可以计算正常的字体大小像素值乘以1.5
即16px * 1.5 == 24px
注意:由于px值和em值之间存在差异,所以我没有乘以1.2。
然而,这是很久以前写的,但帮助我在我的任务中写下临时解决方案。我正在复制这些代码,而不是其他人可以使用的代码。
$('#lineHeightInc')
.click(function() {
var box = GetSelectedBox();
var ct = box.data('LineHeight');
if (isNaN(ct))
ct = 0;
ct++;
box.css('line-height', (parseFloat(box.css('font-size')) * 1.61 + ct) + 'px');
box.data('LineHeight', ct);
});
$('#lineHeightDic')
.click(function() {
var box = GetSelectedBox();
var ct = box.data('LineHeight');
if (isNaN(ct))
ct = 0;
ct--;
box.css('line-height', (parseFloat(box.css('font-size')) * 1.61 + ct) + 'px');
box.data('LineHeight', ct);
});
- 1. 添加PX回到div高度
- 2. 身高:100%css无法正常工作
- 3. 启用iPhone(20 PX发行)
- 4. getheight()px或dpi?
- 5. java的正则表达式来替换{VAR} PX与{VAR}次{VAR} PX
- 6. clearTimeout无法正常运行
- 7. calc()100%+ #px
- 8. 确定最高的正常形式
- 9. Photoshop px与操作系统px
- 10. 使用JTable.setRowHeight不能正常工作更改行高度
- 11. 试图让填充和行高正常显示在FF
- 12. 运行不正常
- 13. CSS - currentwidth + px
- 14. python的正常行为?
- 15. 身高:自动;工作不正常
- 16. 身高:100%无法正常工作?
- 17. jvm conf正常gc在高负载下
- 18. Div高度100%不能正常工作
- 19. Bootstrap v3.3具有不寻常的行高
- 20. 正确调整行高
- 21. Javascript:execcommand fontsize px
- 22. 变化高度在IE无法正常工作
- 23. CSS TR高度使用比例及台面高度不工作时是在PX
- 24. Googlechart宽度和高度作为VW而不是PX
- 25. 如何让高度jQuery标签内容800 px?
- 26. 调试执行工作正常,但正常的出现segfaults
- 27. CSS px VS Android dp
- 28. 如何正确更改TableView的行高?
- 29. 为什么我的算法降低元件的高度不正常
- 30. 是否可以在C#中打印一个半行(正常高度的1.5倍)?
您正在使用哪种浏览器/平台?现场演示可能也有帮助(http://jsbin.com和http://jsfiddle.net都很好)。按照预期,Firefox 3.6.8和Chrome 6.0.472.51测试版(在Ubuntu 10.04上)都返回像素值。在SO'$('div.container').css('line-height');'返回11.2px(FF)。 – 2010-09-01 00:59:40
在Windows XP上的Chrome返回'normal' – Robert 2010-09-01 01:38:13