这里未使用flex,grid等布局,只是使用float等操作实现主流网页的基本布局草图
效果如下:

首先整体是一个container容器,其中分成三部分header,body,foot。body中又分成三部分,第一部分是一行两列,第二部分是一行三列,第三部分是多行多列。三部分都是使用float实现浮动,自动先左/右贴近。
注意点:在元素浮动后,需清除浮动
这里展示至少两种方法
第一种方法:使用clear:both的div跟在后面清除浮动
在第一行里追加了一个clear:bath的div,适用于没有对div有统一样式的情况
第二种方法:在父级容器上使用CSS中的::after
实现自动在最后追加一个高度为0,clear:both的空div
完整代码如下:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS常见布局</title> <style> .body, * { padding: 0; margin: 0; } .clear { clear: both; } .clearfix::after { display: block; content: ""; height: 0; width: 0; overflow: hidden; clear: both; } .container { background-color: antiquewhite; } .container .header { width: 80vw; display: block; margin: 0 auto; background-color: bisque; } .container .header .left { width: 5vw; height: 5vh; line-height: 5vh; float: left; text-align: center; background-color: rgb(118, 136, 218); border-radius: 10px; margin: 0.3vh 0.3vw 0 0; } .container .header .left:hover { background-color: rgb(69, 81, 136); } .container .header .right { width: 100px; height: 5vh; line-height: 5vh; float: right; text-align: center; background-color: rgb(118, 136, 218); border-radius: 10px; margin: 0.3vh 0.3vw 0 0; } .container .header .right:hover { background-color: rgb(69, 81, 136); } .container .content { width: 80vw; background-color: rgb(59, 52, 42); margin: 0 auto; } .container .content .row1 { margin-bottom: 1vh; margin-top: 1vh; } .container .content .row1 .column1_1 { width: 39vw; height: 39vh; border-radius: 10px; background-color: rgb(218, 145, 118); float: left; margin-left: 0.5vw; margin-top: 1vh; } .container .content .row1 .column1_2 { width: 39vw; height: 39vh; border-radius: 10px; background-color: rgb(218, 195, 118); float: right; margin-right: 0.5vw; margin-top: 1vh; } .container .content .row2 { margin-bottom: 1vh; } .container .content .row2 div { width: 26vw; height: 23vh; border-radius: 10px; margin-left: 0.5vw; float: left; } .container .content .row2 .column2_1 { background-color: rgb(138, 218, 118); } .container .content .row2 .column2_2 { background-color: rgb(118, 218, 196); } .container .content .row2 .column2_3 { background-color: rgb(118, 136, 218); } .container .content .row3 { margin-top: 1vh; } .container .content .row3 div { width: 19.38vw; height: 19vh; border-radius: 10px; background-color: rgb(210, 118, 218); margin-left: 0.5vw; margin-bottom: 1vh; float: left; } .container .foot { width: 80vw; height: 20vh; background-color: blueviolet; margin: 0 auto; } </style> </head> <body> <div class="container"> <div class="header clearfix"> <div class="left indexLogo">logo</div> <div class="left">module1</div> <div class="left">module2</div> <div class="left">module3</div> <div class="right">logOut</div> <div class="right">userName</div> </div> <div class="content"> <div class="row1"> <div class="column1_1"></div> <div class="column1_2"></div> <div class="clear"></div> </div> <div class="row2 clearfix"> <div class="column2_1"></div> <div class="column2_2"></div> <div class="column2_3"></div> </div> <div class="row3 clearfix"> <div class="column3_n"></div> <div class="column3_n"></div> <div class="column3_n"></div> <div class="column3_n"></div> <div class="column3_n"></div> <div class="column3_n"></div> <div class="column3_n"></div> </div> </div> <div class="foot"></div> </div> </body> </html>
|
最后附上,个人博客网站:Southblock’Blog,内容更多,更新,欢迎参观。