div剩余高度自动填充

有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。

如果外层div高度自适应于内部,就完全不需要额外写规则了,另外一个DIV绝对能撑高外层div,填得紧紧实实的。

如果是外层div自适应于它的父级,纯CSS的办法是有的。

为了方便演示,下面的demo都让外层元素100%适应于html和body,点Edit in JSFiddle之后可以看到,拖动窗口高度,均能自适应。

box-sizing方案

  1. 外层box-sizing: border-box; 同时设置padding: 100px 0 0
  2. 内层100像素高的元素向上移动100像素,或使用absolute定位防止占据空间;
  3. 另一个元素直接height: 100%;

这就是两个方案了

第一种方案:

html代码:

    <div class="outer">
        <div class="A"></div>
        <div class="B"></div>
    </div>

css代码:

html,
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; }
.A { height: 100px; margin: -100px 0 0; background: #BBE8F2; }
.B { height: 100%; background: #D9C666; }

 第二种方案:

html代码:

    <div class="outer">
        <div class="A"></div>
        <div class="B"></div>
    </div>

css代码:

html,
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; position: relative; }
.A { height: 100px; background: #BBE8F2; position: absolute; top: 0 ; left: 0 ; width: 100%; }
.B { height: 100%; background: #D9C666; }

absolute positioning

  1. 外层position: relative
  2. 百分百自适应元素直接position: absolute; top: 100px; bottom: 0; left: 0

第三个方案:

html代码:

    <div class="outer">
        <div class="A"></div>
        <div class="B"></div>
    </div>

css代码:

html,
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; position: relative; }
.A { height: 100px; background: #BBE8F2; }
.B { background: #D9C666; width: 100%; position: absolute; top: 100px ; left: 0 ; bottom: 0; }

注意一下,这三个方案都是IE8+。

文章来源:http://segmentfault.com/q/1010000000762512/a-1020000000762933

时间: 2024-08-03 07:00:42

div剩余高度自动填充的相关文章

让2个并列的div根据内容自动保持同等高度js

有左右2个并列的div,2个div都不能限定高度.左div为导航,右div为内容.如何能让左div块自动获得和右div块相等的高度? 同时,也有网友提问到“如果右块高度比左块低,会不会导致左块的内容被溢出不显示之类的问题.应该是取左右2者的最高值吧来对齐吧”. 的确应该是哪个div Height值大,就将其值赋给Height值小的div,从而使2个div高度始终保持一致. function $(id){ return document.getElementById(id) } function

子DIV浮动(float)后父DIV高度自动失效解决方案

高度的自适应(父div高度随子div的高度改变而改变): 1.如果父div不定义height.子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改变. 2.如果父div定义height,子div均为标准流的时候,在IE下父div的height随内容变化而变化,如父div设置height:50px 如下所示,子元素div 本身具有高度和宽度,但由于其具有float:left属性后,其父元素div不具有高度. <html> <head&

chrome表单自动填充导致input文本框背景变成偏黄色问题解决

chrome表单自动填充导致input文本框背景变成偏黄色问题解决 作者:佚名 字体:[增加 减小] 来源:互联网 时间:08-21 18:43:32我要评论 chrome表单自动填充后,input文本框的背景会变成偏黄色的,想必大家都会碰到这种情况吧,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性造成的,解决方法如下,感兴趣的朋友可以了解下 chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认

Chrome表单文本框自动填充黄色背景色样式

开发后台管理系统或 网站时,使用谷歌的Chrome浏览器访问网页中表单,文本框背景色自动填充为黄色.这个问题在网络上其实早已经是老生常谈了,今天正巧我要处理这个问 题,把之前查阅的一些资料和自己解决这个问题的方法纪录在此,一是为大家遇到此问题时提供一份资料,二是作为自己的笔记.过多的话就不多说了,下面进入正 题. 一.首先介绍一下我遇到这个问题时文本框的样式情况:  上图为Chrome浏览器为表单中的文本框自动填充黄色背景色的样子, 我自己为文本框加的,获得焦点后,周围有蓝色阴影. <input

video自动填充满父级元素

想要video能自动填充慢父div的大小,只要给video标签加上style="width= 100%; height=100%; object-fit: fill"即可. object-fit语法 object-fit属性的语法非常的简单: object-fit:fill | contain | cover | none | scale-down object-fit取值说明 object-fit主要适合于替换元素,比如:<video>.<object>.&l

纯CSS实现侧边栏/分栏高度自动相等

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=694 一.为何要分栏高度一致? 分栏高度一致的目的是更加美观.举两个例子吧. ① 对于分栏布局,我们或许会用边框(border)进行分隔,就如鄙人博客的分栏: 此时最担心的问题就是高度不一致,尤其是无边框属性的分栏高度超过有边框属性的分栏,结果就会: 虽然我们可以使用min-height或是边框重叠技术进行适当修复,但是

input输入框自动填充黄色背景解决方案

chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式: input:-webkit-autofill { background-color: #FAFFBD; background-image: none; color: #000; } 之前有一种解决方案是禁用autocomplete属性 <input type="text" name=

chrome表单自动填充去掉input黄色背景解决方案

chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式: input:-webkit-autofill { background-color: #FAFFBD; background-image: none; color: #000; } 在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框使用图片背景的时候,原来的圆角和边框

jquery自动填充输入框

1,这是一个比较简单的页面,你可以复制下来就可以使用.<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 自动完成(Autocomplete) - 默认功能</title> <link rel="stylesheet" href="//code.jquery