元素水平垂直居中?

65 阅读1分钟
  • Flexbox(弹性盒子布局): 使用 Flexbox 是一种简单而强大的居中方法。对于容器元素,设置 display: flex;,并通过 justify-content 和 align-items 属性将子元素水平和垂直居中。
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

  • Grid(网格布局): 使用 CSS Grid 布局也是一种现代的方法。对于容器元素,设置 display: grid;,并通过 place-items 属性将子元素水平和垂直居中。
.container {
  display: grid;
  place-items: center;
}

  • Absolute/Relative 定位: 使用绝对定位和相对定位,通过将子元素的左上角定位到父元素的中心来实现居中。
.container {
  position: relative;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

# 或
.centered {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

# 同上 inset属性为简写
.centered {
  position: absolute;
  inset: 0;
  margin: auto;
}

  • Text Align 和 Line Height: 对于行内元素或内联块级元素,可以使用 text-align: center; 和 line-height 的方法实现垂直居中。
.container {
  text-align: center;
}

.centered {
  line-height: 100px; /* 与容器高度相同 */
}

  • Flexbox + Margin Auto: 在 Flexbox 布局中,可以使用 margin: auto; 的技巧将子元素水平垂直居中。
.container {
  display: flex;
}

.centered {
  margin: auto;
}

  • Grid + Place-Content: 使用 CSS Grid 布局中的 place-content 属性可以同时设置水平和垂直居中。
.container {
  display: grid;
  place-content: center;
}