CSS justify-items 属性通过为所有框设置默认 justify-self ,为每个框提供沿相关轴的默认对齐方式。
此属性的效果根据所使用的布局模式而有所不同:
它沿内联对齐块级布局中的项目其包含块内的轴。
当元素绝对定位时,包含块内的项目将在内联轴上对齐,考虑指定的顶部、左侧、底部和右侧偏移值。
此属性在表格单元格布局中被忽略。
此属性在 Flexbox 布局中被忽略。
在网格布局中的内联轴上对齐网格区域内的项目。
属性值
normal: 该关键字的效果取决于布局模式:
与块级布局中的 start 相同.
绝对定位使用此关键字作为替换框的"开始"和其他绝对定位框的"延伸"。
它在表格单元格布局中没有任何意义,因为它的属性被忽略。
它在 Flexbox 布局中没有任何意义,因为它的属性被忽略。
该术语充当网格项的"延伸",但具有长宽比或固有尺寸的框除外,它们充当"开始"。
start: 将项目在相应轴的对齐容器的起始边缘对齐。
end: 将项目在相应的轴上对齐。相应轴中对齐容器的末端边缘。
center: 将项目对齐到对齐容器的中心。
flex-start: 该值被不是 Flex 容器子项的项目视为开始。
flex-end: 该值被视为结束,由不是弹性容器子项的项目。
self-start: 这些项目在适当的轴上与对齐容器的起始边缘对齐。
self-end: 项目在适当的轴上与对齐容器的结束边缘对齐。
left: 项目对齐到对齐容器的左边缘。如果属性的轴不平行于内联轴,则该值的作用类似于 start。
right: 项目在适当的轴上与对齐容器的右边缘对齐。如果属性的轴不平行于内联轴,则该值的作用类似于 start。
baseline,firstbaseline,lastbaseline: 定义与框的第一条或最后一条基线的对齐方式在其基线共享组中,将框的第一个或最后一个基线集与适当的基线对齐,开始作为第一个基线的后备,结束作为最后一个基线的后备。
拉伸: 当项目的总大小小于对齐容器时,自动调整大小的项目均匀放大,根据最大高度/最大宽度限制,组合尺寸填充对齐容器。
safe: 如果项目的大小溢出对齐容器,则项目的对齐模式设置为"start"。
unsafe -无论项目和对齐容器的相对大小如何,都会遵循指定的对齐值。
legacy: 该值由框后代继承。但是,如果后代具有 justify-self: auto,则仅考虑左值、右值或中心值,而不考虑旧关键字。
适用范围
所有元素。
语法
此属性可以采用四种形式中的任何一种:
基本关键字:关键字值为正常或拉伸。
基线对齐:带有附加第一个或最后一个的基线关键字。
位置对齐方式:选择居中、开始、结束、伸缩开始、伸缩结束、自开始、自结束、左对齐或右对齐。也可以选择不安全或安全。
旧版对齐:使用旧版关键字与 left 或 right。
基本关键字
justify-items: normal;
justify-items: stretch;
位置对齐
justify-items: center;
justify-items: start;
justify-items: end;
justify-items: flex-start;
justify-items: flex-end;
justify-items: self-start;
justify-items: self-end;
justify-items: left;
justify-items: right;
基线对齐
justify-items: baseline;
justify-items: first baseline;
justify-items: last baseline;
溢出对齐(仅用于位置对齐)
justify-items: safe center;
justify-items: unsafe center;
旧版对齐
justify-items: legacy right;
justify-items: legacy left;
justify-items: legacy center;
CSS justify-items: normal
以下示例演示了 justify-items: normal 属性,该属性以其默认行为沿每个网格单元内的行轴对齐项目 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: normal;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: stretch
以下示例演示了 justify-items:stretch 属性,该属性沿行轴拉伸项目以填充其列的整个宽度 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: stretch;
background-color: greenyellow;
}
.box > div {
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: start
以下示例演示了 justify-items: start 属性,该属性将项目与网格容器的起始边缘对齐 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: start;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify -items: end
以下示例演示了 justify-items: end 属性,该属性将项目与网格容器的结束边缘对齐 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: end;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: center
以下示例演示 justify-items: center 属性。它将网格容器的中心水平对齐项目 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: center;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: flex-start
以下示例演示了 justify-items: flex-start 属性将项目与网格容器的起始边缘对齐(与起始值相同) -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: flex-start;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: flex-end
以下示例演示了 justify- items:flex-end 属性,将项目与网格容器的结束边缘对齐(与最终值相同) -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: flex-end;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: self-start
The以下示例演示了 justify-items: self-start 属性,该属性在网格容器的起始边缘对齐项目 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: self-start;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: self-end
以下内容示例演示了 justify-items: self-end 属性,该属性在网格容器的末端边缘对齐项目 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: self-end;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: left
以下示例演示了justify-items: left 属性,将项目向网格容器的左边缘彼此对齐 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: left;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: right
以下示例演示justify-items: right 属性,将项目朝网格容器的右边缘彼此对齐 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: right;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: baseline
以下示例演示 justify-items:baseline 属性,该属性沿基线对齐项目。基线是一条假想的线,它将根据文本所在的位置对齐元素 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: baseline;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: last baseline
以下示例演示了 justify-items :last baseline属性,沿着每行最后一个网格项目的基线对齐项目 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: last baseline;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>
CSS justify-items: safe center
以下示例演示了justify-items:safe center属性,将溢出项目(项目 1 和项目 3)与各自列的开头对齐 -
<html>
<head>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(2, 100px);
justify-items: safe center;
grid-gap: 10px;
border: 2px solid black;
padding: 10px;
background-color: greenyellow;
}
.grid-item {
width: 350px;
height: 50px;
background-color: lightcoral;
border: 2px solid blue;
margin: 5px;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Item 1 (Overflow)</div>
<div class="grid-item">Item 2</div>
<div class="grid-item">Item 3 (Overflow)</div>
<div class="grid-item">Item 4</div>
</div>
</body>
</html>
CSS justify-items: legacy right
以下示例演示了 justify-items:legacy right 属性,它将项目与网格单元格的末尾对齐 -
<html>
<head>
<style>
.box {
width: 100%;
border: 2px solid black;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
justify-items: legacy right;
background-color: greenyellow;
}
.box > div {
width: 100px;
border: 2px solid blue;
background-color: lightcoral;
margin: 5px;
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
<div>Item 4</div>
</div>
</body>
</html>