参考资料

  1. Flex布局与Grid布局的对比?
  2. align-self: auto/stretch详细说明
  3. id选择器详细说明以及案例
  4. css阴影效果代码
  5. css实现阴影效果
  6. 如何用Flex布局实现导航栏?
  7. div居中样式
  8. 使用CSS Grid和Flexbox两种现代布局方式实现4列12个产品布局的方法
  1. 水平居中
    方法1: margin auto

div {
  width: 200px;
  margin: 0 auto;
}

方法2: flexbox

.parent {
  display: flex;
  justify-content: center;
}
  1. 垂直居中
    方法1: flexbox

.parent {
  display: flex;
  align-items: center;
  height: 300px;
}

方法2: transform

div {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}
  1. 水平垂直居中
    方法1: flexbox

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
}

方法2: absolute + transform

.parent {
  position: relative;
  height: 300px;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

完整示例:

<div class="parent">
  <div class="child">居中内容</div>
</div>

<style>
.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
  border: 1px solid #ccc;
}
.child {
  width: 200px;
  padding: 20px;
  background: #f0f0f0;
}
</style>