max-width

max-width CSS 属性设置元素的最大宽度。它可防止 width 属性的应用值大于 max-width 指定的值。

尝试一下

max-width 会覆盖 width 的设置,但 min-width 的设置会覆盖 max-width

语法

css
/* <length> 值 */
max-width: 3.5em;

/* <percentage> 值 */
max-width: 75%;

/* 关键字值 */
max-width: none;
max-width: max-content;
max-width: min-content;
max-width: fit-content;
max-width: fit-content(20em);

/* 全局值 */
max-width: inherit;
max-width: initial;
max-width: revert;
max-width: revert-layer;
max-width: unset;

<length>

以绝对值定义 max-width

<percentage>

以包含区块的宽度百分比定义 max-width

none

盒子大小没有限制。

max-content

固有首选 max-width

min-content

固有最小 max-width

fit-content

使用可用空间,但不得超过 max-content,即 min(max-content,max(min-content,stretch))

fit-content(<length-percentage>) 实验性

使用 fit-content 公式,用指定参数替换可用空间,即 min(max-content, max(min-content, argument))

无障碍考虑

确保设置了 max-width 的元素在页面缩放以增大文字大小时不会被截断和/或遮挡其他内容。

形式定义

初始值none
适用元素all elements but non-replaced inline elements, table rows, and row groups
是否是继承属性
Percentagesrefer to the width of the containing block
计算值the percentage as specified or the absolute length or none
动画类型a length, percentage or calc();

形式语法

max-width = 
none |
<length-percentage [0,∞]> |
min-content |
max-content |
fit-content( <length-percentage [0,∞]> ) |
<calc-size()> |
<anchor-size()>

<length-percentage> =
<length> |
<percentage>

<calc-size()> =
calc-size( <calc-size-basis> , <calc-sum> )

<anchor-size()> =
anchor-size( [ <anchor-element> || <anchor-size> ]? , <length-percentage>? )

<calc-size-basis> =
<intrinsic-size-keyword> |
<calc-size()> |
any |
<calc-sum>

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<anchor-element> =
<dashed-ident>

<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline

<calc-product> =
<calc-value> [ [ '*' | '/' ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

示例

设置最大像素宽度

在本例中,“child”的宽度为 150 像素或“parent”的宽度,以较小者为准。

HTML

html
<div id="parent">
  <div id="child">
    Fusce pulvinar vestibulum eros, sed luctus ex lobortis quis.
  </div>
</div>

CSS

css
#parent {
  background: lightblue;
  width: 300px;
}

#child {
  background: gold;
  width: 100%;
  max-width: 150px;
}

规范

Specification
CSS Box Sizing Module Level 4
# width-height-keywords
CSS Box Sizing Module Level 4
# sizing-values

浏览器兼容性

BCD tables only load in the browser

参见