div+css布局自适应小结
一、两栏布局(左定宽,右自动)
1. float + margin
即固定宽度元素设置float属性为left,自适应元素设置margin属性,margin-left应>=定宽元素宽度。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>两栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
margin: 10px;
}
.wrap_left{
float: left;
width: 200px;
background-color: red;
}
.wrap_right{
margin-left: 220px;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
</div>
</body>
</html>
2.position + margin
即在父标签设置position属性为relative;子标签中定宽元素设置position属性为absolute;自适应元素设置margin属性,margin-left>=定宽元素宽度。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>两栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
margin: 10px;
position: relative;
}
.wrap_left{
position: absolute;
width: 200px;
background-color: red;
}
.wrap_right{
margin-left: 220px;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
</div>
</body>
</html>
3.float + 负margin
即给自适应宽度元素定义一个父标签,并设置float属性为left;width为100%;自适应宽度元素设置margin,margin-left应>=定宽元素宽度;
固定宽度元素设置margin-left属性为负值:-100%;
除此之外应注意HTML结构中应先写自适应元素,再写固定宽度元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>两栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
float: left;
width: 100%;
}
.wrap .wrap_right{
margin-left: 220px;
background-color: green;
}
.wrap_left{
float: left;
width: 200px;
margin-left: -100%;
background-color: red;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_right">
我是右栏
</div>
</div>
<div class="wrap_left">
我是左栏
</div>
</body>
</html>
注:使用的float属性,必要时清除一下浮动。
4.用table布局实现<!DOCTYPE html><html>
<head>
<meta charset="UTF-8">
<title>两栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,table{
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<table width="100%" cellspacing="0" cellpadding="0" border="1" height="300">
<tr>
<td width="200" bgcolor="red"></td>
<td bgcolor="green"></td>
</tr>
</table>
</body>
</html>
注:使用表格时,一定要设置高度才可以
5.触发BFC实现
关于BFC是什么、怎么触发BFC以及BFC可以用来做什么,大家可以看看这篇,
实现方法,即为定宽元素设置float:left;自适应宽度元素设置可以触发BFC的属性。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>两栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap_left{
float: left;
width: 200px;
background-color: red;
}
.wrap_right{
overflow: hidden;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
</body>
</html>
6.flex伸缩盒方法
即父标签设置display:flex属性,自适应元素设置flex-grow:1;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>两栏栏布局-左定宽,右自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
display: flex;
display: -webkit-flex;
}
.wrap_left{
width: 200px;
background-color: red;
}
.wrap_right{
flex-grow:1;
-webkit-flex-grow:1;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
</div>
</body>
</html>
二、三栏布局
掌握了上面的方法,我们会发现制作一个三栏布局也是非常容易的。
下面我们在上面栗子的基础上,看看实现一个两侧定宽,中间自适应的三栏布局如何实现
1. float + margin(两侧定宽,中间自适应)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自适应</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap_left{
width: 200px;
float: left;
background-color: red;
}
.wrap_content{
margin-left: 220px;
margin-right: 220px;
background-color: yellow;
}
.wrap_right{
width: 200px;
float: right;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
<div class="wrap_content">
我是中间栏
</div>
</body>
</html>
2. position + margin(两侧定宽,中间自适应)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自适应</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap_left{
width: 200px;
position: absolute;
background-color: red;
left: 0;
}
.wrap_content{
margin-left: 220px;
margin-right: 220px;
background-color: yellow;
}
.wrap_right{
width: 200px;
position: absolute;
right: 0;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
<div class="wrap_content">
我是中间栏
</div>
</body>
</html>
3.float + 负margin(两侧定宽,中间自适应)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自适应</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
float: left;;
width: 100%;
}
.wrap_left{
width: 200px;
float: left;
margin-left: -100%;
background-color: red;
}
.wrap_content{
margin-left: 220px;
margin-right: 220px;
background-color: yellow;
}
.wrap_right{
width: 200px;
float: left;
margin-left: -200px;
background-color: green;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_content">
我是中间栏
</div>
</div>
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
</body>
</html>
4.table实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自动</title>
<style type="text/css">
html,body,table{
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<table width="100%" cellspacing="0" cellpadding="0" border="1" height="300">
<tr>
<td width="200" bgcolor="red"></td>
<td bgcolor="yellow"></td>
<td width="200" bgcolor="green"></td>
</tr>
</table>
</body>
</html>
5.BFC方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap_left{
float: left;
width: 200px;
background-color: red;
}
.wrap_right{
float: right;
width: 200px;
background-color: green;
}
.wrap_content{
overflow: hidden;
background-color: yellow;
}
</style>
</head>
<body>
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_right">
我是右栏
</div>
<div class="wrap_content">
我是中间栏
</div>
</body>
</html>
注:HTML中先写定宽元素,再写自适应宽度元素。
6.flex伸缩盒
即父标签设置display:flex属性,自适应元素设置flex-grow:1;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三栏布局-两侧定宽,中间自动</title>
<style type="text/css">
html,body,div{
margin: 0;
padding: 0;
}
.wrap{
display: flex;
display: -webkit-flex;
}
.wrap_left{
width: 200px;
background-color: red;
}
.wrap_right{
width: 200px;
background-color: green;
}
.wrap_content{
flex-grow:1;
-webkit-flex-grow:1;
background-color: yellow;
}
</style>
</head>
<body>
<div class="wrap">
<div class="wrap_left">
我是左栏
</div>
<div class="wrap_content">
我是中间栏
</div>
<div class="wrap_right">
我是右栏
</div>
</div>
</body>
</html>
div+css布局自适应小结的更多相关文章
- DIV+CSS布局中自适应高度的解决方法
div乱跑问题 (文件<DIV+CSS布局中自适应高度的解决方法.rar>) float 是个很危险的东西 得小心使用 本来有一很好的关于CSS+DIV的论坛 不过现在关门了 甚是可 ...
- DIV+CSS布局中主要CSS属性介绍
Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...
- DIV+CSS布局-固定页面开度布局
DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Fl ...
- 一小时搞定DIV+CSS布局-固定页面开度布局
本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_20139 ...
- (转)div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)
站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...
- (转)一小时搞定DIV+CSS布局-固定页面开度布局
本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_20139 ...
- div+css 布局下兼容IE6 IE7 FF常见问题
div+css 布局下兼容IE6 IE7 FF常见问题 收藏 所有浏览器 通用 (市面上主要用到的IE6 IE7 FF)height: 100px; IE6 专用 _height: 100px; IE ...
- DIV+CSS布局重新学习之float/margin/padding
之前对div的css布局一直有点半知半解,只其然却不知其所以然,到网上下载了“十天学会DIV+CSS(WEB标准)”的chm电子版,然后跟着练习了一下,特在此记录,备忘. <!DOCTYPE h ...
- div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)
站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...
随机推荐
- nginx 自动填充index.php
if (!-e $request_filename) { rewrite ^/(.+?\.php)/?(.*)$ /$/$ last; rewrite ^/(.*)$ /index.php/$ las ...
- 【udacity】机器学习-决策树
Evernote Export 1.监督学习 我们向系统中输出样本,并且告诉系统样本标签(target),系统用我们给出的不同样本的成功与失败的信息,构建它对成功或失败的因素的理解. 2.分类与回归之 ...
- pywinauto进阶练习
case1.画图工具简单练习 #_*_coding=utf-8_*_ import time from pprint import pprint import logging from logging ...
- Scalable Web Architecture and Distributed Systems
转自:http://aosabook.org/en/distsys.html Scalable Web Architecture and Distributed Systems Kate Matsud ...
- Centos如何安装 jdk 环境变量
一.编辑 profile 文件 vim /etc/profile 二.在 profile 文件下面最下面加上以下内容 export JAVA_HOME=/usr/local/java/jdk1.7.0 ...
- springmvc上传操作
创建虚拟目录 配置tomcat的配置文件server.xml 在真实路径中放置一个图片 启动服务器: 直接可以通过配置的虚拟路径来访问真实路径中的图片 所以 我们在做图片上传的操作的时候 就可 ...
- MySQL 利用binlog增量备份+还原实例
一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然 ...
- ASP.NET--Razor-model-compare属性用法
学习使用model中的compare属性来判断两个密码之间是否相同 [Required] [StringLength(100, ErrorMessage = "The {0} must be ...
- 使用jekyll配置一个自己的blog
使用coding.net上提供的pages服务来配置一个自己的站点 提示:下载这些软件,最好能FQ,有些链接是国外的,淘宝的ruby镜像已经不提供服务了 1. 安装Ruby 2. 安装Rubygems ...
- BA-siemens-ppm模块在ALN层通信
PPM作为新的扩展模块,有MS/TP通讯的能力,但是在常规设置的时候必须设置在PXC Modular下面,PPM上线也必须在PXC Modular上中超级终端设置,偶然通过一个项目实现了PPM挂载在A ...