css三栏布局技巧,CSS-三栏布局的常用6种方法

三栏布局一般指左右两栏固定宽度,中间一栏自适应的布局方法,也是许多网站常用的布局方式。如下图:

aead24b2620b

该示例在一个html文件中编写,为方便起见,预先写好一个通用的css,左右宽度都为100px;

aead24b2620b

1.浮动三栏

aead24b2620b

左右两栏均为float,中间一栏宽度自适应,这里为了中间一栏的安全输入空间,要为中间一栏加上左右margin。因为block元素自带换行效果,所以main要放在左右元素的后面,而dom元素是按顺序加载的,因此main不能在左右两栏之间完成加载。

2.利用BFC

利用BFC不与float元素叠加的特点,让中间一栏通过设置overflow属性拥有BFC特性,实现了这个三栏布局。

aead24b2620b

该布局同样不能让main在左右两栏之前加载。

后面介绍的四种三栏布局可以让main在左右两栏之前加载。

3.absolute实现三栏布局

使用absolute定位,只需将左右两栏绝对定位到窗口两边,为main添加左右margin创建安全输入区域即可。因为absolute是以第一个定位不是static的父元素定位的,为这个整体添加一个定位不是static的父元素,绝对定位不会与header,footer等重叠。并且main的dom位置在left和right的前面,可在左右两栏之前完成加载

aead24b2620b

4.flex

flex为一种弹性布局方式,flex-direction默认为row,即按行排列;order可以指定在元素在一个flex盒子之中的排列顺序;将main放在left和right前面,并为其设置order至left和right的中间,可以让main优先加载,并且位置不变;flex-grow属性为元素相对放大比率,默认为0,即不放大,设置为1时会自动扩展。

aead24b2620b

5.圣杯布局

首先,建立main,left,right之间的dom结构,将main的width设为100%,main,left和right均为向左浮动,此时的界面如图:

然后利用负margin对元素碰撞的改变,让下面的两个元素上去。对left,要到最左边,margin-left设为-100%,right要到右边,margin-left设为负的自身宽度,现在界面如图

aead24b2620b

aead24b2620b

到这里的步骤都与下面的双飞翼布局一致。

虽然left和right都到了main两边,但main还没有安全输入区间,比如圣杯两字被left盖住了。

为这个整体的父元素box加padding,并用relative将left,right移至对应的位置。

aead24b2620b

即完成了圣杯布局,可完成main在left,right之前加载。

aead24b2620b

6.双飞翼布局

双飞翼的步骤基本同圣杯布局,不过在main里面嵌套了一个块级元素,为那个块级元素设置margin,在这个块级元素之中输入的内容不会被覆盖,并在left,right之前载入

aead24b2620b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关闭服务器系统关机事件,Windows Server 2012 系统提示意外关闭,事件ID:6008

日志名称: System来源: EventLog日期: 2020/7/20 11:10:18事件 ID: 6008任务类别: 无级别: 错误关键字: 经典用户: 暂缺计算机: WIN-GVIJQ6J6IH5描述:上一次系统的 11:06:28 在 ‎…

lol新服务器怎么发信息,《英雄联盟手游》国服新消息 最新玩法发布

大家期待已久的《英雄联盟手游》终于有新消息了,此次发布的消息主要是介绍《英雄联盟手游》的玩法,国服具体发布时间并没有公布。那么接下来看看此次发布的具体内容吧。关注白森森,永远不迷路!一、英雄类型英雄联盟手游的英雄类型分类与端游一…

jdk、jre及jvm的关系

很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。 JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 …

我的理解之JAVA中的4种访问权限

一、Java中有四种访问权限,private、default(一般省略)、public、protected。 private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问&…

ssh连接阿里云服务器遇到的坑

1. 出现‘Host key verification failed.’ 解决方案在这里找到: https://askubuntu.com/questions/45679/ssh-connection-problem-with-host-key-verification-failed-error 2. 自动断开—每隔一两分钟就自动断开 参考: https://superuser.com/quest…

云服务器文件传输问题

最近再做一个web项目,目前决定先把应用放在云服务器上。我选择的云主机是aliyun的Ubuntu 16.04主机。部署好云主机环境后,就需要把我在本地开发好的程序上传到云主机了。刚开始打算用ftp协议来传输,于是参照网上的教程(Ubuntu 16.…

Naive Bayes Classifier - 朴素贝叶斯分类器

Naive Bayes Classifier - 朴素贝叶斯分类器 简介 在机器学习中,朴素贝叶斯分类器是一系列基于“贝叶斯原理”和“特征之间独立分布假设”的概率分类器的总称。把它的名称分成两部分来看,一部分是“贝叶斯”对应的是“贝叶斯原理”;另一部分…

Hello,My first blog!

这是我的第一个博客,之所以想开始写博客主要有几个原因: 1)刚刚毕业,想记录自己在技术方面的成长; 2)不断学习,不断思考,活到老,学到老; 3)希望…

如何在Oracle官网上下载历史版本的JDK

点击下面链接: http://java.sun.com/products/archive/ 选择对应的版本,然后它需要你注册一个Oracle账号,注册一个然后登陆就行了

PL/SQL Developer调试Oracle存储过程

1,选中存储过程,右键,点击Edit,会打开一个窗口,提示错误信息2,添加debug information3,开始调试4,点击调试窗口上面的按钮进行调试

Oracle复杂查询

1、 列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。 1、确定所需要的数据表: dept表:部门名称;emp表:统计信息; 2、确定已知的关联字段: emp.de…

TCP三次握手和四次挥手以及11种状态

TCP三次握手和四次挥手以及11种状态 1、三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK、SYN、FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连…

计算机网络体系结构——各层的功能

OSI七层架构 物理层主要功能:实现比特流的透明传输。基本单位:比特。 数据链路层主要功能 :封装成帧 。把帧从原MAC传到目的MAC(相邻节点之间帧的透明传输) 差错检测 循环冗余检测法。只检测有没有比特错误&#xf…

HTTP报文分析

一、HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行请求头请求体): 下面我们基于socket编写一个简单的HTTP server import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.Inp…

SSM框架整合一(springmvc+spring+mybatis+maven+tomcat)

一,环境说明 jdk1.7.0_07(cmd命令行输入java -version查看),点击下载 eclipse Kepler Service Release 2 apache-maven-3.3.9(cmd命令行输入mvn -v查看),点击下载 apache-tomcat-7.0.52,点击下载 mysql-5.5.28-winx64&#xff0c…

如何在windows机器上安装apache ab

为什么要使用apache ab,apache ab的是用来干嘛的,apache ab的命令? 如果您是来找上面这些问题的答案,那么请立刻关掉当前页面,因为这篇文章是纯粹的安装教程,避免浪费时间。 一,安装环境 win…

apache log4j入门

学习一项新东西之前,我常常问自己: 这项技术是什么? 这项技术为我们做了什么? 为什么不用其他类似的技术? 如何使用这项技术? 于是我带着这些问题开始学习apache log4j 一,apache log4j是…

低版本Eclipse如何快速设置黑色主题

低版本的Eclipse(例如Kepler Service Release 2),没有自带的黑色主题,并且在线安装黑色主题会报错 去网上找了一圈结果都是骗人的,这个时候别着急,只需三个简单的步骤即可完成黑色主题配置。 下面是设置完…

tomcat-maven插件热部署(简洁版)

最近在学ssm框架,为了提高学习效率,想使用tomcat-maven插件热部署,网上有很多关于这方面的文章,但是有很多坑。 自己总结了一下,简化了多余的配置,还有运行过程中发生异常的原因。 环境:apach…

eclipse中配置jad反编译插件

1 下载Eclipse支持jad插件的jar包 将下载得到的net.sf.jadclipse_3.3.0.jar放到eclipse》plugins目录下 2 eclipse配置jad插件 下载jad.exe 3 设置文件关联