我在CSS媒体查询中使用厘米来使我的模板响应,而现在我们的智能手机具有非常高的分辨率,使像素过滤器变得困难。 我的问题是,为什么所有网站都不使用CM,这使得响应更加简单和实用?使用我不知道的cm会有什么遗漏吗?
编辑:我正在使用min-**device**-width
作为媒体查询。
答案 0 :(得分:13)
我也一直热衷于使用物理单位进行CSS测量,因为它很有意义,特别是在所有类型的设备上设计长形式内容的阅读体验。 但是这种方法的问题在于1 CSS cm / in与现实世界中的1 cm / in完全不同。 只需尝试制作宽度和高度为1cm的盒子,然后在不同的浏览器,屏幕和设备上测量渲染。你可能会感到非常惊讶。
基本问题是所有(最好的)设备都将物理单位渲染为(惊讶)1in = 96px(或1cm = ~37.8px)的等式。因此,如果您以cm为单位定义单位或媒体查询,这实际上意味着您以~37.8像素比率定义它们,这在大多数情况下肯定不是您想要的。
答案 1 :(得分:3)
使用cm over px确实没什么好处。
其中一个official CSS3 Candidate Recommendations定义了这些绝对长度:
unit definition
‘cm’ centimeters
‘mm’ millimeters
‘in’ inches; 1in is equal to 2.54cm
‘px’ pixels; 1px is equal to 1/96th of 1in
‘pt’ points; 1pt is equal to 1/72nd of 1in
‘pc’ picas; 1pc is equal to 12pt
因此1cm大致等于37.80px。如果设备的屏幕宽度为10厘米,则以像素为单位大约为378像素。
请注意我如何说“设备宽度”。媒体查询支持2种不同的宽度和高度查询:min-width
和min-height
基于屏幕的分辨率; min-device-width
和min-device-height
基于屏幕尺寸。
您可以参考官方Media Queries documentation了解更多信息。
答案 2 :(得分:0)
这在2018年仍然是实际的。我强烈建议您在布局中使用rem
,em
。是的,它的大小因设备而异,但这是它的美,因为您不应该决定“徽标宽度2厘米是否足够?”请记住,由于2cm的分辨率还不够,因此用户可以手动增加字体大小。
同样,在em
而不是cm
中测量文本块也更加直观,因为您回答了“一行中应有多少个符号”这一问题。
答案 3 :(得分:-1)
我认为这很棒。即使厘米直接等同于像素(我不确定是这种情况),它更具可读性并且在使用它们时更有意义。我已经使用过它们,但问题是,在第一次观看时,浏览器兼容性似乎并不适合这些单位。