对于CSS的height:100%,顾名思义,该元素的高度自动填充为其父元素的高度。但该样式有时候会不起作用,Mark down 一下。><

首先,看一下以下CSS代码:

 div {
height: 100%;
}

HTML代码:

 <!doctype html>
<html>
<head></head>
<body>
<p>我的名字叫做甲基苯醌</p>
<div></div>
</body>
</html>

毫无疑问,div的height: 100%完全不起作用(亏得我当时天真地以为div的高度会和p的高度一样,因为body的高度被p撑开了,然后100%就起作用了,呵呵,too young too simple),然后现在回想起来,height:100%不起作用,完全是符合逻辑的。因为body元素在没用设定height的情况下,高度是自适应的,如果div的height:100%起作用的话,那么body的高度必定会被撑开,这时候body的高度 === div的高度 * 2,而div的样式是height:100%,完全不符合我国的科学发展观!!!

要解决这个问题也很简单,添加如下CSS代码:

 htm, body {
height: 100%;
}

以此类推,在元素不是绝对,固定的情况下,要想height:100%起作用,那么该元素的父元素的height一定要设置。

那么,现在的问题来了,为什么父元素设置了height,其子元素的height: 100%就会起作用呢?

很明显,父元素设置了高度后,其高度为一个固定值,就算某个子元素设置了height:100%,其高度也不会增加,而且,浏览器对于元素的overflow的默认值是visible,所以就起作用了。

接着,当子元素设置为绝对定位,即使父元素没有设定高度,该子元素的height:100%也会起作用,因为绝对定位的子元素不会撑开父元素的高度和宽度,符合科学发展观!!!!

做过响应式布局的都知道,我想某个div的高度随屏幕的大小而变化,但我又想让这个div有着一些margin或padding的效果,div绝对定位后,设置height:100%,在设置margin或padding就会有一些乱七八糟的问题。解决方案可用以下代码实现。。。。

 div {
position: absolute;
height: auto;
left:;
top:;
right:;
bottom:;
margin: 20px;
}

最新文章

  1. javascript: 带分组数据的Table表头排序
  2. Memcached 简介、安装和基本使用
  3. nginx/Windows-1.9.3启动脚本
  4. 钩子机制(hook)
  5. [C#HttpHelper]类1.4正式版教程与升级报告
  6. Tomcat 服务器版本的区别以及下载与安装
  7. dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)
  8. MVC项目实践,在三层架构下实现SportsStore-04,实现分页
  9. [转]ASP.NET MVC Jquery Validate 表单验证的多种方式介绍
  10. 在Eclipse中安装ADT
  11. HDU2056JAVA
  12. struts2的初步认识!
  13. 网络基础知识 - HTTP协议
  14. QT | QT MSVC 2015 + VS 2015开发环境配置及GIT设置
  15. Iptabels防火墙和SElinux
  16. 【Go命令教程】8. go test
  17. 20170724wdVBA正则表达式提取答案到Excel
  18. AVD Android模拟器系统
  19. (zxing.net)一维码UPC A的简介、实现与解码
  20. LeetCode OJ:Implement Queue using Stacks(栈实现队列)

热门文章

  1. PHP学习笔记九【数组二】
  2. 利用ajax做的柱状图,线性统计图,饼状图
  3. 重写QSqlTableModel的flags函数实现tableview中某些列不可编辑,某些可以编辑
  4. activiti 部署在oracle多用户下不能自动建表问题的解决!
  5. JSON基础学习
  6. Delphi反汇编内部字符串处理函数不完全列表
  7. ios 开发指南
  8. 【Leetcode】寻找数串中连续最大整数和且最大长度的子串
  9. 【转】关于Activity和Task的设计思路和方法
  10. GIS 相关知识扫盲