混合百分比和固定的CSS

这是从UI.StackExchange.com重复:
https://ux.stackexchange.com/questions/1004/mixing-percent-and-fixed-css

你是否曾经应用百分比和固定CSS? 会造成问题,如果是的话,是什么样的?

  • 混合会降低浏览器渲染性能吗?
  • 在渐进渲染浏览器的初始加载时,混合会给你带来奇怪的结果吗?

下面是混合使用的一个简单的例子,它可以是任何混合。 我不是在寻找validation的例子。 我听说你不应该做我在下面的例子,所以我试图找出是否以这种方式使用CSS是一个问题。

混合使用示例:

<style> .container { width:300px; } .cell { width:25%; } </style> <table class="container"> <tr> <td class="cell"><td> <td class="cell"><td> <td class="cell"><td> <td class="cell"><td> </tr> </table> 

+1好问题。 您可能想看看这篇文章:“ 固定宽度,液体和弹性布局 ”它超过固定宽度布局(em)和弹性布局(%),如果您点击进入下一页,它看起来像在'弹性 – 液体混合' – 宽度:设置为单向,最大宽度:设置另一个。 我知道链接到上面的文章并不完全是你问的,但它是一个单一的CSS样式内混合使用的例子。


编辑:经过一番进一步的阅读,我确实在这个问题上find了一些相互矛盾的观点。 我发现了几篇文章,提出“ 你不能混淆像素和百分比 ”的想法。 尽pipe这些网站大部分都是相当过时的。 当我把search范围缩小到只有去年的文章时,情况才有所改变。 还有一些反对混合的意见,但他们通常没有解释为什么,似乎“我总是听到这是一个坏主意”的品种。 我在这个主题上发现的大多数最近的信息似乎表明, 只要对结果有所了解 ,混合百分比与固定宽度是完全可以接受的做法。

看到:

  • “ 固定与stream体与弹性布局:什么是最适合你的? ”(2009年6月)
  • “ 为一个美丽的networking:改变人的布局 ”…

充分披露:我已经做了很多年的调音台,却不知道我的方法是否正确。

你的方式是好的。 每个单元格计算为75px。 你必须小心的百分比是四舍五入踢。

在你的例子中,如果你的容器是303px,那么每个单元格的计算结果为75.66666px,最多为76px,合计为304px,比容器大。 那一个像素导致各种麻烦。

这应该有助于清除混合百分比和像素的时间,以及什么时候没有。

如你所做的那样,混合百分比和像素宽度不会成为问题。

 .container { width:300px; } .cell { width:25%; } 

当它成为一个问题是当你扭转秩序;

 .container { width:25%; } .cell { width:250px; } 

在这种情况下,如果浏览器窗口(或.container的父.container )小于1000像素,则.container上的25%将小于.cell像素,导致.cell溢出.container

如果在宽度加上填充的情况下混合百分比和像素,这也会成为问题;

 .container { width:300px; } .cell { width:100%; padding: 10px; } 

这将导致.cell的宽度为320px(100%+ 10px + 10px),并溢出.container

让我知道,如果这有助于清理事情。

从我所做的研究来看,如何定位你的CSS(id,class,universal …等)在浏览器渲染性能中是最重要的。

有效地呈现CSS

编写用于Mozilla UI的高效CSS

优化浏览器呈现

我找不到任何logging在案的证据来certificate这一点。 你能把我们指向你读到的这个地方吗?

我发现混合两个相当有用,我也看到很多在野外驰名/高stream量的网站。

主要影响旧版浏览器和IE的唯一问题是四舍五入。 有一个在这里读:

http://ejohn.org/blog/sub-pixel-problems-in-css/

http://agilewebmasters.com/robert/percentage-rounding-and-sub-pixel-perfection/