要开发网页,必须要搞懂这三种div+css布局技术!(1)左右两列布局;(2)1行3列;(3)1行多列或多行多列布局;只要你掌握了这三种布局方式,那搭建一个完整的网页框架肯定是一点问题都没有。
实现效果:
详细代码:
代码包含详细注释,一看就会。直接复制代码浏览器打开查看效果即可。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>前端必会的3中CSS布局技术</title> <!--type="text/css"样式为css width: 1000px;div的宽度,一般的宽度是1280px height: 1500px;高度会自动往下伸 浏览器默认<body>有间距8px,设置为0px margin: 30px auto 0px; 上外边距30px,左右边距自动 下外边距为0pxs --> <style type="text/css"> /*去除body的外边距*/ body, ul { margin: 0px; padding: 0px; } /*去除ul的点*/ ul { list-style: none; } /*最大的盒子的样式*/ .container { width: 1000px; /*height: 1500px;*/ /*border: 2px solid red;*/ margin: 30px auto 0px; } /*一行两列的最大盒子样式*/ .column2 { /*border: 2px solid black;*/ } /*float: left; 左浮动,如果单独加左浮动,下面的黄色就会自动贴上来, 被红色盖住,如果想测试,将column2-2的高度改成400px 但是column2-1和column2-2都被设置float浮动了,column2就会塌陷了。 如何解决呢? 清楚浮动 */ .column2-1 { width: 700px; height: 300px; background-color: red; float: left; } .column2-2 { width: 280px; height: 300px; background-color: yellow; float: right; } /*清除浮动 clear: left; 只能清除div左浮动(即 float: left)问题, 不能清除右浮动问题,你可以将column2-1的高度改成200px,就会发现问题 clear: both;解决左右浮动问题 */ .clear { /*clear: left;*/ clear: both; } /*一行散列,最大的盒子*/ .column3 { /*border: 2px solid red;*/ margin-top: 20px; } /*3个盒子布局在一行的第一种方式:分别加上左浮动 float: left; 第二种方式:第一第二左浮动,第三右浮动 */ .column3-1 { width: 200px; height: 300px; background-color: aqua; float: left; } .column3-2 { width: 400px; height: 300px; background-color: salmon; float: left; margin-left: 20px; } .column3-3 { width: 360px; height: 300px; background-color: aquamarine; float: right; } /*清除浮动的第二种方式 .clearfix:after就相当于在div后面创建了一个伪元素 content: "111"表示伪元素中的内容 display: block;设置成块级元素才能 */ .clearfix:after { /*content: "111";*/ content: ""; display: block; background-color: brown; clear: both; } /*多行多列 最大的盒子 */ .column-n { /*border: 2px solid purple;*/ margin-top: 20px; } .column-n ul { /*background-color: sandybrown;*/ } .column-n li { width: 190px; height: 200px; /*border: 1px solid red;*/ float: left; margin: 5px; background-color: aqua; } </style></head><body><!--class="containner"容器,其中的样式会使用.containner中的--><!--class="container"最大的盒子--><div class="container"> <!--一行两列,一个大的盒子装两个小的盒子--> <div class="column2"> <div class="column2-1"> </div> <div class="column2-2"> </div> <!--清除column2浮动问题,清除浮动一般写在最后面--> <div class="clear"></div> </div> <!--一行三列 第二种清除column浮动问题clearfix 清除浮动 .clearfix:after就相当于在div后面创建了一个伪元素 --> <div class="column3 clearfix"> <div class="column3-1"> </div> <div class="column3-2"> </div> <div class="column3-3"> </div> </div> <!--多行多列--> <div class="column-n"> <ul class="clearfix"> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div></div></body></html>