CSS中的display属性用于指定元素在网页上的显示方式。它控制元素的布局和可见性。
display 属性在设置元素的内部和外部显示类型时很有用。
属性值
传递给 display 属性的值是一个关键字。这些关键字值分为六个不同的组,如下所示:
外部值 (<display-outside>):此标题下的值指定外部显示类型一个元素的。
inline:使元素表现得像内联元素,允许其他元素出现在同一行的旁边。示例:<span>、<img>、<a> 等。
block:使元素表现得像块级元素,占据其父容器的整个宽度并创建一个新的它之前和之后的行。示例:<div>、<form>、<p> 等。
内部值 (<display-inside>):此标头下的值指定元素的内部显示类型。
flow:元素使用流布局(块和内联布局)显示其内容
flow-root:元素显示块框,指的是其格式根。
table:定义块级框,其行为类似于 HTML <table> 元素。
flex:定义块级框,按照 Flexbox 模型运行。
grid:定义块级框,按照网格模型运行。
ruby:定义内联级元素并按照 ruby 格式化模型运行。
列表项值 (<display-listitem>):使元素的行为类似于列表项标记,通常与 <li> 元素一起使用。
单个值代表单个列表项。
可以与 list-style-type 和 list 一起使用-style-position。
列表项可以与任何外部显示值以及内部显示值的流或流根配对。
内部值(<display-internal>):具有复杂内部结构的布局,例如table和ruby,使用此属性来显示其内容。
table-row-group:行为类似于 <tbody> HTML 元素。
table-header-group:行为类似于 <thead> HTML元素。
table-footer-group:行为类似于 <tfoot> HTML 元素。
table-row:行为类似于 <tr> HTML元素。
table-cell:行为类似于 <td> HTML 元素。
table-column-group:行为类似于 <colgroup> HTML元素。
table-column:行为类似于 <col> HTML 元素。
table-caption:行为类似于 <caption> HTML 元素。
ruby-base:行为类似于 <rb> HTML 元素。
ruby-text:行为类似于 <rt> HTML 元素。
ruby-text:行为类似于 <rt> HTML 元素。 p>
ruby-base-container:生成为匿名框。
ruby-text-container:行为类似于 <rtc> HTML 元素。
框值 (<display-box>):定义显示框是否由元素生成。
contents:元素的显示被其内容(即其子元素和伪元素)替换。
none:关闭元素及其后代元素的显示。
预组合值 (<display-legacy>):单关键字值这是预先组合好的。块级元素和内联级元素需要单独的关键字。
inline-block:使元素显示为内联级块容器。与内联 flow-root 相同。
inline-table:指定元素的行为应类似于表格,但仍内联在块级上下文中。与内联表相同。
inline-flex:允许元素在参与内联级上下文时具有灵活的框布局。与内联 Flex 相同。
inline-grid:指定网格容器应被视为内联级元素。与内联网格相同。
适用范围
所有 HTML 元素。
DOM 语法
object.style.display = 'display:inline-flex';
CSS display: inline
以下是 display:inline 的示例:
<html>
<head>
<style>
li {
display: inline;
font-size: 2rem;
border: 1px solid red;
margin: 5px;
}
</style>
</head>
<body>
<h2>Display: Inline</h2>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</body>
</html>
CSS display: block
这里是 display:block 的示例:
<html>
<head>
<style>
li {
display: block;
font-size: 2rem;
border: 1px solid red;
margin: 5px;
background-color:aquamarine;
width: 200px;
}
</style>
</head>
<body>
<h2>Display: Block</h2>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</body>
</html>
CSS display: inline-block
这里是 display:inline-block 的示例:
<html>
<head>
<style>
div {
display: inline-block;
font-size: 2rem;
border: 1px solid red;
margin: 5px;
background-color: aquamarine;
height: 100px;
width: 200px;
}
</style>
</head>
<body>
<h2>display: inline-block</h2>
<div>Inline-Block 1</div>
<div>Inline-Block 2</div>
<div>Inline-Block 3</div>
</body>
</html>
CSS display: none
这里是 display:none 的示例:
<html>
<head>
<style>
div {
font-size: 2rem;
border: 1px solid red;
margin: 5px;
background-color: aquamarine;
height: 100px;
width: 200px;
}
div.ib {
display: inline-block;
}
div.none {
display:none;
}
</style>
</head>
<body>
<h2>display: none (Block 2)</h2>
<div class="ib">Block 1</div>
<div class="none">Block 2</div>
<div class="ib">Block 3</div>
</body>
</html>
CSS display: table
这里是一个示例display:table, display:table-cell, display:table-row, display:table-caption:
<html>
<head>
<style>
div {
display: flex;
border: 1px solid black;
}
.table {
display: table;
}
.row {
display: table-row;
padding: 3px;
}
.cell {
display: table-cell;
padding: 3px;
}
.caption {
display: table-caption;
text-align: center;
}
</style>
</head>
<body>
<div class="table">
<div class="caption">Sample Table</div>
<div class="row">
<div class="cell">Row1-Cell1</div>
<div class="cell">Row1-Cell2</div>
<div class="cell">Row1-Cell3</div>
</div>
<div class="row">
<div class="cell">Row2-Cell1</div>
<div class="cell">Row2-Cell2</div>
<div class="cell">Row2-Cell3</div>
</div>
<div class="row">
<div class="cell">Row3-Cell1</div>
<div class="cell">Row3-Cell2</div>
<div class="cell">Row3-Cell3</div>
</div>
</div>
</body>
</html>
CSS display: flex
这里是一个display: flex 的示例
<html>
<head>
<style>
div {
display: flex;
font-size: 2rem;
border: 1px solid red;
margin: 10px;
background-color: aquamarine;
height: 50px;
width: 200px;
}
</style>
</head>
<body>
<h2>display: flex</h2>
<div>Flex-Block 1</div>
<div>Flex-Block 2</div>
<div>Flex-Block 3</div>
</body>
</html>
CSS display: inline-flex
这里是 display:inline-flex 的示例:
<html>
<head>
<style>
div {
display: inline-flex;
font-size: 2rem;
border: 1px solid red;
margin: 10px;
background-color: aquamarine;
height: 50px;
width: 280px;
}
</style>
</head>
<body>
<h2>display: inline-flex</h2>
<div>Inline Flex-Block 1</div>
<div>Inline Flex-Block 2</div>
<div>Inline Flex-Block 3</div>
</body>
</html>
CSS display: grid
这里是 display:grid 的示例:
<html>
<head>
<style>
div {
display: grid
font-size: 2rem;
border: 1px solid red;
margin: 10px;
background-color: aquamarine;
height: 50px;
width: 280px;
marg
}
</style>
</head>
<body>
<h2>display: grid</h2>
<div>grid-Block 1</div>
<div>grid-Block 2</div>
<div>grid-Block 3</div>
</body>
</html>
CSS display: inline-grid
这里是 display:inline-grid 的示例:
<html>
<head>
<style>
div {
display: inline-grid
font-size: 2rem;
border: 1px solid red;
margin: 10px;
background-color: aquamarine;
height: 50px;
width: 280px;
}
</style>
</head>
<body>
<h2>display: inline-grid</h2>
<div>inline grid-Block 1</div>
<div>inline grid-Block 2</div>
<div>inline grid-Block 3</div>
</body>
</html>
CSS display: list-item
这里是一个display:list-item 的示例
<html>
<head>
<style>
li {
display: list-item;
font-size: 2rem;
border: 1px solid red;
margin: 10px;
background-color: aquamarine;
height: 50px;
width: 280px;
}
</style>
</head>
<body>
<h2>display: list-item</h2>
<div>
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
</ul>
</div>
</body>
</html>