我正在呼叫$("#foobar").css("line-height")
并恢复“正常”。如何将其转换为像素数量? CSS规范中是“正常”定义还是浏览器特定?
答案 0 :(得分:14)
根据this page,似乎大多数最近的浏览器对line-height: normal
使用相同的值:1.14,id为font-size
属性,系数为1.14。
尝试使用多种浏览器(在Windows XP上):
修改强>
我错了,line-height
取决于font-family
,font-size
,您的浏览器,也许是您的操作系统......
更多阅读Eric Meyers' website。
答案 1 :(得分:6)
normal
是line-height
的有效设置,因此对于将返回该浏览器的浏览器而言,实际上没有办法解决这个问题。
或者,您可以使用.css('height')
,因为它只会计算元素的内部部分,而不是填充/边框/边距。如果你有一个多行元素,或者一个元素不仅仅包含文本,那么这需要一点创造力。
编辑:解决方法的一个例子是
<span id='def' style='line-height:inherit;display:none;'> </span>
在元素中,然后找到行高,你可以使用#{1}的#def,因为它总是只有一行,因此是父元素的行高。
Windows XP中的Chrome是一个浏览器的示例,除非另有明确说明,否则将在该jsfiddle中返回.height()
。 Firefox返回像素数。 normal
是每个w3规范的初始值。
http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height
答案 2 :(得分:5)
普通在several instances上实际上被称为abnormal
,因为浏览器存在很大的不一致。
声明行高:不仅正常 从浏览器到浏览器各不相同,我 我曾预料到 - 事实上,量化 这些差异是整体的 点 - 但它们也因一种字体而异 面对另一个,也可以变化 在给定的面孔内。
答案 3 :(得分:1)
难以准确计算像素中的法线高度。但是,根据MDN,它大约是1.2em。
如果您:
body{
font-size: 16px;
}
因此,您的网站的字体大小正常为16px,而正常的行高大约为24px
。这意味着您可以计算正常的字体大小像素值乘以1.5
的{{1}}
注意:我没有乘以1.2,因为px值和em值之间存在差异。
答案 4 :(得分:0)
然而,这是很久以前写的,但帮助我在我的任务中写了临时解决方案。我正在复制这段代码,而不是其他人可以使用它。
UPDATE bill b
SET b.isPaid =
(SELECT count(*)
FROM bill_payment p
WHERE p.bill_id = b.id) > 0;