当前位置:Gxlcms > css > CSS布局居中对齐,左侧定宽右侧自适应详细介绍

CSS布局居中对齐,左侧定宽右侧自适应详细介绍

时间:2021-07-01 10:21:17 帮助过:5人阅读

  1. CSS页面布局是web前端开发的最基本的技能,本文将介绍一些常见的布局方法,涉及到盒子布局,column布局,flex布局等内容。本文中,你可以看到一些水平垂直居中的方法,左侧固定宽度,右侧自适应的一些方法。如果你有更多关于布局方面的技巧,欢迎留言交流。一、神奇的居中 经常看到有一些面试题问如何实现水平垂直居中,还要求用多种方法。唉唉唉!下面介绍一下我所知道的实现居中的方法。(1)父元素relative;子元素absolute,top:50%;left:50%;margin-left:-自己宽度的一半;margin-right:-自己高度的一半。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>水平垂直居中2</title>
  6. <style type="text/css">
  7. .container{
  8. width: 100%;
  9. height: 500px;
  10. background: red;
  11. position: relative;
  12. }
  13. .child{
  14. width: 300px;
  15. height: 300px;
  16. background: blue;
  17. position: absolute;
  18. left: 50%;
  19. margin-left: -150px;
  20. top: 50%;
  21. margin-top: -150px;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div>
  27. <div></div>
  28. </div>
  29. </body>
  30. </html>

这种方法需要知道子元素的宽高。

  1. (2)父元素:relative;子元素:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>水平垂直居中3</title>
  6. <style type="text/css">
  7. .container{
  8. background: red;
  9. width: 100%;
  10. height: 500px;
  11. position: relative;
  12. }
  13. .child{
  14. background: blue;
  15. width: 300px;
  16. height: 300px;
  17. position: absolute;
  18. top: 50%;
  19. left: 50%;
  20. transform: translate(-50%,-50%);
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div>
  26. <div></div>
  27. </div>
  28. </body>
  29. </html>
  1. <span style="font-size: 14px; font-family: Microsoft YaHei">此法跟上面的相似,但是用到了transform,好处是不需要知道子元素的宽高,兼容性方面我查了一下,看着办吧。<br><img src="https://img.gxlcms.com//Uploads-s/new/2019-09-27-201927/e6f851faee59ab9abba51c883c21e708-0.png" alt="CSS布局居中对齐,左侧定宽右侧自适应详细介绍" width="954" height="349" title="CSS布局居中对齐,左侧定宽右侧自适应详细介绍"><br><strong>(3)父元素:display: flex;justify-content: center;align-items: center;</strong></span>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>水平垂直居中1</title>
  6. <style type="text/css">
  7. .container{
  8. width: 100%;
  9. height: 400px;
  10. background: red;
  11. display: flex;
  12. justify-content: center;
  13. align-items: center;
  14. }
  15. .child{
  16. width: 300px;
  17. height: 300px;
  18. background: blue;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div>
  24. <div></div>
  25. </div>
  26. </body>
  27. </html>

这种方法看起来有些高大上,根本不用理会子元素。

  1. (4)水平居中的方法,父元素:text-align:center
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>水平垂直居中4</title>
  6. <style type="text/css">
  7. .container{
  8. background: red;
  9. width: 100%;
  10. height: 500px;
  11. text-align: center;
  12. }
  13. .child{
  14. background: blue;
  15. width: 300px;
  16. height: 300px;
  17. margin: auto;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div>
  23. <div></div>
  24. </div>
  25. </body>
  26. </html>
  1. <span style="font-size: 14px; font-family: Microsoft YaHei">如果子元素里的文字不要水平居中的话,那么用此法将遇到不少麻烦。<strong>(5)水平居中方法,子元素:margin:0 auto;这个好说,不上代码了</strong>好了,关于居中问题就说这么多,如果你还有更好的方法,请告诉我。<br><strong>二、左侧固定宽度,右侧自适应</strong>这是一个比较常见的需求,下面介绍几种实现方法。
  2. (1)左边定宽,左浮动,右边不指定宽。</span>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>做固定,右边自适应</title>
  6. <style type="text/css">
  7. body{
  8. margin: 0;
  9. }
  10. .aside{
  11. background: red;
  12. width:200px;
  13. height: 500px;
  14. float: left;
  15. }
  16. .main {
  17. background: blue;
  18. height: 500px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div>
  24. 我是左边的
  25. </div>
  26. <div>
  27. 我是主体
  28. 我是主体
  29. 我是主体
  30. 我是主体
  31. 我是主体
  32. </div>
  33. </body>
  34. </html>

做实验时无意发现了这种方法,意外之喜。

(2)用padding占位子的方法

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>左侧固定右侧自适应</title>
  6. <style type="text/css">
  7. .container {
  8. padding-left: 200px;
  9. width: 100%;
  10. position: relative;
  11. }
  12. .left{
  13. position: absolute;
  14. left: 0;
  15. right: 0;
  16. background: red;
  17. height: 500px;
  18. width: 200px;
  19. }
  20. .right{
  21. background: blue;
  22. width: 100%;
  23. height: 500px;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div>
  29. <div>zuobian</div>
  30. <div>
  31. 新华社俄罗斯喀山3月23日电(记者 魏良磊)中俄执政党对话机制第六次会议和第五届中俄政党论坛23日在俄罗斯喀山举行。和俄罗斯联邦总统普京分别致贺信。
  32. </div>
  33. </div>
  34. </body>
  35. </html>

注意了,absolute是脱离文档流的。.right的100%是相对于父容器的内容宽度的,不是整个宽度。

(3)父:display:flex;左定宽;右flex:1。ok

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>左边固定,右边自适应</title>
  6. <style type="text/css">
  7. .container{
  8. display: flex;
  9. }
  10. .left{
  11. width: 200px;
  12. height: 500px;
  13. background: red;
  14. }
  15. .right{
  16. background: blue;
  17. height: 500px;
  18. flex: 1;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div>
  24. <div>zuobian</div>
  25. <div>
  26. 新华社俄罗斯喀山3月23日电(记者 魏良磊)中俄执政党对话机制第六次会议和第五届中俄政党论坛23日在俄罗斯喀山举行。和俄罗斯联邦总统普京分别致贺信。
  27. </div>
  28. </div>
  29. </body>
  30. </html>
  1. 弹性盒子很强,有木有。但是有的是要加前缀的,哪些要加自己查去,有一次做实验,电脑样式正确,手机就是不对,搞了好半天。
  1. (4)父:display:table;左右:display:table-cell;左:定宽。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>左边固定,右边自适应</title>
  6. <style type="text/css">
  7. .container{
  8. display: table;
  9. }
  10. .left{
  11. width: 200px;
  12. height: 500px;
  13. background: red;
  14. display: table-cell;
  15. }
  16. .right{
  17. background: blue;
  18. height: 500px;
  19. display: table-cell;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div>
  25. <div>zuobian</div>
  26. <div>
  27. 新华社俄罗斯喀山3月23日电(记者 魏良磊)中俄执政党对话机制第六次会议和第五届中俄政党论坛23日在俄罗斯喀山举行。罗斯联邦总统普京分别致贺信。
  28. </div>
  29. </div>
  30. </body>
  31. </html>
  1. 据说这是一种古老的方法,我咋不知道呢?可能我比较年轻吧!

以上就是CSS布局居中对齐,左侧定宽右侧自适应详细介绍的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行