CSS Display
display 是 CSS 用于控制布局最重要的属性。
对于要显示的大多数 HTML 元素,其 display 默认值取决于元素的类型,即 block
或者 inline
。(这一点在 HTML Blocks章节已提到过)
注意:通过 display 属性仅改变元素显示的方式,而不改变元素的类型。因此,一个看起来是块级元素的 inline 元素,不允许包裹其他块级元素。
隐藏 HTML 元素
最常见的通过 JS 来隐藏和显示元素,不通过删除和重新创造它们的方法就是:
display: none;
隐藏以后不占据空间,看起来那个元素不在那里visibility: hidden;
仍然占据着本来的空间,尽管看不见,还在影响着页面布局。
visibility
该属性还可以取值 visible
,此为默认值。
针对表格元素,还可以取值为 collapse
,删除一行或一列,仍然 take up space。如果该属性值被用在了其他元素上,效果同 hidden
。
display
除了 block
和 inline
还可以取的值:
取值 | 作用 |
---|---|
inline-block | 使元素成为一个行内级别、可封装块级元素。使用该属性值可以轻松取代旧的利用 float:left; 方式实现的 a grid of boxes 填充满浏览器的效果 |
flex | CSS3 新属性,将元素显示为块级 flex 元素 |
inline-flex | CSS3 新属性,将元素显示为行内级 flex 元素 |
inline-table | 显示为行内级的表格 |
list-item | 使元素表现地像 <li> 元素,前面带默认小实心圆 |
run-in | 看环境决定是显示为 block 还是 inline 级别的样子 |
table | 使元素表现地像 <table> 元素 |
table-caption | 使元素表现地像 <caption> 元素 |
table-column-group | 使元素表现地像 <colgroup> 元素 |
table-header-group | 使元素表现地像 <thead> 元素 |
table-footer-group | 使元素表现地像 <tfoot> 元素 |
table-row-group | 使元素表现地像 <tbody> 元素 |
table-cell | 使元素表现地像 <td> 元素 |
table-column | 使元素表现地像 <col> 元素 |
table-row | 使元素表现地像 <tr> 元素 |
Overflow
overflow 属性定义了如果内容超出了一个元素的盒模型将会发生什么。
取值:
visible
默认值,会无视元素的边界限定,把内容全部显示出来。hidden
超出部分被剪切掉,invisiblescroll
超出部分被剪切掉,但是会添加一个滚动条用于查看 the rest of the contentauto
如果有超出边界的内容,添加 scroll-bar
<body>
元素的 overflow 默认值是 auto
。
overflow-x 属性定义了如果内容超出了一个元素的盒模型,内容的 left/right 边会怎么处理。取值同 overflow .
overflow-y 属性定义了如果内容超出了一个元素的盒模型,内容的 top/bottom 边会怎么处理。取值同 overflow .