三种方法实现三栏式布局

布局说明:

  实现左右栏固定宽度,中间栏自适应的宽度。

如下图1所示:

方式一:圣杯布局

圣杯布局结构如下:

<div>
    <article class="main"></article>
    <aside class="left"></aside>
    <aside class="right"></aside>
</div>

圣杯布局样式如下:

  1、主体div和公共样式的设置

 1 *{margin: 0;padding: 0;}
 2
 3 div{
 4     background: #eee;
 5     padding: 20px 160px 20px 240px;/*腾出左右的空间用于布局走右侧*/
 6     margin: 20px;
 7     border: 1px solid #999999;
 8     box-sizing: border-box;
 9     overflow: auto;/*清浮动*/
10 }
11
12 article,aside{
13     background: #FFF;
14     border:1px solid #999999;
15 }

  2、中间栏的样式设置

1 .main{
2     width: 100%;/*撑满div的宽度*/
3     height: 300px;
4     float: left;
5     box-sizing: border-box;
6     padding: 20px;
7 }

  3、左侧栏样式设置:

.left{
    width: 200px;
    height: 100px;
    float: left;
    position: relative;
    margin-left: -100%;/*配合float使用,是元素移动到与main同行的位置*/
    box-sizing: border-box;
    left: -220px;/*调整位置*/
    padding: 20px;
}

  4、右侧栏样式设置:

.right{
    width: 120px;
    height: 200px;
    float: left;
    position: relative;
    margin-left: -120px;
    box-sizing: border-box;
    right: -140px;
}

  5、极端判断设置:

@media only screen and (max-width: 650px) {/*解决浏览器窗口极端现象*/
    div{
        width: 610px;
    }
}

方法二:双飞翼布局:

  1、主体结构:

<div id="container">
        <div id="wrapper">
            <div id="main">main</div>
        </div>
        <div id="left">left</div>
        <div id="right">right</div>
    </div>

  2、公共样式与container样式设置:

body{
    padding: 20px;
    font-size: 14px;
    font-family: sans-serif;
}
#container{
    overflow: hidden;/*清浮动*/
    /*width: 100%;*//*可加可不加*/
    padding: 20px;
    background-color: #ccc;
    box-sizing: border-box;/*进入怪异盒模型*/
}

  3、wrapper样式与main样式设置

#wrapper{
    width: 100%;
    float: left;/*这是必须*/
}
#main{
    height: 300px;
    border: 1px solid #555;
    margin-left: 220px;/*空开左侧栏*/
    margin-right: 140px;/*空开右侧栏*/
    background: #eee;
}

  4、left样式设置:

#left{
    width: 200px;
    height: 200px;
    border: 1px solid #555;
    background: #fff;
    float: left;/*这是必须*/
    margin-left: -100%;/*将right移动到与#main同行*/
}

  5、right样式设置:

#right{
    width: 120px;
    height: 120px;
    border: 1px solid #555;
    background: #fff;
    float: left;/*这是必须*/
    margin-left: -122px;/*将right移动到与#main同行*/
}

  6、考虑极端,媒体查询:

@media only screen and (max-width: 600px) {/*解决浏览器窗口极端现象*/
    #container{
        width: 544px;
    }
}

方法三:左右浮动

  1、结构布局(左右中):

<div class="section">
            <div id="left_div"></div>
            <div id="right_div"></div>
            <div id="container"></div>
        </div>

  2、section样式设置:

.section{
    border: 1px #999 solid;
    background-color: #eee;
    padding: 20px;
    margin: 20px;
    zoom: 1;/*IE请浮动*/
    overflow: hidden;/*IE请浮动*/
}
.section::after,section::before{
    content: ‘‘;
    display: block;
    visibility: hidden;
}
.section::after{
    clear: both;
}

  3、left_div样式设置:

#left_div{
    width: 158px;   height:100px;
    padding: 20px;
    border: 1px #999 solid;
    background: #fff;
    float: left;
}

  4、right_div样式设置:

#right_div{
    width: 80px;    height:100px;
    padding: 20px;
    border: 1px #999 solid;
    float: right;
}

  5、container样式设置:

#container{  height:200px;
    margin-left: 220px;/*左侧留白*/
    margin-right: 140px;/*右侧留白*/
    border: 1px #999 solid;
}
时间: 2024-08-24 10:03:52

三种方法实现三栏式布局的相关文章

ubuntu/linux mint 创建proc文件的三种方法(三)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

三栏式布局(所谓的圣杯和双飞翼)

× 目录 [1]float [2]absolute [3]flex[4]总结 前面的话 常常听说圣杯布局和双飞翼布局,以为是两个很高级的语汇.但实际上,他们只是三栏式布局的两种布局方法而已.本文将介绍三栏式布局的3种思路 思路一: float [1]圣杯布局 圣杯布局使用float.负margin和relative,不需要添加额外标签..main元素设置padding,为两侧定宽元素留出位置.内容元素设置100%宽度,占据中间位置.而两侧定宽元素通过设置负margin和relative的偏移属性

【Android基础篇】TabHost导航栏添加标签页的三种方法

使用TabHost实现的导航栏有三种添加页面的方法,分别是直接在布局代码的tab里面添加:通过include标签添加:通过Java代码指定另一个Activity添加.下面是三种方法的示例: 直接在布局代码的tab里面添加标签页 使用拖控件拖出来的TabHost,在它的布局层次上会有三个LinearLayout,id分别为tab1.tab2.tab3,如下图所示: 然后我们可以新建一个Layout,在这个Layout里设计好界面后,将xml代码直接放入tab(1.2.3)的标签里,如下图所示,将设

三栏式布局的实现&amp;&amp; position的应用&amp;&amp;清除移动的含义

网页中各个元素的布局,一般是根据文档流自上而下进行布置.如果想要实现一些独特的布局,则需要进行相应的CSS设置.(position , margin , padding ,float ) 网络上流传的布局方案,一般都涉及 清除浮动 . 所以这又是什么含义,怎么实现呢? |--Position--| position: static | relative | absolute | sticky | fixed |position主要有这些选项.除了static 之外,其余的选项 都需要 附加相关属

三栏式布局

本文来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com 地址:http://www.zhangxinxu.com/wordpress/?p=370 我熟知的三种三栏网页宽度自适应布局方法 一.前言 在如今各个分辨率显示器N足鼎立的时期,页面采用流动性布局(亦可称自适应布局)不失为一个好选择.当然,具体实现不是那么容易,需要一定的css功力和实践经验.本文不讲细节,只讲外部的自适应架构,这也是实现整个页面自适应的前提.目前为止,我所熟知的左中右三栏宽度自适应于浏览器的方

PHP实现链式操作的三种方法详解

这篇文章主要介绍了PHP实现链式操作的三种方法,结合实例形式分析了php链式操作的相关实现技巧与使用注意事项,需要的朋友可以参考下 本文实例讲述了PHP实现链式操作的三种方法.分享给大家供大家参考,具体如下: 在php中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是: strlen(trim($str)) 如果要实现类似js中的链式操作,比如像下面这样应该怎么写? $str->trim()->strlen() 下面分别用三种方式来实现: 方法一.使用魔法函数__ca

Windows Server 2016-客户端退域的三种方法

前边我们提到了客户端加域的操作方法,本章为大家补充域客户端退域的操作过程,包含图形化.netdom remove.Powershell三种方法,具体内容如下: 图形化退域方法: 1.Win键,计算机右键属性: 2.系统界面在计算机名称.域和工作组设置栏选择"更改设置": 3.在系统属性界面,选择"更改": 4.在更改界面隶属于框选择工作组并键入要加入的工作组信息,并确定: 5.提示"离开域后,您需要知道本地管理员账户的密码才能登录到计算机.单击"

CSS实现导航条Tab切换的三种方法

前面的话 ??导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局 ??根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布局效果,有两种布局方法:语义布局和视觉布局 [语义布局] ??从语义布局的角度来看,每一个导航标题和其对应的导航内容应该是一个整体 <style> body,p{margin: 0;} h2{margin: 0;font-size:100%;} ul{margin: 0;padding: 0;li

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a