css之两栏布局左侧固定右侧高度自适应

css两栏布局之左侧固定右侧高度自适应

先看这样的html+css结构:

  .main {        width: 900px;        overflow:hidden;        margin: 0 auto;        border:1px solid #000;    }     .left {        width: 600px;        float:left;        background: #ccb;     }     .right {        float:left;        width: 300px;        background: #acf;     }
  <div class="main">        <div class="left">            <p>我是内容</p>            <p>我是内容</p>            <p>我是内容</p>            <p>我是内容</p>            <p>我是内容</p>            <p>我是内容</p>        </div>        <div class="right"></div>    </div>

条件:左栏右栏均宽度固定,现在左侧高度由内容自动撑开,问怎样实现右侧高度随左侧自适应变化。

由以上的代码可以得到下图

可以看到右侧高度并没有撑开。那么要实现右侧高度自适应,常用的有三种方法:

  • 1 背景图片法: 
    先用ps做一个背景图,注意背景图的宽及颜色要和html+css里左右栏的宽和颜色相对应。

然后把这个图片添加到父盒子的背景:即给父盒子.main添加一条属性: 
background: url(bg.jpg) repeat-y; 
这样图片就把高度撑开了:

一些著名的网站如搜狐,12306等就采用了这种方法。。

  • 2 margin和padding补偿法:

    给右侧栏代码css样式里添加一个足够大的padding-bottom值,再添加相等的负的margin-bottom值,这样右侧高度就撑开了,右侧栏代码如下:

       .right {    float:left;    width: 300px;    background: #acf;    padding-bottom:100000em;    margin-bottom:-100000em; }

    这种方法还是相当简单方便的,只是打开控制台可以看到右侧栏盒模型有一个很大的padding值,强迫症者慎用。

  • 3 绝对定位法:

    父盒子设置相对定位,右侧栏设为绝对定位且right:0,去掉浮动属性,这样右盒子脱离标准文档流就可以加属性height:100%,它的高度就和和父盒子同步了。 
    右侧栏代码变为:

    .right {        position:absolute;        height:100%;        right:0;        width: 300px;        background: #acf;     }
时间: 2024-12-25 00:47:48

css之两栏布局左侧固定右侧高度自适应的相关文章

纯CSS实现三列布局(两边固定,中间自适应)

看了一些网上的案例,感觉较繁杂,于是,自己整理了一篇来说明这个东西. 也是给我自己复习吧,以前有人问道,我还没答上来呢.== 看代码: html: 1 <div class="top">this is top</div> 2 <div class="container"> 3 <div class="left">this is left</div> 4 <div class=&qu

需求:页面content分为左右两栏,左侧固定定位,滚动显示,右侧亦可滚动查看

如题,content宽度为1200px,代码初版如下所示: <script type="text/javascript" >     function menuFixed(id){         $('#rightanswer').css('height', document.documentElement.clientHeight*0.86+'px');         $('#viewerPlaceHolder').css('height', document.doc

CSS之两栏布局

<div class="right"></div> <div class="left"></div> *{ padding: 0; margin: 0; } .right{ position: absolute; /*成了行级块元素,脱了文档流,那么它后面的兄弟会补位上去*/ right: 0; width: 100px; height: 100px; background: bisque; opacity: 0.3;

七种实现左侧固定,右侧自适应两栏布局的方法

总结一下左边固定,右边自适应的两栏布局的七种方法.其中有老生常谈的float方法,BFC方法,也有CSS3的flex布局与grid布局.并非所有的布局都会在开发中使用,但是其中也会涉及一些知识点.关于最终的效果,可以查看这里 常用的宽度自适应的方法通常是利用了block水平的元素宽度能随父容器调节的流动特性.另外一种思路是利用CSS中的calc()方法来动态设定宽度.还有一种思路是,利用CSS中的新型布局flex layout与grid layout. 首先创建基本的HTML布局和最基本的样式.

两栏布局,右侧自适应

总结了一下两栏布局,右侧自适应的方法,欢迎指点和补充~~ 方法一:要求right中的子元素不能有固定宽度的(为了IE6),right要加overflow:hidden;           如果right中的内容有固定宽度的浮动元素时,right要加overflow:hidden;,否则当浏览器缩小到right宽度小于里面子元素的宽度时,在非IE67的浏览器中right里的子元素会下移,IE7正常显示:           不论加不加overflow,在IE6中,当浏览器缩小到right宽度小于

HTML+CSS的两栏、三栏布局以及垂直居中的实现方式

1.两栏布局(左固定,右适应) 先写出初始样式和结构. <div class="container"> <div class="left">Lorem ipsum dolor sit amet</div> <div class="right">Lorem ipsum dolor sit amet</div> </div> div { height: 200px; color:

css两栏布局、圣杯布局、双飞翼布局

最近几个月一直用vue在写手机端的项目,主要写业务逻辑,在js方面投入的时间和精力也比较多.这两天写页面明显感觉css布局方面的知识有不足,所以复习一下布局方法. 两栏布局 1.浮动 .box1 .left { float: left; width: 100px; height: 100px; background-color: red; } .box1 .right { margin-left: 100px; height: 100px; background-color: green; }

Css布局系列-上下两栏布局

上下两栏布局,这个在做信息系统的时候我感觉用得比较多.结合前面布局的介绍,改天给介绍一个稍微比较复杂的真实信息系统布局.请看效果图: 要点:最顶一栏给其固定高度,下面一栏高宽度让其自撑,如果该栏的内容溢出,设置overflow属性为auto,允许其出现滚动条.下面一栏必须给设置绝对定位,他top的距离就是等于顶栏的高度且bottom等于0,就会自动拉升高度. *{margin: 0;padding: 0;} html, body{height: 100%;} .container{height:

flex实现水平居中和两栏布局

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>水平垂直的实现</title> <style> .wrapper{ width: