4. 设置元素水平居中

  • 设置父元素height和line-height属性值相等

    • 缺点:仅适用于宽度固定的单行文本
  • 设置元素绝对定位(position:absolute),并设置top:50%;margin-height为负的height的一半

    • 缺点:元素高度固定
  1. .container{
  2. width: 200px;
  3. height: 200px;
  4. border: 1px solid red;
  5. position: relative;
  6. }
  7. .content{
  8. background-color: #ccc;
  9. height: 50px;
  10. width: 100%;
  11. position: absolute;
  12. top: 50%;
  13. margin-top: -25px;
  14. }
  15. <div class="container">
  16. <div class="content"></div>
  17. </div>
  • 设置元素绝对定位(position:absolute),并设置top:50%;transform:translateY(-50%);

    • 缺点:transform属性浏览器兼容性不好
  • 设置元素vertical-align:middle;并添加父元素:after伪元素,设置vertical-align:middle

    • 缺点:仅适用于行内元素、行内块元素
  1. .wrapper {
  2. width: 500px;
  3. height: 500px;
  4. background-color: #ccc;
  5. text-align: center;
  6. }
  7. .wrapper:after {
  8. content: '';
  9. height: 100%;
  10. width: 0;
  11. display: inline-block;
  12. vertical-align: middle;
  13. }
  14. .align {
  15. background-color: #f00;
  16. width: 20%;
  17. height: 20%;
  18. display: inline-block;
  19. vertical-align: middle;
  20. }
  21. <div class="wrapper">
  22. <div class="align"></div>
  23. </div>
  • 设置父元素display:flex;justify-content:center;

    • 缺点:flex布局浏览器兼容性不好
  • 设置元素绝对定位(position:absolute),并设置top:0;bottom:0;margin:auto;
  1. .wrapper {
  2. position: relative;
  3. width: 500px;
  4. height: 500px;
  5. border: 1px solid red;
  6. }
  7. .content{
  8. position: absolute;
  9. width: 200px;
  10. height: 200px;
  11. border: 1px solid green;
  12. top: 0;
  13. bottom: 0;
  14. left: 0;
  15. right: 0;
  16. margin:auto;
  17. }
  18. <div class="wrapper">
  19. <div class="content"></div>
  20. </div>