前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环。在页面框架的搭建之中,又有居中布局、多列布局以及全局布局,今天我们就来总结总结前端干货中的CSS布局。
1)使用inline-block+text-align
(1)原理、用法
原理:先将子框由块级元素改变为行内块元素,再通过设置行内块元素居中以达到水平居中。
用法:对子框设置display:inline-block,对父框设置text-align:center。
(2)代码实例
<p class="parent"> <p class="child>DEMO</p> </p>
.child{ display:inline-block; }.parent{ text-align:center; }
(3)优缺点
优点:兼容性好,甚至可以兼容ie6、ie7
缺点:child里的文字也会水平居中,可以在.child添加text-align:left;还原
2)使用table+margin
(1)原理、用法
原理:先将子框设置为块级表格来显示(类似
和 | ),再通过设置属性,使表格单元格内容垂直居中以达到垂直居中。 用法:先将父框设置为display:table-cell,再设置vertical-align:middle。 (2)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:table-cell; vertical-align:middle; } Salin selepas log masuk (3)优缺点
2)使用absolute+transform
(2)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { position:relative; }.child { position:absolute; top:50%; transform:translateY(-50%); } Salin selepas log masuk (3)优缺点
3)使用flex+align-items
(1)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { position:flex; align-items:center; } Salin selepas log masuk (3)优缺点
水平垂直居中1)使用absolute+transform
(2)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { position:relative; }.child { position:absolute; left:50%; top:50%; transform:tranplate(-50%,-50%); } Salin selepas log masuk (3)优缺点
2)使用inline-block+text-align+table-cell+vertical-align
(2)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { text-align:center; display:table-cell; vertical-align:middle; }.child { display:inline-block; } Salin selepas log masuk (3)优缺点
3)使用flex+justify-content+align-items
(2)代码实例 <p class="parent"> <p class="child>DEMO</p> </p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:flex; justify-content:center; align-items:center; } Salin selepas log masuk (3)优缺点
多列布局定宽+自适应1)使用float+overflow
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .left { float:left; width:100px; margin-right:20px; }.right { overflow:hidden; } Salin selepas log masuk (3)优缺点
2)使用float+margin
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .left { float:left; width:100px; }.right { margin-left:120px; } Salin selepas log masuk (3)优缺点
3)使用float+margin(改良版)
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="rigth-fix"> <p class="right"> <p>right</p> <p>right</p> </p> </p></p> Salin selepas log masuk .left { float:left; width:100px; position:relative; }.right-fix { float:right; width:100%; margin-left:-100px; }.right { margin-left:120px; } Salin selepas log masuk (3)优缺点
4)使用table
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:table; width:100%; table-layout:fixed; }.left { width:100px; padding-right:20px; }.right,.left { display:table-cell; } Salin selepas log masuk 5)使用flex
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:flex; }.left { width:100px; margin-right:20px; }.right { flex:1; } Salin selepas log masuk (3)优缺点
两列定宽+一列自适应(1)原理、用法
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="center"> <p>center</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk .left,.center { float:left; width:100px; margin-right:20px; }.right { overflow:hidden; } Salin selepas log masuk 不定宽+自适应1)使用float+overflow
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .left{ float: left; margin-right: 20px; }.right{ overflow: hidden; }.left p{ width: 200px; } Salin selepas log masuk (3)优缺点
2)使用table
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent{ display: table; width: 100%; }.left,.right{ display: table-cell; }.left{ width: 0.1%; padding-right: 20px; }.left p{ width:200px; } Salin selepas log masuk (3)优缺点
3)使用flex
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:flex; }.left { margin-right:20px; }.right { flex:1; }.left p{ width: 200px; } Salin selepas log masuk (3)优缺点
两列不定宽+一列自适应(1)原理、用法
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="center"> <p>center</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk .left,.center{ float: left; margin-right: 20px; }.right{ overflow: hidden; }.left p,.center p{ width: 100px; } Salin selepas log masuk 等分布局公式转化:l = w * n + g * (n-1) -> l = w * n + g * n - g -> l + g = (w + g) * n Salin selepas log masuk 因此,我们需要解决两个问题:
1)使用float
(2)代码实例 <p class="parent"> <p class="column"><p>1</p></p> <p class="column"><p>2</p></p> <p class="column"><p>3</p></p> <p class="column"><p>4</p></p></p> Salin selepas log masuk Salin selepas log masuk .parent{ margin-left: -20px;//l增加g } .column{ float: left; width: 25%; padding-left: 20px; box-sizing: border-box;//包含padding区域 w+g } Salin selepas log masuk (3)优缺点
2)使用table
(2)代码实例 <p class="parent-fix"> <p class="parent"> <p class="column"><p>1</p></p> <p class="column"><p>2</p></p> <p class="column"><p>3</p></p> <p class="column"><p>4</p></p> </p></p> Salin selepas log masuk .parent-fix{ margin-left: -20px;//l+g } .parent{ display: table; width:100%; table-layout: fixed; } .column{ display: table-cell; padding-left: 20px;//w+g} Salin selepas log masuk (3)优缺点
3)使用flex
(2)代码实例 <p class="parent"> <p class="column"><p>1</p></p> <p class="column"><p>2</p></p> <p class="column"><p>3</p></p> <p class="column"><p>4</p></p></p> Salin selepas log masuk Salin selepas log masuk .parent{ display: flex; }.column{ flex: 1; }.column+.column{ margin-left:20px; } Salin selepas log masuk (3)优缺点
定宽+自适应+两块高度一样高1)使用float
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk p{ background: none!important; }.left,.right{ background: #444; }.parent{ overflow: hidden; }.left,.right{ padding-bottom: 9999px; margin-bottom: -9999px; }.left{ float: left; width: 100px; margin-right: 20px; }.right{ overflow: hidden; } Salin selepas log masuk (3)优缺点
2)使用table
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:table; width:100%; table-layout:fixed; } .left { width:100px; padding-right:20px; } .right,.left { display:table-cell; } Salin selepas log masuk 3)使用flex
(2)代码实例 <p class="parent"> <p class="left"> <p>left</p> </p> <p class="right"> <p>right</p> <p>right</p> </p></p> Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk Salin selepas log masuk .parent { display:flex; } .left { width:100px; margin-right:20px; } .right { flex:1; } Salin selepas log masuk (3)优缺点
4)使用display
(2)代码实例 <p class="parent"> <p class="left">left</p> <p class="right">right </p> </p> Salin selepas log masuk .parent { width: 100%; display: -webkit-box; } .left { width:100px; margin-right: 20px; } .right { -webkit-box-flex: 1; } Salin selepas log masuk (3)优缺点
全屏布局全屏布局的特点
全屏布局的方法1)使用position
(2)代码实例 <p class="parent"> <p class="top">top</p> <p class="left">left</p> <p class="right"> <p class="inner">right</p> </p> <p class="bottom">bottom</p> </p> Salin selepas log masuk html,body,.parent{ margin:0; height:100%; overflow:hidden; }body{ color:white; }.top{ position:absolute; top:0; left:0; right:0; height:100px; background:blue; }.left{ position:absolute; left:0; top:100px; bottom:50px; width:200px; background:red; }.right{ position:absolute; left:200px; top:100px; bottom:50px; right:0; background:pink; overflow: auto; }.right .inner{ min-height: 1000px; }.bottom{ position:absolute; left:0; right:0; bottom:0; height:50px; background: black; } Salin selepas log masuk (3)优缺点
2)使用flex
(2)代码实例 <p class="parent"> <p class="top">top</p> <p class="middle"> <p class="left">left</p> <p class="right"> <p class="inner">right</p> </p> </p> <p class="bottom">bottom</p> </p> Salin selepas log masuk Salin selepas log masuk html,body,.parent{ margin:0; height:100%; overflow:hidden; }body{ color: white; } .parent{ display: flex; flex-direction: column; }.top{ height:100px; background: blue; }.bottom{ height:50px; background: black; }.middle{ flex:1; display:flex; }.left{ width:200px; background: red; }.right{ flex: 1; overflow: auto; background:pink; }.right .inner{ min-height: 1000px; } Salin selepas log masuk (3)优缺点
1)使用flex
(2)代码实例 <p class="parent"> <p class="top">top</p> <p class="middle"> <p class="left">left</p> <p class="right"> <p class="inner">right</p> </p> </p> <p class="bottom">bottom</p> </p> Salin selepas log masuk Salin selepas log masuk html,body,.parent{ margin:0; height:100%; overflow:hidden; }body{ color:white; } .parent{ display:flex; flex-direction:column; }.top{ background:blue; }.bottom{ background:black; }.middle{ flex:1; display:flex; }.left{ background: red; }.right{ flex:1; overflow:auto; background: pink; }.right .inner{ min-height:1000px; } Salin selepas log masuk 全屏布局相关方案的兼容性、性能和自适应一览表
当然,最最最最最后,如果您喜欢这片文章,可以疯狂点赞!! Atas ialah kandungan terperinci 关于CSS页面布局的方案大全. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP! Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Isu terkini
Di manakah perisian kursus tentang pemetaan minda CSS?
Perisian kursus
daripada 2024-04-16 10:10:18
0
0
1335
Halaman tiba-tiba tidak dapat menarik css atau bootstrap
Jadi saya sedang membangunkan halaman, saya telah membuat sebahagian daripadanya semalam d...
daripada 2024-04-06 21:58:04
0
1
800
Ubah suai gaya CSS sebaris secara dinamik dalam Javafx
Saya cuba menukar imej latar belakang anak tetingkap apabila aplikasi dimaksimumkan. Latar...
daripada 2024-04-06 20:57:16
0
1
487
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
|
---|