等高布局:

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实现等高布局 两栏自适应布局 三栏自适应布局的更多相关文章

  1. 如何用CSS实现左侧宽度固定,右侧自适应(两栏布局)?左右固定中间自适应(三栏布局)呢?

    在前端日常布局中,会经常遇到左侧宽度固定,右侧自适应或者左右两边固定,中间部分自适应的实用场景.本文例子中将列举出两种常用的两栏布局,左侧固定右侧自适应的常用方法以及代码和五种左右固定中间自适应的常用 ...

  2. CSS布局:Float布局过程与老生常谈的三栏布局

    原文见博客主站,欢迎大家去评论. 使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloa ...

  3. 转:CSS布局:Float布局过程与老生常谈的三栏布局

    使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloat属性布局.前者适合布局首页,因为 ...

  4. 如何用CSS实现中间自适应,两边定宽三栏布局

    1.前言 用css实现“两边定宽,中间自适应的三栏布局”这个问题应该是在前端面试中被面试官提问到的高频问题了,一般当面试者写出一种实现方法之后,面试官还会问你还有没有别的方法,尽量多的写出几种实现方法 ...

  5. CSS | 圣杯布局、双飞翼布局 | 自适应三栏布局

    圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局 虽然两者的实现方法略有差异,不过都遵循了以下要点: 1.两侧宽度固定 ...

  6. CSS布局 - 三栏布局

    CSS布局技术可谓是前端技术中最基础的技术,就是因为基础,所以我认为要更加熟练,深入的去掌握,去梳理. 一. 传统 ---> 浮动实现的三栏布局 采用浮动实现的三栏布局有以下特点及注意事项: · ...

  7. CSS三栏布局

    一.绝对定位 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  8. CSS布局——三栏布局

    说到三栏布局,很多都会提到圣杯布局和双飞翼布局这两个经典的三栏布局方式.于是,我在网上搜了一些相关资料,阅读并跟着代码敲了一遍,发现在处理三栏布局上,他们采用的都是两边栏固定,中间栏自适应的策略.在处 ...

  9. 前端一面/面试常考题1-页面布局:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应。

    题目:假设高度已知,请写出三栏布局,其中左栏.右栏宽度各为300px,中间自适应. [题外话:日常宣读我的目标===想要成为一名优雅的程序媛] 一.分析 1. 题目真的像我们想得这么简单吗? 其实不然 ...

  10. 假设高度已知,请写出三栏布局,其中左栏、右栏各为300px,中间自适应的五种方法

    假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应的五种方法 HTML CSS 页面布局 题目:假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应 <!D ...

随机推荐

  1. 十、获取异步线程返回值Callable

    一.简介 异步线程的实现接口Runnable是无法获得返回结果的,而另一个接口Callable可以返回结果.并通过如Future等方式来获取异步结果. 二.代码示例 import java.util. ...

  2. [LeetCode]Find Bottom Left Tree Value

    Find Bottom Left Tree Value: Given a binary tree, find the leftmost value in the last row of the tre ...

  3. Java NIO文章列表(强烈推荐 转)

    IO流学习总结 一 Java IO,硬骨头也能变软 二 java IO体系的学习总结 三 Java IO面试题 NIO与AIO学习总结 一 Java NIO 概览 二 Java NIO 之 Buffe ...

  4. Thymeleaf学习记录(3)--语法

    语法: 标准表达式语法 简单表达: 变量表达式: ${...} 选择变量表达式: *{...} 消息表达式: #{...} 链接网址表达式: @{...} 字面 文本文字:'one text','An ...

  5. 标签设置为inline-block后,如何消除标签之间的间隔。

    标签设置为inline-block后,如何消除标签之间的间隔. 例如: <div> <ul> <li><a href="#">学习& ...

  6. 使用jQuery获取Dribbble的内容

    Introduction As a web developer, third party API integration is something you will have to face. Esp ...

  7. Canvas学习:globalCompositeOperation详解

    在默认情况之下,如果在Canvas之中将某个物体(源)绘制在另一个物体(目标)之上,那么浏览器就会简单地把源特体的图像叠放在目标物体图像上面. 简单点讲,在Canvas中,把图像源和目标图像,通过Ca ...

  8. Hello,world的几种写法!

    这是我的第一篇文章!开个玩笑~~“你知道回字的四种写法吗”? printf("Hello,world!"); cout<<"Hello,world!" ...

  9. Android ListView实现新闻客户端的新闻内容图文混排

    布局文件: <LinearLayout xmlns:android="<a href="http://schemas.android.com/apk/res/andro ...

  10. CountDownTimer的用法及原理

    1.主线程中使用 值得注意的是,CountDownTimer可以在主线程中直接使用.验证一下回调的执行线程.在主线程中执行如下代码 CountDownTimer countDownTimer = , ...