手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >CSS三列布局的多种表现形式
CSS三列布局的多种表现形式
摘要:一、两侧定宽中间自适应布局思路一:float【1】float+margin+calcCSSCode复制内容到剪贴板p{margin:0;}....

一、两侧定宽中间自适应布局

思路一: float

【1】float + margin + calc

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.rightright{float:left;width:100px;} .center{float:left;width:calc(100%-240px);margin:020px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式1

【2】float + margin + (fix)

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.rightright{position:relative;float:left;width:100px;} .centerWrap{float:left;width:100%;margin:0-100px;} .center{margin:0120px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="centerWrap"style="background-color:red;"> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式2

思路二: inline-block

【1】inline-block + margin + calc

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{font-size:0;} .left,.rightright,.center{display:inline-block;vertical-align:top;font-size:16px;} .left,.rightright{width:100px;} .center{width:calc(100%-240px);margin:020px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式1

【2】inline-block + margin + (fix)

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{font-size:0;} .left,.rightright,.centerWrap{display:inline-block;vertical-align:top;font-size:16px;} .left,.rightright{width:100px;position:relative;} .centerWrap{width:100%;margin:0-100px;} .center{margin:0120px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="centerWrap"style="background-color:orange;"> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式3

思路三: table

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:table;width:100%;table-layout:fixed;} .left,.rightright,.centerWrap{display:table-cell;} .left,.rightright{width:100px;} .center{margin:020px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="centerWrap"style="background-color:orange;"> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式4

思路四: absolute

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{position:relative;height:40px;} .left,.rightright,.center{position:absolute;} .left{left:0;width:100px;} .rightright{rightright:0;width:100px;} .center{left:120px;rightright:120px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式5

思路五: flex

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:flex;} .left,.rightright{width:100px;} .center{flex:1;margin:020px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> </div> </div>

CSS三列布局的多种表现形式5

二、两列定宽一侧自适应布局

这种布局与单列定宽单列自适应布局非常相似

思路一: float

【1】float + margin

缺点是IE6-浏览器的3px的bug,以及当自适应列中有元素清除浮动时,会使该元素不与左侧浮动元素同行,从而出现文字下沉现象

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.center{float:left;width:100px;margin-right:20px;} .rightright{margin-left:240px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

【2】float + margin + calc

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.center{float:left;width:100px;margin-right:20px;} .rightright{float:left;width:calc(100%-240px);} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

【3】float + margin + (fix)

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.center{position:relative;float:left;width:100px;margin-right:20px;} .rightWrap{float:left;width:100%;margin-left:-240px;} .rightright{margin-left:240px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="rightWrap"> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div> </div>

CSS三列布局的多种表现形式6

【4】float + overflow

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.center{position:relative;float:left;width:100px;margin-right:20px;} .rightright{overflow:hidden;zoom:1;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

思路二: inline-block

【1】inline-block + margin + calc

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{font-size:0;} .left,.rightright,.center{display:inline-block;vertical-align:top;font-size:16px;} .left,.center{width:100px;margin-right:20px;} .rightright{width:calc(100%-240px);} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

【2】inline-block + margin + (fix)

XML/HTML Code复制内容到剪贴板 <style> p{margin:0;} .parent{font-size:0;} .left,.rightWrap,.center{display:inline-block;vertical-align:top;font-size:16px;} .left,.center{position:relative;width:100px;margin-right:20px;} .rightWrap{width:100%;margin-left:-240px;} .right{margin-left:240px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="rightWrap"style="background-color:green;"> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div> </div>

CSS三列布局的多种表现形式7

思路三: table

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:table;width:100%;table-layout:fixed;} .leftWrap,.centerWrap,.rightright{display:table-cell;} .leftWrap,.centerWrap{width:120px;} .left,.center{margin-right:20px;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="leftWrap"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> </div> <divclass="centerWrap"> <divclass="center"style="background-color:pink;"> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

思路四: absolute

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{position:relative;width:100%;height:40px;} .left{position:absolute;left:0;width:100px;} .center{position:absolute;left:120px;width:100px;} .rightright{position:absolute;left:240px;rightright:0;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式6

思路五: flex

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:flex;} .left,.center{width:100px;margin-right:20px;} .rightright{flex:1;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式8

三、中间定宽两侧自适应布局

思路一: float

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left{float:left;margin-right:20px;} .center{float:left;width:100px;margin-right:20px;} .rightright{overflow:hidden;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式9

思路二: table

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:table;width:100%;} .leftWrap{display:table-cell;width:0.1%;} .centerWrap{display:table-cell;width:120px;} .left,.center{margin-right:20px;} .rightright{display:table-cell;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="leftWrap"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> </div> <divclass="centerWrap"> <divclass="center"style="background-color:pink;"> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式9

思路三: flex

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:flex;} .left{margin-right:20px;} .center{width:100px;margin-right:20px;} .rightright{flex:1;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式10

四、一侧定宽两列自适应布局

思路一: float

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left{float:left;width:100px;margin-right:20px;} .center{float:left;margin-right:20px;} .rightright{overflow:hidden;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式11

思路二: table

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:table;width:100%;} .leftWrap{display:table-cell;width:120px;} .centerWrap{display:table-cell;width:0.1%;} .left,.center{margin-right:20px;} .rightright{display:table-cell;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="leftWrap"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> </div> <divclass="centerWrap"> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式11

思路三: flex

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:flex;} .left{width:100px;margin-right:20px;} .center{margin-right:20px;} .rightright{flex:1;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式12

五、三列自适应布局

思路一: float

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{overflow:hidden;} .left,.center{float:left;margin-right:20px;} .rightright{overflow:hidden;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式13

思路二: table

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:table;width:100%;} .leftWrap,.centerWrap{display:table-cell;width:0.1%;} .left,.center{margin-right:20px;} .rightright{display:table-cell;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="leftWrap"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> </div> <divclass="centerWrap"> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

思路三: flex

CSS Code复制内容到剪贴板 <style> p{margin:0;} .parent{display:flex;} .left,.center{margin-right:20px;} .rightright{flex:1;} </style> XML/HTML Code复制内容到剪贴板 <divclass="parent"style="background-color:lightgrey;"> <divclass="left"style="background-color:lightblue;"> <p>left</p> <p>left</p> </div> <divclass="center"style="background-color:pink;"> <p>center</p> <p>center</p> </div> <divclass="right"style="background-color:lightgreen;"> <p>right</p> <p>right</p> </div> </div>

CSS三列布局的多种表现形式13

总结

三列布局类似于大号的两列布局。无论是什么布局方式,无外乎需要应用float、inline-block、table、absolute和flex这五种布局属性,然后再配合负margin、calc()函数、bfc、增加结构等来实现布局

自适应包括两种情况:一种是宽度由内容撑开,一种是宽度自动撑满父元素剩余宽度

可实现宽度由内容撑开的属性有: float、inline、inline-block、table、table-cell、absolute、fixed和flex

可实现宽度自动撑满父元素剩余宽度的属性有: overflow(配合float)、table、flex

原文链接:http://www.cnblogs.com/xiaohuochai/p/5455905.html

【CSS三列布局的多种表现形式】相关文章:

CSS如何控制li标记样式

CSS写的简单表格示例

CSS中常用的缩写方式

CSS控制让每行显示4个图片的样式

CSS网页布局的技巧

CSS浮动布局基础

采用DIV+CSS布局的好处

CSS网页布局的意义与副作用

CSS如何给一个绝对定位的元素设定自适应宽度

浅谈CSS编程的OOCSS和SMACSS设计模式

精品推荐
分类导航