CSS 宽度 100% 或最大宽度(以像素为单位)

Posted

技术标签:

【中文标题】CSS 宽度 100% 或最大宽度(以像素为单位)【英文标题】:CSS width 100% OR max-width in pixels 【发布时间】:2011-08-06 05:55:57 【问题描述】:

如何为宽度创建 CSS 规则

默认使用 100% 宽度

如果 100% 的宽度超过了某个像素宽度(比如 512 像素),则宽度被限制在这个像素宽度

我不确定宽度和最大宽度的关系,或者 calc() 是如何被支持或表达的。这需要与最新的 WebKit 浏览器和 Firefox 4 一起使用。不需要 IE8 等支持

【问题讨论】:

【参考方案1】:

这实际上是max-width 的预期用途。如果一个元素的计算(实际)width 超过max-width,它将被限制为最大值而不是超出它。百分比与像素无关。

像这样在同一规则中声明两者(不需要calc() 函数):

#somediv 
    width: 100%;
    max-width: 512px;

【讨论】:

如果您的图片实际上小于 512 像素并且您不想将它们放大到 512 像素,那么这将不起作用。 我能再问一个问题吗,像#somedivwidth:512px; max-width:100%这样设置有什么区别吗? @hugoderhungrige 512px 只是这个问题中使用的一个示例数字。如果您不希望图像超出其实际尺寸,您只需将 max-width 设置为图像的实际宽度。 就此而言,如果您希望小于 512 像素的图像保持其固有宽度而不是填充其包含块,那么您正在查看错误的问答。本问答的全部要点是图像填充了它们的包含块! 如果你想要相反,比如在大屏幕上限制尺寸,但在小屏幕上占用不超过 100%,你可以说width:500px; max-width:100%;【参考方案2】:

如果是块级元素,默认应该是 100%,所以不需要声明宽度,那么 max-width: 512px; 会减少它

calc() 根本没有得到很好的支持,但在这种情况下,我认为你不需要它

【讨论】:

【参考方案3】:
div max-width: 512px; 

应该够了。

【讨论】:

当 div 小于 512 时,如何解决 100% 的问题?图像不仅会保持 512 并且不会随着 div 的大小而减小吗?

以上是关于CSS 宽度 100% 或最大宽度(以像素为单位)的主要内容,如果未能解决你的问题,请参考以下文章

从样式设置为 % 的元素获取宽度(以像素为单位)?

设置宽度(以像素为单位)是不是使用 dp 或 px?

宽度为 100% 的 CSS / div 高了几个像素/为啥?

CSS宽度以%为单位,高度以px为单位,长度相同[重复]

CSS和输入100%宽度[重复]

CSS 宽度和最大宽度组合