css实现等高布局 两栏自适应布局 三栏自适应布局
等高布局:
HTML结构如下:
<div class="wrapper">
<div class="box">
<h1>...</h1>
<p>...</p>
<div class="bottom"></div>
</div>
</div>
1.padding补值法
css代码如下:
.wrapper{
width: 100%;
overflow: hidden;
}
.box{
width: 250px;
margin-left: 20px;
float: left;
display: inline;
padding: 20px;
background: #89ac10;
margin-bottom: -500px;
padding-bottom:500px;
border: 2px solid #f0c;
}
运行结果如下:
缺点:等高的div没有底边的边框,常用解决方法是使用背景图模仿底部边框或者使用div来模仿底部边框。
2.
css代码如下:
.wrapper{
width: 100%;
overflow: hidden;
position: relative;
background: #98f59e;
}
.box{
width: 250px;
padding: 20px;
padding-bottom: 220px;
margin-bottom: -200px;
margin-left: 20px;
float: left;
display: inline;
background: #89ac10;
border: 2px solid red;
}
.bottom{
position:absolute;
bottom:;
height: 2px;
width: 290px;
background: red;
margin-left: -20px;
}
运行结果如下:
3.flex弹盒布局法:(简单-推荐)
css代码如下:
.wrapper{
width: 100%;
display: flex;
background: #98f59e;
align-items: stretch;
}
.box{
width: 250px;
margin-left: 20px;
background: #89ac10;
}
运行结果如下:
4.设置display值为table-cell
css代码如下:
.wrapper{
width: 100%;
background: #98f59e;
}
.box{
width: 250px;
background: #89ac10;
display: table-cell;
border: 1px solid red;
/*margin 无效*/
}
在此设置margin值是不起作用的,运行结果如下:
两栏自适应布局:
HTML代码如下:
<div class="left">
left
</div>
<div class="right">
right
</div>
1.浮动布局:
css代码如下:
.left{
float: left;
width: 300px;
height: 400px;
background: #41d844;
}
.right{
margin-left: 310px;
height: 400px;
background: #41d800;
}
运行结果如下:
2.绝地定位布局:
css代码如下:
.left{
position: absolute;
margin-right: -100%;
width: 300px;
height: 400px;
background: #925;
}
.right{
margin-left: 310px;
height: 400px;
background: #41d800;
}
运行效果如下:
三栏自适应布局:
1.float+负margin实现
HTML代码如下:
<div class="container">
<div class="center">center</div>
</div>
<div class="left">left</div>
<div class="right">right</div>
css代码如下:
.container{
width: 100%;
height: 300px;
float: left;
}
.center{
background: #16ea74;
height: 300px;
margin-left: 250px;
margin-right: 250px;
}
.left{
background: #16ea26;
float: left;
width: 200px;
height: 300px;
margin-left: -100%;
}
.right{
background: #16ea26;
float: left;
width: 200px;
height: 300px;
margin-left: -200px;
}
实现效果如下:
2.float方法:
HTML代码如下:
<div class="left">left</div>
<div class="right">right</div>
<div class="container">
<div class="center">center</div>
</div>
css代码如下:
.center{
background: #16ea74;
height: 300px;
margin-left: 250px;
margin-right: 250px;
}
.left{
background: #16ea26;
float: left;
width: 200px;
height: 300px;
}
.right{
background: #16ea26;
float: right;
width: 200px;
height: 300px;
}
运行效果如下:
与第一种方法差距在元素书写顺序上,左右浮动后脱离文档流设置中间元素margin左右值。
css实现等高布局 两栏自适应布局 三栏自适应布局的更多相关文章
- 如何用CSS实现左侧宽度固定,右侧自适应(两栏布局)?左右固定中间自适应(三栏布局)呢?
在前端日常布局中,会经常遇到左侧宽度固定,右侧自适应或者左右两边固定,中间部分自适应的实用场景.本文例子中将列举出两种常用的两栏布局,左侧固定右侧自适应的常用方法以及代码和五种左右固定中间自适应的常用 ...
- CSS布局:Float布局过程与老生常谈的三栏布局
原文见博客主站,欢迎大家去评论. 使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloa ...
- 转:CSS布局:Float布局过程与老生常谈的三栏布局
使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloat属性布局.前者适合布局首页,因为 ...
- 如何用CSS实现中间自适应,两边定宽三栏布局
1.前言 用css实现“两边定宽,中间自适应的三栏布局”这个问题应该是在前端面试中被面试官提问到的高频问题了,一般当面试者写出一种实现方法之后,面试官还会问你还有没有别的方法,尽量多的写出几种实现方法 ...
- CSS | 圣杯布局、双飞翼布局 | 自适应三栏布局
圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局 虽然两者的实现方法略有差异,不过都遵循了以下要点: 1.两侧宽度固定 ...
- CSS布局 - 三栏布局
CSS布局技术可谓是前端技术中最基础的技术,就是因为基础,所以我认为要更加熟练,深入的去掌握,去梳理. 一. 传统 ---> 浮动实现的三栏布局 采用浮动实现的三栏布局有以下特点及注意事项: · ...
- CSS三栏布局
一.绝对定位 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- CSS布局——三栏布局
说到三栏布局,很多都会提到圣杯布局和双飞翼布局这两个经典的三栏布局方式.于是,我在网上搜了一些相关资料,阅读并跟着代码敲了一遍,发现在处理三栏布局上,他们采用的都是两边栏固定,中间栏自适应的策略.在处 ...
- 前端一面/面试常考题1-页面布局:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应。
题目:假设高度已知,请写出三栏布局,其中左栏.右栏宽度各为300px,中间自适应. [题外话:日常宣读我的目标===想要成为一名优雅的程序媛] 一.分析 1. 题目真的像我们想得这么简单吗? 其实不然 ...
- 假设高度已知,请写出三栏布局,其中左栏、右栏各为300px,中间自适应的五种方法
假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应的五种方法 HTML CSS 页面布局 题目:假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应 <!D ...
随机推荐
- hdu 1075 What Are You Talking About 字典树模板
What Are You Talking About Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K ...
- 解决全站字符乱码(POST和GET中文编码问题)
1 说明 乱码问题: 获取请求参数中的乱码问题: POST请求:request.setCharacterEncoding(“utf-8”): GET请求:new String(request.getP ...
- python中静态方法(@staticmethod)和类方法(@classmethod)的区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应 ...
- h5的classList对象
H5新增属性classList h5中新增了一个classList,原生js可以通过它来判断获取dom节点有无某个class. classList是html元素对象的成员,它的使用非常简单,比如 co ...
- drupal7 自定义登录&找回密码页面,注意事项
1.登录页面的 $form['form_id'] 和 $form['form_build_id'],是这样输出的: <?php print drupal_render($form['form_i ...
- mybatis大框架
MyBatis 开源的数据持久化层框架 实体类与SQL语句之间建立映射关系 一:MyBatis前身是IBatis,本是Apache的一个开源的项目, 基于SQL语法,简单易学 ,是耦合度降低,方便 ...
- ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004
导语 随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外. 环境 Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版 ...
- 微服务架构之spring cloud ribbon
现在负载均衡是通用的解决分压的技术方案,实现方式一般分为服务端或者客户端,服务端大部分是使用中间件实现,spring cloud ribbon 是一个客户端负载均衡组件.跟spring cloud e ...
- Activity 四种launchMode
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的 Activity实例,是否和其他Activity实例公用一个tas ...
- 下载 github 项目文件到本地方法
下载 github 项目文件到本地方法 本篇终极,收集 3 种方法 最厉害 666 的方法 直接访问网站: 操作如下: 本地工具版下载方法 首先需要下载 git 客户端 我就不转载了,上面有客户端的使 ...