CSS <display-inside> 数据类型确定元素的内部显示,它指定非替换元素的格式化上下文类型。这些关键字定义显示属性的值。它们可以用作旧版本浏览器的单个关键字,也可以与 <display-outside> 关键字的值一起使用。
属性值
flow-root - 它为元素创建一个新的块格式上下文。
table - 元素本身成为一个块级容器,其行为类似于 HTML 表格。
flex - 该元素作为块级元素工作,并根据其内容进行排列在 Flexbox 模型上。
grid - 该元素作为块级元素工作,并根据网格模型排列其内容。
语法
<display-inside>: flow-root | table | flex | grid;
CSS <display-inside>: flow-root
以下示例演示了 display: flow-root 属性创建块格式化上下文并包含浮动elements -
<html>
<head>
<style>
.container {
display: flow-root;
border: 2px solid blue;
padding: 10px;
}
.float-left {
float: left;
height: 30px;
width: 50%;
background-color: pink;
}
.float-right {
float: right;
height: 30px;
width: 50%;
background-color: yellow;
}
</style>
</head>
<body>
<div class="container">
<div class="float-left">Floating Left</div>
<div class="float-right">Floating Right</div>
</div>
</body>
</html>
CSS <display-inside>: table
以下示例演示了 display: table 属性将元素定义为表格 -
<html>
<head>
<style>
.table-container {
display: table;
width: 100%;
border-collapse: collapse;
background-color: pink;
}
.row {
display: table-row;
}
.column {
display: table-cell;
border: 2px solid blue;
padding: 5px;
}
</style>
</head>
<body>
<div class="table-container">
<div class="row">
<div class="column">Row 1, Column 1</div>
<div class="column">Row 1, Column 2</div>
<div class="column">Row 1, Column 3</div>
</div>
<div class="row">
<div class="column">Row 2, Column 1</div>
<div class="column">Row 2, Column 2</div>
<div class="column">Row 2, Column 3</div>
</div>
</div>
</body>
</html>
CSS <display- inside>: flex
以下示例演示了 display: table 属性将元素定义为表格元素 -
<html>
<head>
<style>
.flex-container {
display: flex;
align-items: center;
height: 50px;
padding: 5px;
gap: 5px;
background-color: red;
}
.flex-item {
padding: 10px;
border: 2px solid green;
background-color: yellow;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="flex-item">Flex Item 1</div>
<div class="flex-item">Flex Item 2</div>
<div class="flex-item">Flex Item 3</div>
</div>
</body>
</html>
CSS <display-inside>: grid
以下内容示例演示了 display: grid 属性创建了一个三列两行的基本网格布局 -
<html>
<head>
<style>
.grid-container {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 50px 50px;
gap: 5px;
align-items: center;
background-color: pink;
padding: 5px;
}
.grid-item {
background-color: yellow;
padding: 10px;
text-align: center;
border: 3px solid red;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Grid Item 1</div>
<div class="grid-item">Grid Item 2</div>
<div class="grid-item">Grid Item 3</div>
<div class="grid-item">Grid Item 4</div>
<div class="grid-item">Grid Item 5</div>
<div class="grid-item">Grid Item 6</div>
</div>
</body>
</html>