在CSS中,使用像素数代替百分比是否会影响兼容性?对于较低的分辨率如何处理?在1到100的范围内使用它们是否可以?
在CSS中,使用像素数代替百分比是否会影响兼容性?对于较低的分辨率如何处理?在1到100的范围内使用它们是否可以?
所有测量单位都有它们各自的用途:
使用像素(pixels)来进行基于像素的事物,比如边框。你可能不想要一条宽度为1.3422像素的边框。
使用文本为中心的度量(em、ex)来进行基于文本的事物,比如内容区域、标签和输入框。这是一种简单的方式,可以确保你有足够的空间来容纳一定长度和宽度的文本。
使用百分比(percent)来进行基于窗口的事物,比如列。
当然也有例外情况。例如,你可能想要指定一个最小的列宽度,以像素为单位。但如果遵循以上规则,你的页面会有良好的缩放效果。始终在页面上缩放查看,以检查它们在不同字体大小和浏览器形状下的效果--不要在之后感到惊讶。
这是一个困难的问题,因为答案主要取决于您的情况。
像素并不那么糟糕,我也经常使用它们。(有时甚至用于字体大小。)
通常我会通过给定的尺寸来修正布局的外部块元素 (在固定宽度布局中使用像素,在流动布局中使用百分比),在内部元素上尽可能使用百分比。
有一些元素无法使用百分比或 em
进行样式设置,特别是那些来自图形设计师、不理解这种原则的花哨元素。
例如:如果您的网站上有一列带有简单样式的内容,则可以轻松将其宽度设置为百分比,但如果它具有具有特定宽度的背景图片且未考虑缩放设计,则只能使用固定宽度才能获得最佳效果。在这种情况下,您需要确保页面的其余部分正确占据剩余宽度。
请注意,您可以同时使用像素和百分比。
例如,以下是我最新的 Web 应用程序之一中的代码片段:
min-width: 800px;
width: 80%;
max-width: 1500px;
选择哪种方法也取决于您想要实现什么样的设计或布局。max-width
的作用所在。即使在一些动态布局中,您也必须限制您网站的最大宽度以最大化可用性和易读性。min-width
的作用:在较小的分辨率上使您动态扩展的布局看起来不那么拥挤。我认为你首先必须了解CSS中使用像素存在的问题:
em
等相对大小,你将尊重用户更改字体大小的决定。这在文本密集网站上尤为重要,特别是对于年龄较大的用户。另一方面,如果一个网站的设计很重要,我认为使用px
指定字体大小而不破坏可用性是可能和合理的。最终,你需要自己做出决策,这确实取决于具体情况,但我认为在像素中指定字体大小是可以接受的。
顺便说一下,在使用em
指定字体大小时,将body
设置为font-size: 62.5%
是一个好主意。这意味着基础字体大小为10px,因此1em为10px,1.6em为16px,以此类推,这样使用ems进行设计时更容易以像素为单位思考。我仍然觉得这种方式很烦人,特别是当ems的值级联时。有一些非常方便的网站,例如PXtoEM.com可以帮助你解决这个问题。
屏幕是基于像素的布局,因此对于许多事情来说,像素是一个直观的选择。主要问题在于不同的用户有不同的屏幕尺寸。正如其他人指出的那样,使用像素中的min-width
和max-width
以及百分比中的width
是一种有用的方式,可以尊重屏幕的大小,同时防止您的网站在非常小的和非常大的窗口上被 unreasonable squished 或者 stretched。
然而,我通常避免这种方法,而是更喜欢使用CSS媒体查询。然后,您可以使用固定宽度块,并随着屏幕尺寸增加使布局变宽(等等)。但是,像所有酷炫的Web技术一样,CSS媒体查询也存在浏览器支持不足的问题。最值得注意的是,IE8及更早版本不支持它们,尽管有JavaScript修复程序。另一方面,iPhone和其他手持设备支持它们,如果您希望您的网站在这些设备上看起来漂亮,我强烈推荐使用。
我认为固定宽度网格是可以接受的。像960 Grid System这样的固定宽度网格系统已经非常流行,而且有许多其他具有固定宽度的网站,所以如果您这样做,我怀疑您会听到很多抱怨。没有大屏幕的手持设备是一个问题,但这就是应该使用CSS媒体查询的地方,因此可以在像素中指定所有内容,使您的网站在桌面和iPhone上看起来漂亮。
最终,一切都取决于您的用户是谁,您需要支持什么以及您希望您的网站看起来如何,但是在CSS中使用像素并没有任何本质上的错误。
这取决于你要样式化的内容。例如对于列,宽度可能应该根据文本大小而定,以确保在多个分辨率/屏幕上看起来最佳。如果您想将页面分为两部分,则应使用百分比。但是,如果您希望在这两个部分之间有1像素的边框,无论分辨率如何,都应使用像素。
如果可能的话,我会建议避免使用它,除非是某些特定情况。
例如对于细边框,只需指定1px即可。
此外,在max-
和min-
样式属性中使用也可以。但是,如果可能的话,请将非最大/最小属性设置为百分比。
我不是一个CSS/HTML专家,但我通常使用像素来设置外部容器的大小,而使用百分比来设置内部对象的大小。
另一个我在布局中遵循的经验法则是“三个像素规则”。几乎不可能在所有浏览器中完全对齐。我们一致认为,移动小于或等于三个像素的任何元素所需的努力超过了它所带来的好处。
默认情况下要做正确的事情。如果用户禁用了JavaScript并且没有设置首选项cookie,则应向他们提供尽可能功能和可访问性的网页。
您的默认样式表不应对浏览器窗口做任何假设,仍应呈现出一个功能齐全但难看的页面,分辨率最低为320x320,最高为无限大。如果照片保真度非常重要,以至于您不能信任浏览器缩放(有时确实如此),那么您应该使用像素测量(至少是最小值)来包含固定大小图像的元素,以确保您不会覆盖重要内容。指定百分比和最小宽度应该能够给您所需的控制,同时为您的用户提供所需的可访问性。即使现在可访问性不是问题,如果网站成功了,以后也会成为问题。
当您了解更多关于浏览器窗口时,如果保留设计的重要性可以证明额外的工作是合理的,则可以在备用样式表中使用固定宽度。
如果你的目标是固定大小,那么像素就可以了。但是,如果你希望你的布局在各种分辨率/屏幕尺寸上看起来好,那么你应该坚持使用更相对的度量单位,比如百分比。大多数人都是以后者为目标。