经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS » 查看文章
前端水平垂直居中的方式(总结):
来源:cnblogs  作者:星空的轨迹  时间:2021/4/12 9:37:49  对本文有异议

 1.仅水平居中:

1.1行内元素水平居中:text-align

  1. 1 <head>
  2. 2 <style>
  3. 3 #box {
  4. 4 width: 200px;
  5. 5 height: 200px;
  6. 6 border: 1px solid red;
  7. 7 /* 行内元素水平 */
  8. 8 text-align: center;
  9. 9 }
  10. 10 </style>
  11. 11 </head>
  12. 12 <body>
  13. 13 <div id="box">
  14. 14 <span>我要居中</span>
  15. 15 </div>
  16. 16 </body>
  17. 17 </html>
View Code

1.2块级元素水平居中:margin

  1. <head>
  2. <style>
  3. #box1 {
  4. width: 300px;
  5. height: 300px;
  6. background-color: red;
  7. }
  8. #box2 {
  9. width: 100px;
  10. height: 100px;
  11. background-color: green;
  12. margin: 0 auto;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <div id="box1">
  18. <div id="box2">我是块元素,我想水平居中</div>
  19. </div>
  20. </body>
  21. </html>
View Code

2.仅垂直居中:

2.1行内元素垂直居中(仅限于单行文本):line-height

  1. <head>
  2. <style>
  3. #box1 {
  4. width: 300px;
  5. height: 300px;
  6. background-color: red;
  7. line-height: 300px;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <div id="box1">
  13. 我是子元素
  14. </div>
  15. </body>
  16. </html>
View Code

3.垂直水平居中:

3.1行内元素:text-align + line-height

  1. 1 <head>
  2. 2 <style>
  3. 3 #box1 {
  4. 4 width: 300px;
  5. 5 height: 300px;
  6. 6 background-color: red;
  7. 7 line-height: 300px;
  8. 8 text-align: center;
  9. 9 }
  10. 10 </style>
  11. 11 </head>
  12. 12 <body>
  13. 13 <div id="box1">
  14. 14 我是子元素
  15. 15 </div>
  16. 16 </body>
  17. 17 </html>
View Code

效果:

 3.2.定位+transform

优点:元素宽高改变的时候不要再计算

缺点:有兼容性问题

  1. 1 <head>
  2. 2 <style>
  3. 3 #parent {
  4. 4 width: 300px;
  5. 5 height: 300px;
  6. 6 background-color: red;
  7. 7 position: relative;
  8. 8 }
  9. 9 .child {
  10. 10 width: 100px;
  11. 11 height: 100px;
  12. 12 background-color: green;
  13. 13 position: absolute;
  14. 14 left: 50%;
  15. 15 top:50%;
  16. 16 transform: translate(-50%,-50%);
  17. 17 }
  18. 18 </style>
  19. 19 </head>
  20. 20 <body>
  21. 21 <div id="parent">
  22. 22 <div class="child">子元素</div>
  23. 23 </div>
  24. 24 </body>
  25. 25 </html>
View Code

效果:

3.3定位+margin

缺点:不够动态,宽高改变需要程序计算

  1. 1 <head>
  2. 2 <style>
  3. 3 #parent {
  4. 4 width: 300px;
  5. 5 height: 300px;
  6. 6 background-color: red;
  7. 7 position: relative;
  8. 8 }
  9. 9 .child {
  10. 10 width: 100px;
  11. 11 height: 100px;
  12. 12 background-color: green;
  13. 13 position: absolute;
  14. 14 left: 50%;
  15. 15 top:50%;
  16. 16 margin-left: -50px;
  17. 17 margin-top: -50px;
  18. 18 }
  19. 19 </style>
  20. 20 </head>
  21. 21 <body>
  22. 22 <div id="parent">
  23. 23 <div class="child">子元素</div>
  24. 24 </div>
  25. 25 </body>
  26. 26 </html>
View Code

效果图:

 3.4弹性盒模型:

  1. 1 <head>
  2. 2 <style>
  3. 3 #parent {
  4. 4 width: 300px;
  5. 5 height: 300px;
  6. 6 background-color: red;
  7. 7 display: flex; /* 父元素设置flex*/
  8. 8 align-items: center; /* 垂直居中 */
  9. 9 justify-content: center; /* 水平居中 */
  10. 10 }
  11. 11 .child {
  12. 12 width: 100px;
  13. 13 height: 100px;
  14. 14 background-color: green;
  15. 15 }
  16. 16 </style>
  17. 17 </head>
  18. 18 <body>
  19. 19 <div id="parent">
  20. 20 <div class="child">子元素</div>
  21. 21 </div>
  22. 22 </body>
  23. 23 </html>
View Code

效果:

3.5.display:table实现(不常用):

  1. 1 <head>
  2. 2 <style>
  3. 3 #parent {
  4. 4 width: 300px;
  5. 5 height: 300px;
  6. 6 background-color: red;
  7. 7 display: table;
  8. 8 text-align: center;
  9. 9 }
  10. 10 .child {
  11. 11 display: table-cell;
  12. 12 background-color: green;
  13. 13 vertical-align: middle;
  14. 14 }
  15. 15 </style>
  16. 16 </head>
  17. 17 <body>
  18. 18 <div id="parent">
  19. 19 <div class="child">子元素</div>
  20. 20 </div>
  21. 21 </body>
  22. 22 </html>
View Code

效果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原文链接:http://www.cnblogs.com/gxl520/p/14641809.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号