- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS - grid-auto-flow 属性
CSS 属性 grid-auto-flow 管理自动放置算法的行为,并确定用于自动放置的项目在网格中的确切排列方式。
您可以通过以下两种方式之一来表示此属性。
- 单个关键字,可从行、列或密集选项中进行选择。
- 两个关键字的组合:行密集或列密集。
可能的值
- row - 通过按顺序填充每一行并根据需要创建新行来定位对象。如果既未指定行也未指定列,则默认假定为行。
- column - 通过按顺序填充每一列来定位对象,如果需要,还可以创建其他列。
- dense - 使用dense 打包方法时,网格中的空白空间将使用优先级填充,这可能导致项目出现乱序,以填充由较大项目创建的空白。如果省略此项,则使用稀疏算法。这只有在放置元素并保持顺序时才会向前移动,即使这会导致以后可以填充的空白区域。
语法
grid-auto-flow = [ row | column ] || dense
适用于
网格容器。
CSS grid-auto-flow - 基本示例
以下示例演示了 grid-auto-flow 的用法
- CSS 属性 grid-auto-flow 设置为 column,并确定网格项在网格容器中自动放置的方向。
- 此属性通过先填充列,然后再插入下一个元素,来控制没有固定位置的其他元素的放置顺序。
- 要更改此行为,您可以将 grid-auto-flow 的值更改为 row(用于基于行的放置策略)或更改为 dense 值(以更紧凑的方式填充可用空间,无论是在行中还是在列中)。
<html>
<head>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 150px);
grid-template-rows: repeat(3, 150px);
gap: 15px;
grid-auto-flow: column; /* Change this property to see different effects */
}
.item:nth-child(1) { background-color: #3498db; }
.item:nth-child(2) { background-color: #27ae60; }
.item:nth-child(3) { background-color: #e74c3c; }
.item:nth-child(4) { background-color: #f39c12; }
.item:nth-child(5) { background-color: #9b59b6; }
.item:nth-child(6) { background-color: #2c3e50; }
.item:nth-child(7) { background-color: #1abc9c; }
.item:nth-child(8) { background-color: #34495e; }
.item:nth-child(9) { background-color: #e67e22; }
.item {
color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 50px;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
</body>
</html>
CSS grid-auto-flow - 行值
在以下示例中,网格项的自动放置技术由 CSS 规则 grid-auto-flow: row; 指定,该规则确保项从上到下、从左到右排列成行,在继续下一行之前填充每一行。
这显示了如何使用 grid-auto-flow 属性来调节网格布局。
<html>
<head>
<style>
body {
background-color: #F2F2F2;
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
}
#customDIV {
height: 300px;
display: grid;
gap: 10px;
background-color: #49a4e6;
padding: 10px;
grid-auto-flow: row;
}
#customDIV div {
background-color: rgba(255, 255, 255, 1);
border-radius: 15px;
text-align: center;
padding: 20px 0;
font-size: 30px;
}
.customItem3 {
grid-row: span 2;
grid-column: span 2;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow</h1>
<div id="customDIV">
<div class="customItem1">Alpha</div>
<div class="customItem2">Beta</div>
<div class="customItem3">Gamma</div>
<div class="customItem4">Delta</div>
</div>
</body>
</html>
CSS grid-auto-flow - 列值
在以下示例中,网格项的自动放置技术由 CSS 规则 grid-auto-flow: column; 指定,该规则确保项目从左到右、从上到下排列在列中,填充每一列,然后再移动到下一列。
<html>
<head>
<style>
body {
background-color: #F2F2F2;
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
}
#customDIV {
width: 400px;
display: grid;
gap: 10px;
background-color: #7fc6bc;
padding: 10px;
grid-auto-flow: column;
}
#customDIV div {
background-color: rgba(255, 255, 255, 1);
border-radius: 5px;
text-align: center;
padding: 20px 0;
font-size: 30px;
}
.customItem1 {
grid-column: span 2;
}
.customItem3 {
grid-row: span 2;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow: column;</h1>
<div id="customDIV">
<div class="customItem1">Element Alpha</div>
<div class="customItem2">Element Beta</div>
<div class="customItem3">Element Gamma</div>
<div class="customItem4">Element Delta</div>
</div>
</body>
</html>
CSS grid-auto-flow - 密集值
在以下示例中,网格设置为使用 grid-auto-flow: dense; 来排列项目。这意味着这些物品将被紧密包装,智能地填充空白空间并保持它们在代码中的原始顺序。
<html>
<head>
<style>
body {
background-color: #E0E0E0;
font-family: 'Verdana', sans-serif;
margin: 0;
padding: 0;
}
#customDIV {
width: 400px;
display: grid;
gap: 10px;
background-color: #9B59B6;
padding: 10px;
grid-auto-flow: dense;
}
#customDIV div {
background-color: rgba(255, 255, 255, 0.8);
border-radius: 8px;
text-align: center;
padding: 15px 0;
font-size: 24px;
}
.customItem1 {
grid-column: span 2;
}
.customItem3 {
grid-row: span 2;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow: dense;</h1>
<div id="customDIV">
<div class="customItem1">Alpha</div>
<div class="customItem2">Beta</div>
<div class="customItem3">Gamma</div>
<div class="customItem4">Delta</div>
</div>
</body>
</html>
CSS grid-auto-flow - 行密集值
在以下示例中,网格设置为使用 grid-auto-flow: row dense; 来排列项目。这意味着网格将项目排成行,紧凑地填充可用空间并保持指定的项目顺序。
<html>
<head>
<style>
body {
background-color: #EAEAEA;
font-family: 'Courier New', monospace;
margin: 0;
padding: 0;
}
#customDIV {
width: 400px;
display: grid;
gap: 10px;
background-color: #3498DB;
padding: 10px;
grid-auto-flow: row dense;
}
#customDIV div {
background-color: rgba(255, 255, 255, 0.9);
border-radius: 10px;
text-align: center;
padding: 15px 0;
font-size: 20px;
}
.customItem1 {
grid-column: span 2;
}
.customItem3 {
grid-row: span 2;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow: row dense;</h1>
<div id="customDIV">
<div class="customItem1">Element Alpha</div>
<div class="customItem2">Element Beta</div>
<div class="customItem3">Element Gamma</div>
<div class="customItem4">Element Delta</div>
<div class="customItem5">Theta Element</div>
<div class="customItem6">Lambda Element</div>
</div>
</body>
</html>
CSS grid-auto-flow - 列密集值
在以下示例中,网格设置为使用 grid-auto-flow: column dense; 来排列项目。这意味着网格将项目组织成列,巧妙地填充空白以创建紧凑的布局,同时保持项目的原始顺序不变。
<html>
<head>
<style>
body {
background-color: #F8F8F8;
font-family: 'Georgia', serif;
margin: 0;
padding: 0;
}
#customDIV {
width: 400px;
display: grid;
gap: 10px;
background-color: #FF6347;
padding: 10px;
grid-auto-flow: column dense;
}
#customDIV div {
background-color: rgba(255, 255, 255, 0.8);
border-radius: 12px;
text-align: center;
padding: 15px 0;
font-size: 18px;
}
.customItem1 {
grid-row: span 2;
}
.customItem3 {
grid-column: span 2;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow: column dense;</h1>
<div id="customDIV">
<div class="customItem1">Alpha Element</div>
<div class="customItem2">Beta Element</div>
<div class="customItem3">Gamma Element</div>
<div class="customItem4">Delta Element</div>
<div class="customItem5">Theta Element</div>
<div class="customItem6">Lambda Element</div>
</div>
</body>
</html>
CSS grid-auto-flow - 配置自动网格放置
在以下示例中,有一个网格布局,允许用户在网格元素的行、列和密集配置之间切换。
grid-auto-flow 属性会根据从下拉菜单中选择的选项动态更改。
<html>
<head>
<style>
body {
background-color: #f2dfaa;
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
}
#customDIV {
height: 300px;
display: grid;
gap: 10px;
background-color: #fcba03;
padding: 10px;
}
#customDIV div {
background-color: rgba(255, 255, 255, 0.9);
text-align: center;
padding: 20px 0;
font-size: 30px;
}
.customItem3 {
grid-row: span 2;
grid-column: span 2;
}
select {
margin: 10px;
padding: 5px;
font-size: 16px;
}
</style>
</head>
<body>
<h1>Grid Layout with grid-auto-flow</h1>
<label for="gridAutoFlow">Change grid-auto-flow: </label>
<select id="gridAutoFlow" onchange="changeGridAutoFlow()">
<option value="row">Row</option>
<option value="column">Column</option>
<option value="dense">Dense</option>
</select>
<div id="customDIV">
<div class="customItem1">BOX - A</div>
<div class="customItem2">BOX - B</div>
<div class="customItem3">BOX - C</div>
<div class="customItem4">BOX - D</div>
</div>
<script>
function changeGridAutoFlow() {
var selectedValue = document.getElementById("gridAutoFlow").value;
document.getElementById("customDIV").style.gridAutoFlow = selectedValue;
}
</script>
</body>
</html>