place-items
CSS 中的 place-items
是一个简写属性 ,它允许你在相关的布局(如 Grid 或 Flexbox)中可以同时沿着块级和内联方向对齐元素 (例如:align-items
和 justify-items
属性) 。如果未提供第二个值,则第一个值作为第二个值的默认值。
尝试一下
构成属性
该属性是以下两个 CSS 属性的简写:
语法
/* Keyword values */
place-items: auto center;
place-items: normal start;
/* Positional alignment */
place-items: center normal;
place-items: start auto;
place-items: end normal;
place-items: self-start auto;
place-items: self-end normal;
place-items: flex-start auto;
place-items: flex-end normal;
place-items: left auto;
place-items: right normal;
/* Baseline alignment */
place-items: baseline normal;
place-items: first baseline auto;
place-items: last baseline normal;
place-items: stretch auto;
/* Global values */
place-items: inherit;
place-items: initial;
place-items: unset;
值
auto
-
auto
实际的值继承父自元素的justify-items
值,除非该元素没有父元素或是用了绝对定位。在这些示例中,auto
表示normal
。 normal
-
normal
的效果取决于我们使用哪种布局方式:- 在块级布局中,
normal
和start
一样。 - 在绝对定位布局中,关键字在被替换的绝对定位元素上的行为类似于
start
,在所有其他绝对定位的元素上表现类似stretch
。 - 在表格单元格布局中,此关键字没有意义,因为该属性被忽略。
- 在 flexbox 布局中,此关键字没有意义,因为该属性被忽略。
- 在 grid 布局中,此关键字和
stretch
的行为相似,但是具有宽高比和固有尺寸的元素行为和start
相似。
- 在块级布局中,
start
-
在适当的轴线上,元素块沿着对齐容器的起始边缘对齐。
end
-
在适当的轴线上,元素块沿着对齐容器的结束边缘对齐。
flex-start
-
对齐方式取决于 flex 容器的开始方向。(水平和垂直两个方向) 这只对 flex 布局元素生效,对于不是 flex 容器的子元素,它被视为
start
。 flex-end
-
对齐方式取决于 flex 容器的结束方向。(水平和垂直两个方向) 这只对 flex 布局元素生效,对于不是 flex 容器的子元素,它被视为 end。
self-start
-
沿着轴线的头部对齐。
self-end
-
沿着轴线的尾部对齐。
center
-
沿着对齐容器的中心对齐。
left
-
沿着对齐容器的左侧对齐,如果属性的轴不与内联轴平行,则该值的行为和
start
类似。 right
-
沿着对齐容器的右侧对齐,如果属性的轴不与内联轴平行,则该值的行为和
start
类似。 baseline first baseline
last baseline
-
指定参与第一个或最后一个基线对齐:元素的第一个或最后一个基线集的对齐基线与基线共享组中所有框共享的第一个或最后一个基线集中相应的基线对齐。
first baseline
的回退对齐方式为start
,last baseline
则为end
。 stretch
-
如果子项加起来的尺寸小于对齐容器的尺寸,则任何未尺寸为
auto
的项将增加同等的大小(不是按比例),但也会受到max-height
/max-width
(或等同的功能)的限制,因此所有项刚好能填满对齐容器。
形式定义
初始值 | 该简写所对应的每个属性:
|
---|---|
适用元素 | 所有元素 |
是否是继承属性 | 否 |
计算值 | 该简写所对应的每个属性:
|
动画类型 | 离散值 |
形式语法
place-items =
<'align-items'> <'justify-items'>?
<align-items> =
normal |
stretch |
<baseline-position> |
[ <overflow-position>? <self-position> ] |
anchor-center
<justify-items> =
normal |
stretch |
<baseline-position> |
<overflow-position>? [ <self-position> | left | right ] |
legacy |
legacy && [ left | right | center ] |
anchor-center
<baseline-position> =
[ first | last ]? &&
baseline
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
示例
在弹性容器中排列元素
CSS
#container {
height: 200px;
width: 240px;
place-items: center; /* You can change this value by selecting another option in the list */
background-color: #8c8c8c;
}
.flex {
display: flex;
flex-wrap: wrap;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 50px);
}
结果
规范
Specification |
---|
CSS Box Alignment Module Level 3 # place-items-property |
浏览器兼容性
BCD tables only load in the browser
参见
- CSS Flexbox Guide: Basic Concepts of Flexbox
- CSS Flexbox Guide: Aligning items in a flex container
- CSS Grid Guide: Box alignment in CSS Grid layouts
- CSS Box Alignment
- The
align-items
property - The
align-self
property - The
justify-items
property - The
justify-self
property