Html 我应该在CSS中使用px或rem值单位吗?
我正在设计一个新网站,我希望它能与尽可能多的浏览器和浏览器设置兼容。我正试图决定我的字体和元素的大小应该使用什么计量单位,但无法找到一个结论性的答案 我的问题是:我应该在CSS中使用Html 我应该在CSS中使用px或rem值单位吗?,html,css,distance,units-of-measurement,Html,Css,Distance,Units Of Measurement,我正在设计一个新网站,我希望它能与尽可能多的浏览器和浏览器设置兼容。我正试图决定我的字体和元素的大小应该使用什么计量单位,但无法找到一个结论性的答案 我的问题是:我应该在CSS中使用px还是rem 到目前为止,我知道使用px与在浏览器中调整基本字体大小的用户不兼容 我忽略了ems,因为它们在级联时比rems更难维护 有人说,rems与分辨率无关,因此更可取。但也有人说,大多数现代浏览器都会平均缩放所有元素,因此使用px不是问题 我问这个问题是因为对于CSS中最理想的距离度量有很多不同的意见,
px
还是rem
- 到目前为止,我知道使用
与在浏览器中调整基本字体大小的用户不兼容px
- 我忽略了
s,因为它们在级联时比em
s更难维护rem
- 有人说,
s与分辨率无关,因此更可取。但也有人说,大多数现代浏览器都会平均缩放所有元素,因此使用rem
不是问题px
我问这个问题是因为对于CSS中最理想的距离度量有很多不同的意见,我不确定哪一个是最好的。我发现为网站的字体大小编程的最好方法是为
主体定义一个基本字体大小,然后使用em(或rem)对于每一个字体大小
,我在此之后声明。我想这是我个人的偏好,但这对我来说很好,也让我很容易加入一个更具吸引力的团队
就使用rem单元而言,我认为在代码的渐进性和对旧浏览器的支持之间找到平衡是很好的,这应该对你的决定有很大帮助。em是前进的方向,不仅仅是字体,你还可以将其用于方框、线条粗细和其他东西,为什么
简单地说,em是唯一与浏览器中的alt+和alt-键同步缩放的对象
其他的测量尺度,但没有em那么干净
另一方面,如果您希望在缩放方面达到最佳效果,还可以在可能的情况下将图形转换为基于矢量的SVG,因为这些图形还可以根据浏览器的缩放比例进行清晰的缩放。是。或者,更确切地说,不是
呃,我是说,没关系。使用对您的特定项目有意义的方法。PX和EM或两者同样有效,但根据整个页面的CSS架构,它们的行为会有所不同
更新:
为了澄清这一点,我要说的是,通常情况下,你使用哪一种可能并不重要。有时,您可能特别想选择其中一个。如果你可以从头开始,希望使用基本字体大小,并将所有相关内容都设置为基本字体大小,那么EMs是不错的选择
当您在现有代码库上重新设计时,通常需要px,并且需要px的特殊性来防止不良嵌套问题。非常好地描述了px
、em
和rem
的优缺点
作者最后得出结论,最好的方法可能是同时使用px
和rem
,首先声明px
适用于旧浏览器,然后重新声明rem
适用于新浏览器:
html { font-size: 62.5%; }
body { font-size: 14px; font-size: 1.4rem; } /* =14px */
h1 { font-size: 24px; font-size: 2.4rem; } /* =24px */
TL;DR:使用px
事实
- 首先,非常重要的是要知道,CSS
px
unit不等于一个物理显示像素。这一直都是事实——即使是在1996年
CSS定义参考像素,用于测量96 dpi显示器上像素的大小。在具有与96dpi基本不同的dpi的显示器(如视网膜显示器)上,用户代理重新缩放px
单元,以便其大小与参考像素的大小匹配。换句话说,这就是为什么1个CSS像素等于2个物理视网膜显示像素的原因
这就是说,直到2010年(尽管有移动变焦的情况),px几乎总是等于一个物理像素,因为所有广泛使用的显示器都在96dpi左右
- 在
em
s中指定的大小是相对于父元素的。这导致了em
的“复合问题”,即嵌套元素逐渐变大或变小。例如:
body { font-size:20px; }
div { font-size:0.5em; }
给了我们:
<body> - 20px
<div> - 10px
<div> - 5px
<div> - 2.5px
<div> - 1.25px
-20px
-10px
-5px
-2.5px
-1.25px
- CSS3
rem
,它始终只与根html
元素相关,现在在上受支持
意见
我认为每个人都同意这样的观点:设计适合每个人的页面,并考虑到视力受损的人是很好的。其中一个考虑因素(但不是唯一的!)是允许用户将站点的文本放大,以便更容易阅读
起初,为用户提供缩放文本大小的唯一方法是使用相对大小单位(如em
s)。这是因为浏览器的字体大小菜单只是更改了根字体大小。因此,如果您在px
中指定了字体大小,则在更改浏览器的字体大小选项时,它们不会缩放
现代浏览器(甚至不是很现代的IE7)都将默认的缩放方法改为只放大所有内容,包括图像和框大小。本质上,它们使参考像素变大或变小
是的,有人仍然可以更改浏览器默认样式表来调整默认字体大小(相当于旧式字体大小选项),但这是一种非常深奥的方法,我敢打赌没有人会这么做。(在Chrome中,它隐藏在高级设置、Web内容、字体大小下。在IE9中,它甚至更隐藏。你必须按Alt键,然后转到查看、文本大小。)只需在浏览器主菜单中选择缩放选项(或使用Ctrl++/-/鼠标滚轮)就更容易了
1-自然在统计误差范围内
如果我们假设大多数用户使用缩放选项缩放页面,我发现相对单位基本上是不相关的。当e
html {
font-size: 12pt;
}
html {
font-size: 16px;
}
html {
}
body {
font-size:14px;
}
.someElement {
width: 12px;
}
html {
font-size:1px;
}
body {
font-size:14rem;
}
.someElement {
width: 12rem;
}