栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

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

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

思路一:  float

【1】float + margin + calc

CSS Code复制内容到剪贴板
  1.   
  2. p{margin: 0;}   
  3. .parent{overflow: hidden;}   
  4. .left,.rightright{float: left;width: 100px;}   
  5. .center{float: left; width:calc(100% - 240px);margin: 0 20px;}   
  6.   
  7.   
XML/HTML Code复制内容到剪贴板
  1.   
  2.       
  3.         

    left

      
  4.     
       
  •       
  •         

    center

      
  •         

    center

      
  •     
  •        
  •       
  •         

    right

      
  •     
  •            
  •   
  •   
  • 【2】float + margin + (fix)

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.rightright{position: relative;float: left;width: 100px;}   
    5. .centerWrap{float: left; width:100%; margin: 0 -100px;}   
    6. .center{margin: 0 120px;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                    
    5.       
    6.           
    7.             

      center

        
    8.             

      center

        
    9.                    
    10.       
    11.       
    12.         

      right

        
    13.                    
    14.   
    15.     

    思路二: inline-block

    【1】inline-block + margin + calc

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{font-size: 0;}   
    4. .left,.rightright,.center{display:inline-block; vertical-align: top;font-size: 16px;}   
    5. .left,.rightright{width: 100px;}   
    6. .center{width: calc(100% - 240px); margin: 0 20px;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                    
    5.       
    6.         

      center

        
    7.         

      center

        
    8.                
    9.       
    10.         

      right

        
    11.                    
    12.   
    13.   

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

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{font-size: 0;}   
    4. .left,.rightright,.centerWrap{display:inline-block; vertical-align: top;font-size: 16px;}   
    5. .left,.rightright{width: 100px;position:relative;}   
    6. .centerWrap{width: 100%; margin: 0 -100px;}   
    7. .center{margin: 0 120px;}   
    8.   
    9.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.           
    7.             

      center

        
    8.             

      center

        
    9.                    
    10.                
    11.       
    12.         

      right

        
    13.                    
    14.   
    15.   

     

    思路三: table

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: table; width: 100%;table-layout: fixed;}   
    4. .left,.rightright,.centerWrap{display:table-cell;}   
    5. .left,.rightright{width: 100px;}   
    6. .center{margin: 0 20px;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.           
    7.             

      center

        
    8.             

      center

        
    9.                    
    10.                
    11.       
    12.         

      right

        
    13.                    
    14.   
    15.   

     

    思路四: absolute

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{position: relative;height:40px;}   
    4. .left,.rightright,.center{position: absolute;}   
    5. .left{left: 0;width:100px;}   
    6. .rightright{rightright: 0;width: 100px;}   
    7. .center{left: 120px; rightright: 120px;}   
    8.   
    9.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.         

      center

        
    8.                        
    9.       
    10.         

      right

        
    11.                    
    12.   

     

    思路五: flex

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: flex;}   
    4. .left,.rightright{width: 100px;}   
    5. .center{flex: 1; margin: 0 20px;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.         

      center

        
    8.                        
    9.       
    10.         

      right

        
    11.                    
    12.   
    13.   

     

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

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

    思路一: float

    【1】float + margin

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

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.center{float: left;width: 100px;margin-right: 20px;}   
    5. .rightright{margin-left: 240px;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                        
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                    
    12.   
    13.   

     

    【2】float + margin + calc

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.center{float: left;width: 100px;margin-right: 20px;}   
    5. .rightright{float: left; width: calc(100% - 240px);}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                        
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                    
    12.   
    13.   

     

    【3】float + margin + (fix)

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.center{position: relative; float: left;width: 100px;margin-right: 20px;}   
    5. .rightWrap{float: left; width: 100%; margin-left: -240px;}   
    6. .rightright{margin-left:240px;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                
    8.       
    9.           
    10.             

      right

        
    11.             

      right

        
    12.                        
    13.                    
    14.   
    15.   

     

    【4】float + overflow

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.center{position: relative; float: left;width: 100px;margin-right: 20px;}   
    5. .rightright{overflow: hidden;zoom:1;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                                
    12.   
    13.   

     

    思路二: inline-block

    【1】inline-block + margin + calc

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{font-size: 0;}   
    4. .left,.rightright,.center{display:inline-block; vertical-align: top;font-size: 16px;}   
    5. .left,.center{width: 100px;margin-right:20px;}   
    6. .rightright{width: calc(100% - 240px);}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                                
    12.   
    13.   

     

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

    XML/HTML Code复制内容到剪贴板
    1.   
    2.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.            
    5.       
    6.         

      center

        
    7.                
    8.       
    9.           
    10.             

      right

        
    11.             

      right

        
    12.                    
    13.                    
    14.   
    15.   

     

    思路三: table

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: table; width: 100%;table-layout: fixed;}   
    4. .leftWrap,.centerWrap,.rightright{display:table-cell;}   
    5. .leftWrap,.centerWrap{width: 120px;}   
    6. .left,.center{margin-right: 20px;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.           
    4.             

      left

        
    5.                    
    6.       
    7.       
    8.           
    9.             

      center

        
    10.                    
    11.       
    12.       
    13.         

      right

        
    14.         

      right

        
    15.                    
    16.   
    17.   

     

    思路四: absolute

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{position: relative;width:100%;height:40px;}   
    4. .left{position: absolute;left:0;width:100px;}   
    5. .center{position: absolute;left:120px;width: 100px;}   
    6. .rightright{position: absolute;left:240px; rightright:0;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                
    5.       
    6.         

      center

        
    7.                
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                    
    12.   
    13.   

     

    思路五: flex

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: flex;}   
    4. .left,.center{width:100px;margin-right:20px;}   
    5. .rightright{flex:1;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                
    5.       
    6.         

      center

        
    7.                
    8.       
    9.         

      right

        
    10.         

      right

        
    11.                    
    12.   
    13.   

     

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

    思路一: float

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left{float: left;margin-right: 20px;}   
    5. .center{float: left;width: 100px;margin-right: 20px;}   
    6. .rightright{overflow: hidden;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.         

      left

        
    5.                
    6.       
    7.         

      center

        
    8.            
    9.       
    10.         

      right

        
    11.         

      right

        
    12.                            
    13.   
    14.   

     

    思路二: table

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: table; width: 100%;}   
    4. .leftWrap{display: table-cell; width: 0.1%;}   
    5. .centerWrap{display: table-cell;width: 120px;}   
    6. .left,.center{margin-right: 20px;}   
    7. .rightright{display:table-cell;}   
    8.   
    9.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.           
    4.             

      left

        
    5.             

      left

        
    6.                        
    7.       
    8.       
    9.           
    10.             

      center

        
    11.                        
    12.       
    13.       
    14.         

      right

        
    15.         

      right

        
    16.                            
    17.   
    18.   

     

    思路三: flex

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: flex;}   
    4. .left{margin-right: 20px;}   
    5. .center{width: 100px;margin-right: 20px;}   
    6. .rightright{flex: 1;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.         

      left

        
    5.                    
    6.       
    7.         

      center

        
    8.                    
    9.       
    10.         

      right

        
    11.         

      right

        
    12.                            
    13.   

     

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

    思路一: float

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left{float: left;width: 100px;margin-right: 20px;}   
    5. .center{float: left;margin-right: 20px;}   
    6. .rightright{overflow: hidden;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                    
    5.       
    6.         

      center

        
    7.         

      center

        
    8.                    
    9.       
    10.         

      right

        
    11.         

      right

        
    12.                            
    13.   
    14.   

    思路二: table

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: table; width: 100%;}   
    4. .leftWrap{display: table-cell; width: 120px;}   
    5. .centerWrap{display: table-cell;width: 0.1%;}   
    6. .left,.center{margin-right: 20px;}   
    7. .rightright{display:table-cell;}   
    8.   
    9.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.           
    4.             

      left

        
    5.                        
    6.       
    7.       
    8.           
    9.             

      center

        
    10.             

      center

        
    11.                        
    12.       
    13.       
    14.         

      right

        
    15.         

      right

        
    16.                            
    17.   
    18.   

     

    思路三: flex

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: flex;}   
    4. .left{width: 100px;margin-right: 20px;}   
    5. .center{margin-right: 20px;}   
    6. .rightright{flex: 1;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.                    
    5.       
    6.         

      center

        
    7.         

      center

        
    8.                    
    9.       
    10.         

      right

        
    11.         

      right

        
    12.                            
    13.   
    14.   

     

    五、三列自适应布局

    思路一: float

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{overflow: hidden;}   
    4. .left,.center{float: left;margin-right: 20px;}   
    5. .rightright{overflow: hidden;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.         

      left

        
    5.                    
    6.       
    7.         

      center

        
    8.         

      center

        
    9.                    
    10.       
    11.         

      right

        
    12.         

      right

        
    13.                            
    14.   
    15.   

     

    思路二: table

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: table; width: 100%;}   
    4. .leftWrap,.centerWrap{display: table-cell;width: 0.1%;}   
    5. .left,.center{margin-right: 20px;}   
    6. .rightright{display:table-cell;}   
    7.   
    8.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.           
    4.             

      left

        
    5.             

      left

        
    6.                        
    7.       
    8.       
    9.           
    10.             

      center

        
    11.             

      center

        
    12.                        
    13.       
    14.       
    15.         

      right

        
    16.         

      right

        
    17.                            
    18.   
    19.   
       

    思路三: flex

    CSS Code复制内容到剪贴板
    1.   
    2. p{margin: 0;}   
    3. .parent{display: flex;}   
    4. .left,.center{margin-right: 20px;}   
    5. .rightright{flex: 1;}   
    6.   
    7.   
    XML/HTML Code复制内容到剪贴板
    1.   
    2.       
    3.         

      left

        
    4.         

      left

        
    5.                    
    6.       
    7.         

      center

        
    8.         

      center

        
    9.                    
    10.       
    11.         

      right

        
    12.         

      right

        
    13.                            
    14.   
    15.   


     

    总结

      三列布局类似于大号的两列布局。无论是什么布局方式,无外乎需要应用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
    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/217668.html

    CSS教程相关栏目本月热门文章

    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号