圣杯布局
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <!-- 6 摘要: 经典三列布局,也叫做圣杯布局【Holy Grail of Layouts】是Kevin Cornell在2006年提出的一个布局模型概念 7 ,在国内最早是由淘宝UED的工程师传播开来,在中国也有叫法是双飞翼布局, 8 它的布局要求有几点: 9 1、三列布局,中间宽度自适应,两边定宽; 10 2、中间栏要在浏览器中优先展示渲染; 11 3、允许任意列的高度最高; 12 4、要求只用一个额外的DIV标签; 13 5、要求用最简单的CSS、最少的HACK语句; 14 --> 15 <!-- 16 此示例适用于:IE6+浏览器 17 --> 18 19 <!-- 20 hack: 21 针对浏览器不支持的或者半支持的,采用: 22 _关键字 来进行. 23 --> 24 <meta charset="UTF-8"> 25 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 26 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 27 <title>圣杯gold</title> 28 <style> 29 body { 30 margin: 0; 31 font-size: 16px; 32 color: #fff; 33 } 34 35 header, 36 footer { 37 text-align: center; 38 padding: 20px 3px; 39 background-color: #ccc; 40 } 41 42 p { 43 margin: 0; 44 padding: 20px; 45 text-align: center; 46 } 47 48 main, 49 aside { 50 background-color: #03a9f4; 51 text-align: center; 52 } 53 54 aside, 55 .asideOne, 56 .asideTwo { 57 background-color: #00BCD4; 58 } 59 60 .bodyLeft, 61 .bodyRight { 62 zoom: 1; 63 overflow: hidden; 64 min-width: 400px; 65 } 66 67 .bodyLeft { 68 padding-left: 210px; 69 } 70 71 .bodyRight { 72 padding-right: 210px; 73 } 74 75 .bodyLeft, 76 .bodyRight, 77 .bodyThreeLr, 78 .bodyLlR, 79 .bodyRrL { 80 margin: 10px 0; 81 } 82 83 .bodyLeft main, 84 .bodyRight main, 85 .bodyThreeLr main, 86 .bodyLlR main, 87 .bodyRrL main { 88 float: left; 89 width: 100%; 90 } 91 92 .bodyLeft aside, 93 .bodyThreeLr .asideOne { 94 float: left; 95 width: 200px; 96 margin-left: -100%; 97 position: relative; 98 } 99 100 .bodyLeft aside { 101 left: -210px; 102 _left: 0; 103 } 104 105 .bodyThreeLr .asideOne { 106 left: -210px; 107 _left: 210px; 108 } 109 110 .bodyRight aside, 111 .bodyThreeLr .asideTwo { 112 float: left; 113 width: 200px; 114 margin-left: -200px; 115 position: relative; 116 right: -210px; 117 } 118 119 .bodyThreeLr { 120 zoom: 1; 121 overflow: hidden; 122 padding-left: 210px; 123 padding-right: 210px; 124 } 125 126 .bodyLlR, 127 .bodyRrL { 128 zoom: 1; 129 overflow: hidden; 130 } 131 132 .bodyLlR { 133 padding-left: 420px; 134 } 135 136 .bodyLlR .asideOne, 137 .bodyLlR .asideTwo { 138 float: left; 139 width: 200px; 140 margin-left: -100%; 141 position: relative; 142 } 143 144 .bodyLlR .asideOne { 145 left: -420px; 146 _left: 0px; 147 } 148 149 .bodyLlR .asideTwo { 150 left: -210px; 151 _left: 210px; 152 } 153 154 .bodyRrL { 155 padding-right: 420px; 156 } 157 158 .bodyRrL .asideOne, 159 .bodyRrL .asideTwo { 160 float: left; 161 width: 200px; 162 margin-left: -200px; 163 position: relative; 164 } 165 166 .bodyRrL .asideOne { 167 right: -210px; 168 } 169 170 .bodyRrL .asideTwo { 171 right: -420px; 172 } 173 </style> 174 </head> 175 176 <body> 177 <header>头部</header> 178 <section> 179 <div class="bodyLeft"> 180 <main> 181 <p>主内容栏自适应宽度</p> 182 </main> 183 <aside> 184 <p>侧边栏固定宽度</p> 185 </aside> 186 </div> 187 188 <div class="bodyRight"> 189 <main> 190 <p>主内容栏自适应宽度</p> 191 </main> 192 <aside> 193 <p>侧边栏固定宽度</p> 194 </aside> 195 </div> 196 </section> 197 198 <section> 199 <div class="bodyThreeLr"> 200 <main> 201 <p>主内容栏自适应宽度</p> 202 </main> 203 <div class="asideOne"> 204 <p>侧边左栏</p> 205 </div> 206 <div class="asideTwo"> 207 <p>侧边右栏</p> 208 </div> 209 </div> 210 </section> 211 212 <section> 213 <div class="bodyLlR"> 214 <main> 215 <p>主内容栏自适应宽度</p> 216 </main> 217 <div class="asideOne"> 218 <p>侧边左栏1</p> 219 </div> 220 <div class="asideTwo"> 221 <p>侧边左栏2</p> 222 </div> 223 </div> 224 </section> 225 226 <section> 227 <div class="bodyRrL"> 228 <main> 229 <p>主内容栏自适应宽度</p> 230 </main> 231 <div class="asideOne"> 232 <p>侧边右栏1</p> 233 </div> 234 <div class="asideTwo"> 235 <p>侧边右栏2</p> 236 </div> 237 </div> 238 </section> 239 240 <footer>底部</footer> 241 </body> 242 243 </html>