place-items: center; 是一个强大的 CSS 简写属性,用于同时控制 网格(Grid) 和 弹性盒(Flexbox) 布局中的对齐方式。它的作用相当于同时设置:
            
            
              css
              
              
            
          
          align-items: center;
justify-items: center;
        核心功能:
- 水平居中(主轴对齐)
 - 垂直居中(交叉轴对齐)
 
使用场景:
在网格布局(Grid)中:
            
            
              css
              
              
            
          
          .container {
  display: grid;
  place-items: center; /* 所有网格项在单元格内居中 */
}
        效果:所有子元素在各自的网格单元格内水平和垂直居中
在弹性布局(Flexbox)中:
            
            
              css
              
              
            
          
          .container {
  display: flex;
  place-items: center; /* 需注意浏览器兼容性 */
}
        效果:所有子元素在主轴上居中(需配合 justify-content 获得最佳效果)
等效代码:
            
            
              css
              
              
            
          
          /* 完整写法 */
.container {
  align-items: center;   /* 垂直居中 */
  justify-items: center; /* 水平居中 */
}
/* 简写 */
.container {
  place-items: center;
}
        浏览器支持:
| 浏览器 | 支持版本 | 
|---|---|
| Chrome | 59+ | 
| Firefox | 45+ | 
| Safari | 11+ | 
| Edge | 79+ | 
| iOS Safari | 11+ | 
注意:在 Flexbox 布局中,部分旧浏览器可能需要添加 -webkit- 前缀
实际应用示例:
            
            
              html
              
              
            
          
          <div class="container">
  <div class="item">居中内容</div>
</div>
<style>
.container {
  display: grid; /* 或 flex */
  height: 300px;
  border: 2px dashed #ccc;
  place-items: center; /* 一行实现居中 */
}
.item {
  width: 100px;
  height: 100px;
  background: coral;
}
</style>
        进阶技巧:
- 响应式居中:
 
            
            
              css
              
              
            
          
          .container {
  display: grid;
  place-items: center;
}
@media (max-width: 768px) {
  .container {
    place-items: start center; /* 垂直靠顶,水平居中 */
  }
}
        - 组合使用:
 
            
            
              css
              
              
            
          
          .card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  place-items: center; /* 每个卡片内容居中 */
  gap: 1rem;
}
        总结:place-items: center; 是现代化布局的利器,能大幅简化元素居中代码,特别适合卡片布局、仪表盘、登录框等需要精确对齐的场景。