css中的那些布局
因为最近心血来潮,就总结了一下css中的几种常见的多列布局。
两列自适应布局
两列自适应布局算是css布局里面最基础的一种布局了,不少网站在使用。
这种布局通常是左侧固定,右边自适应,当然也有反过来的,道理一样,这里有好几种方法。

(张鑫旭老师的博客是左边流式布局,右边固定宽度)
- 左浮动+margin
因为浮动会导致元素脱离文档流,所以下面的元素会占据浮动元素原来的位置。
这个时候只要对右边元素设置margin-left:左边div宽度 就可以实现自适应布局。
代码:左浮动实现两列布局
- 绝对定位实现两列布局
这个原理类似浮动,因为绝对定位会脱离文档流,只需要设置右div的margin-left就能实现布局。
代码:绝对定位实现两列布局
- flex实现两列布局
flex布局一直挺好用,无奈兼容性捉急,ie10+才支持。
注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。
flex布局默认项目是主轴为水平方向,最主要的是flex属性。flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。
大概就是给左边的div一个固定值,然后给右边设置flex:auto;来实现两列布局。
这里不多对flex布局介绍,有兴趣的可以看一下
阮一峰老师的这篇博客:flex布局
这里是代码链接:flex布局实现两列布局
- calc实现两列布局
这是css3里面的新属性,兼容性还可以,在ie9+、FF4.0+、Chrome19+、Safari6+都得到了支持。
通过calc可以使用百分比、em、px和rem单位值计算出其宽度或者高度,这样就不用考虑div值到底是多少。所以可以对右边div设置width:calc(100%-100px);来实现自适应布局。
代码链接:calc实现两列布局
- 浮动+margin负值来实现
这是之前写ife任务的时候在一篇博客上看到的。
实现方法是给右边的div外面再套上一个父div,然后让父div的宽度设为100%。
对父div和左边的div都设置左浮动,再让左div的margin-left:-100%,右div设置margin-left:左div的宽度。
这样就实现了自适应布局,当然左右div的前后顺序要反过来。
具体看代码:margin负值实现自适应
三列自适应布局
除了常见的两列布局,我们也经常能够见到三列布局,左右固定,中间自适应。

(这里只是拿这张图举个例子,w3school官网是三列固定布局)
- 浮动实现三列布局
这个类似两列布局的浮动,对左右div分别设置左右浮动,中间div设置margin-left和margin-right来实现,当然在html中的顺序应该是左右中。
代码链接:浮动实现三列布局
- margin负值实现三列布局
原理同margin负值实现两列布局,不多说了。
直接上代码:margin负值实现三列布局
- flex实现三列布局
和flex两列布局一个原理,对两边设置flex:0 0 100px,中间设置flex:auto。
代码代码:flex实现三列布局
css中的那些布局的更多相关文章
- CSS中常见的布局
一.css中常见的布局有哪些? (1)两列布局 (2)三列布局 (3)弹性布局 (4)圣杯布局 (5)双飞翼布局 二.具体实现 (1)两列布局 https://www.cnblogs.com/qin ...
- 图文详解前端CSS中的Grid布局,你真的可以5分钟掌握
前言 网站的布局是一个网站设计的根本,CSS的Grid布局已经成为了未来网站布局的基本方式. 今天这篇文章我们通过图文,一起看看如何自己实现Grid布局方式. CSS 第一个Grid布局 首先我们看看 ...
- css 中的grid布局基础
CSS Grid Layout为CSS引入了一个二维网格系统.网格可用于布局主要页面区域或小型用户界面元素. 网格是一组交叉的水平和垂直线 - 一组定义列,其他行.元素可以放在网格上,以行或者列为标准 ...
- css 中 stick footer 布局实现
做项目中,我们在写弹框的时候,不管弹框的内容多或者少,可能需要一些内容需要固定在框底部,比如关闭按钮.stick footer 就是让 footer 元素固定在底部 当内容不足满屏时,footer 紧 ...
- css中的圣杯布局和双飞翼布局
圣杯布局 布局要求: 三列布局,中间自适应,两边定宽 中间栏要在浏览器优先渲染 允许任意列的高度最高 用最简单的CSS.最少的HACK语句 解释说明: 1.min-width:700px是为了当页面缩 ...
- 使用css中的flex布局弹性手风琴效果
不多说,直接上代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- CSS中的圣杯布局与双飞翼布局
一,圣杯布局 1,什么是圣杯布局? 所谓圣杯布局就是用于实现一个两侧宽度固定,中间宽度自适应的三栏布局 2,构建圣杯布局的步骤: 2.1,添加一个容器,在这个容器中添加放三个盒子(左.中.右): 2. ...
- CSS中的flex布局
1.flex 布局的概念 Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.任何一个容器都可以指定为 Flex 布局,行内元素也可以通过 ...
- css中响应式布局中样式的代码书写方法
代码示例:@media only screen and (min-width: 320px){ html { font-size: 8px !important; } .mulu-zi{ positi ...
随机推荐
- 兼容ie6及以上的表格行滑过时背景色切换的效果
;(function(window){ var tb = document.getElementById('tablelist'); function trfocus(){//为了兼容IE ...
- jQuery原型技术分解
jQuery原型技术分解 起源----原型继承 用户过javascript的都会明白,在javascript脚本中到处都是 函数,函数可以归置代码段,把相对独立的功能封闭在一个函数包中.函数也可以实现 ...
- 如何选择面向移动设备的html5开发框架
很久以前整理了篇将手机网站做成手机应用的JS框架.时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的. 1.jQuery Mobile jQuery Mobile ...
- java发送邮件完整实例 java邮件工具类
http://yuncode.net/code/c_552a2e2dc593894 package com.srie.mail; import java.util.Properties; import ...
- spring mvc 资源包的映射
在springmvc.xml中进行设置: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...
- js运算符单竖杠“|”的作用
在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注: 1. Math.ceil()用作向上取整. 2. M ...
- JS加载相对路径脚本的方法 - 汇总
js加载脚本的方式有很多,但是各有各的用途. 最近公司https项目改造,对于资源文件这一块,也是遇到一些问题,现在就来总结一下,怎样改造https的脚本吧~! 方法1.借助服务端语言如PHP,输入当 ...
- request.setAttribute和request.getAttribute还有session.setAttribute和session.getAttribute还有request.getParameter和request.getAttribute区别和联系
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用. 2.request.setAttr ...
- modprobe和insmod的区别
linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1.insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址.写法为: insmod dr ...
- 初识PHP遗留下来的问题?
待解决的问题: 1.写一个PHP脚本,显示用户输入的名称. 提示: <?php echo $_POST["username"];?>! <?php echo &q ...