css 一行自适应等比例布局
一、浮动布局+百分比
.row {
width:100%;
overflow:hidden;
zoom:1;
}
.item {
float: left;
width: 20%;
}
该样式兼容性较好,但是无法实现当里面的列增多时比例也随着变化,必须手动修改,当然你也可以使用一个JS来调整了。
二、行内元素(inline-block)+百分比
.row {
width:100%;
font-size: 0; /*行内元素间有字符,诸如回车符等会被浏览器解析成一个空格*/
*word-spacing: -1px;
}
.item {
display: inline-block;
*display: inline;
*zoom: 1;
vertical-align: top;
word-spacing: normal;
letter-spacing: normal;
width: 20%;
}
三、display:table + display:table-cell
我们知道表格可以根据内容进行划分,CSS也有一个样式是display:table来实现类似表格的布局,不过不支持IE8以下浏览器。
.row {
width:100%;
display: table;
}
.item {
display: table-cell;
}
四、使用css3 display:flex
.row {
width: 100%;
display: box; /* OLD 2009版 - Android 4.4- */
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - chrome21+ Opera 12.1, Firefox 20+ */
}
.item {
-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
-webkit-flex: 1; /* Chrome */
flex: 1;
}
该方法只适用于高级浏览器,哪怕是移动端兼容性也不好,IE10以下的还是算了。具体介绍看另一篇文章。
五、使用栅格化系统
例如Bootstrap的栅格化系统
.col-md-3 { float:left; }
@media (min-width: 992px) {
.col-md-3 { width: 25%; }
/* 父级容器的3/12 */
}
<div class="container">
<div class="row">
<div class="col-md-3"></div>
...
</div>
</div>
缺点和第一个的float一样,需要根据列数来跳出宽度调整。
总结
如果需要兼容IE6-IE7的,如果列数固定可以使用第一种(浮动布局+百分比)和第二种(行内元素+百分比)。如果列数不固定,可以加少量js支持。
如果是只考虑移动的,考虑第三种(table-ceil),兼容性比下面的flex支持的比较好。
如果单纯的不考虑低版本浏览器的,可以考虑使用第四种(flex)。
附布局基础html代码
<style>
.c-red {
background-color: red;
}
.c-blue {
background-color: blue;
}
.c-gray {
background-color: gray;
}
.c-orange {
background-color: orange
}
.c-green {
background-color: green
}
.container {
width: 1000px;
height: 250px;
margin: 50px auto;
border: 5px solid black;
}
.item {
height: 250px;
}
</style>
<div class="container">
<div class="row">
<div class="item c-red"></div>
<div class="item c-blue"></div>
<div class="item c-gray"></div>
<div class="item c-orange"></div>
<div class="item c-green"></div>
</div>
</div>
css 一行自适应等比例布局的更多相关文章
- 常见css垂直自适应布局(css解决方法)
css3的盒模型, css3中添加弹性盒模型,最新弹性盒模型是flex,之前为box <!DOCTYPE html> <html > <head> <titl ...
- 常见css水平自适应布局
左右布局,左边固定,右边自适应布局 BFC方法解决 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- css实现div两列布局——左侧宽度固定,右侧宽度自适应(两种方法)
原文:css实现div两列布局--左侧宽度固定,右侧宽度自适应(两种方法) 1.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 2.思路 首先把这个问题分步解决,需要攻克以 ...
- CSS流体(自适应)布局下宽度分离原则
CSS流体(自适应)布局下宽度分离原则 这篇文章发布于 2011年02月28日,星期一,00:48,归类于 css相关. 阅读 73990 次, 今日 5 次 by zhangxinxu from h ...
- 七种CSS左侧固定,右侧自适应两栏布局
一 两栏布局基本HTML和CSS 首先创建基本的HTML布局和最基本的样式. 基本的样式是,两个盒子相距20px, 左侧盒子宽120px,右侧盒子宽度自适应 <div class="w ...
- 演示:纯CSS实现自适应布局表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- css高度已知,左右定宽,中间自适应三栏布局
css高度已知,左右定宽,中间自适应三栏布局: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- CSS+DIV自适应布局
CSS+DIV自适应布局 1.两列布局(左右两侧,左侧固定宽度200px;右侧自适应占满) 代码如下: <!doctype html> <html> <head> ...
- div等比例缩放-------纯CSS实现自适应浏览器宽度的正方形
摘自:https://blog.csdn.net/u010513603/article/details/78200207 1.方案一:CSS3 vw 单位 CSS3 中新增了一组相对于可视区域百分比的 ...
随机推荐
- as和强制类型转换的区别
之前一直以为as就是强制类型转换,只是as是AS3中新的语法,之前用在有继承关系的对象之间的转换也无甚区别,但是今天却让我领悟到了它俩之间的区别. 原起:今天要给ColorPicker控件动态赋值,它 ...
- understanding android build layer · Dylan
build / android 先看看Android官方的解释 Understand Build Layers The build hierarchy includes the abstraction ...
- ClassNotFoundException: org.apache.commons.logging.Log
参考: https://bbs.csdn.net/topics/392090371 omcat无法启动,报如下错误: 严重: A child container failed during start ...
- 吴裕雄--天生自然HTML学习笔记:HTML 基础- 4个实例
HTML 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. 实例 <h1>这是一个标题</h1> <h2> ...
- Oracle之函数中使用游标
create or replace function getcustprodinstaddr(in_CustId in number,in_area_code in number) return va ...
- Flume 实战练习
前期准备 了解Flume 架构及核心组件 Flume 架构及核心组件 Source : 收集(指定数据源从哪里获取) Channel : 聚集 Sink : 输出(把数据写到哪里去) 学习使用 Flu ...
- Git 常用资源
库管理 克隆库 git clone https://github.com/php/php-src.git git clone --depth=1 https://github.com/php/php- ...
- C++走向远洋——33(静态成员的应用)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- [工具] Docker安装及portainer GUI
一.Docker Engine安装 1.安装流程 1)移除旧版本(如果有旧版本) yum remove docker \ docker-client \ docker-client-latest \ ...
- Channel Estimation for High Speed Wireless Systems using Gaussian Particle Filter and Auxiliary Particle Filter
目录 论文来源 摘要 基本概念 1.时变信道 2.粒子滤波 3.高斯粒子滤波 4.辅助粒子滤波 比较 借鉴之处 论文来源 International Conference on Communicati ...