当前位置:   article > 正文

CSS 设置垂直居中_css文字垂直居中

css文字垂直居中

目录

一、设置文字垂直居中

1、line-height 使文字垂直居中

2、flex布局 使文字垂直居中

3、使用display和vertical-align 使文字垂直居中

二、设置块状元素垂直居中

1、使用绝对定位和transform 使块状元素垂直居中(未知块状元素高度)

2、使用flex布局 使块状元素垂直居中(未知块状元素高度)

3、使用绝对定位和margin 使块状元素垂直居中(已知块状元素高度)

4、使用padding 使块状元素垂直居中(已知元素高度)

5、使用grid布局 使块状元素垂直居中(未知元素高度)

6、使用伪元素:before 使块状元素垂直居中(未知元素高度)

一、设置文字垂直居中

1、line-height 使文字垂直居中

  1. <template>
  2. <div class="container">
  3. line-height 使文字垂直居中
  4. </div>
  5. </template>
  6. <style>
  7. .container{
  8. margin: 20px 0px;
  9. width: 100%;
  10. height: 100px;
  11. line-height: 100px;
  12. background-color: pink;
  13. }
  14. </style>

2、flex布局 使文字垂直居中

  1. <template>
  2. <div class="container">
  3. flex布局 使文字垂直居中
  4. </div>
  5. </template>
  6. <style>
  7. .container{
  8. margin: 20px 0px;
  9. width: 100%;
  10. height: 100px;
  11. display: flex;
  12. align-items: center;
  13. background-color: pink;
  14. }
  15. </style>

3、使用display和vertical-align 使文字垂直居中

3.1 display: table和vertical-align: middle

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>使用display和vertical-align 使文字垂直居中</div>
  5. <div>使用display和vertical-align 使文字垂直居中</div>
  6. </div>
  7. </div>
  8. </template>
  9. <style>
  10. .parent {
  11. display: table;
  12. width: 100%;
  13. height: 100px;
  14. background-color: skyblue;
  15. }
  16. .child {
  17. display: table-cell;
  18. vertical-align: middle;
  19. background-color: pink;
  20. }
  21. </style>

3.2 display: table-cell和vertical-align: middle 

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>使用display和vertical-align 使文字垂直居中</div>
  5. <div>使用display和vertical-align 使文字垂直居中</div>
  6. </div>
  7. </div>
  8. </template>
  9. <style>
  10. .parent {
  11. width: 100%;
  12. height: 100px;
  13. background-color: skyblue;
  14. display: table-cell;
  15. vertical-align: middle;
  16. }
  17. .child {
  18. background-color: pink;
  19. }
  20. </style>

二、设置块状元素垂直居中

1、使用绝对定位和transform 使块状元素垂直居中(未知块状元素高度)

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用绝对定位和transform 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用绝对定位和transform 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. background-color: skyblue;
  18. }
  19. .child {
  20. width: 100%;
  21. position: absolute;
  22. top: 50%;
  23. transform: translate(0, -50%);
  24. background-color: pink;
  25. }
  26. </style>

2、使用flex布局 使块状元素垂直居中(未知块状元素高度)

2.1 display: flex和align-items: center

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用flex布局 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用flex布局 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. display: flex;
  18. align-items: center;
  19. background-color: skyblue;
  20. }
  21. .child {
  22. width: 100%;
  23. background-color: pink;
  24. }
  25. </style>

2.2 display: flex和align-self: center

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用flex布局 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用flex布局 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. display: flex;
  18. background-color: skyblue;
  19. }
  20. .child {
  21. align-self: center;
  22. width: 100%;
  23. background-color: pink;
  24. }
  25. </style>

3、使用绝对定位和margin 使块状元素垂直居中(已知块状元素高度)

3.1 绝对定位和margin: auto

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用绝对定位和margin 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用绝对定位和margin 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. background-color: skyblue;
  18. }
  19. .child {
  20. width: 100%;
  21. height: 100px;
  22. position: absolute;
  23. top: 0;
  24. bottom: 0;
  25. left: 0;
  26. right: 0;
  27. margin: auto;
  28. background-color: pink;
  29. }
  30. </style>

3.2 绝对定位和margin-top

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用绝对定位和margin 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用绝对定位和margin 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. background-color: skyblue;
  18. position: relative;
  19. }
  20. .child {
  21. width: 100%;
  22. height: 100px;
  23. position: absolute;
  24. top: 50%;
  25. margin-top: -50px;/* 高度的一半 */
  26. background-color: pink;
  27. }
  28. </style>

4、使用padding 使块状元素垂直居中(已知元素高度)

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>使用padding 使块状元素垂直居中</div>
  5. <div>使用padding 使块状元素垂直居中</div>
  6. </div>
  7. </div>
  8. </template>
  9. <style>
  10. .parent {
  11. width: 100%;
  12. height: 300px;
  13. background-color: skyblue;
  14. padding: 100px 0;
  15. box-sizing: border-box;
  16. }
  17. .child {
  18. position: relative;
  19. width: 100%;
  20. height: 100px;
  21. background-color: pink;
  22. }
  23. </style>

5、使用grid布局 使块状元素垂直居中(未知元素高度)

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用grid布局 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用grid布局 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100vh;
  17. display: grid;
  18. background-color: skyblue;
  19. }
  20. .child {
  21. align-self: center;
  22. width: 100%;
  23. background-color: pink;
  24. }
  25. </style>

6、使用伪元素:before 使块状元素垂直居中(未知元素高度)

  1. <template>
  2. <div class="parent">
  3. <div class="child">
  4. <div>
  5. 使用伪元素:before 使块状元素垂直居中
  6. </div>
  7. <div>
  8. 使用伪元素:before 使块状元素垂直居中
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <style>
  14. .parent {
  15. width: 100%;
  16. height: 100px;
  17. display: block;
  18. background-color: skyblue;
  19. }
  20. .parent:before {
  21. content: '';
  22. height: 100%;
  23. display: inline-block;
  24. vertical-align: middle;
  25. }
  26. .child {
  27. width: 100%;
  28. display: inline-block;
  29. vertical-align: middle;
  30. background-color: pink;
  31. }
  32. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/853393
推荐阅读
相关标签
  

闽ICP备14008679号