剖析height百分比和min-height百分比
height的百分比
当我们给块元素设置百分比高度时,往往没能看到效果.因为百分比的大小是相对其最近的父级元素的高的大小,也就是说,其最近的父级元素应该有一个明确的高度值才能使其百分比高度生效.
<div id="container1">
<div id="wrap">
wrap's height work
</div>
</div>
<br>
<div id="container2">
<div id="wrap2">
wrap2's height doesn't work
</div>
</div>
#container1 {
  height: 100px;
  background-color: red;
}
#wrap {
  height: 50%;
  background-color: green;
}
#container2 {
}
#wrap2 {
/*该height属性无效,因为其父元素没有一个明确的高度*/
height: 50%;
background-color: green;
}
子元素的百分比高度也可以基于父元素的百分比高度,前提是父元素的父元素必须有一个明确的高度:
<div id="#container">
<div id="wrap">
<div id="content">
content's percent height work only when does the wrap'height work
</div>
</div>
<div/>
#container {
  height: 500px;
}
#wrap {
  height: 100%;
}
#content {
  height: 50%;
}
但是,我们应该尽量避免这种多层百分比高度嵌套的风格.
min-height的百分比
再说说min-height吧.设置min-height的元素即使内容的高度很少时也能撑开到min-height设置的高度;当内容的高度大于min-height时就设置为内容的高度.
要使min-height的百分比值生效,其父元素的height值必须为一个固定的高度或者是一个有效的百分比高度.
值得注意的是,父元素设置了有效的min-height但没有设置height属性时,子元素的height和min-height的百分比不会生效.因为设置height和min-height必须基于一个设置了固定高度或者是一个有效百
分比高度的父元素.
<div id="container1">
<div id="wrap">
wrap's min-height work
</div>
</div>
<br>
<div id="container2">
<div id="wrap2">
wrap2's min-height doesn't work
</div>
</div>
        #container1 {
            height: 100px;
            background-color: red;
        }
        #wrap {
            /*该min-height生效,因为其父元素设置了有效height属性*/
            min-height: 50%;
            background-color: green;
        }
        #container2 {
            min-height: 100px;
        }
        #wrap2 {
            /*该min-height无效,因为其父元素没有设置有效的height属性(即使设置了min-height属性)*/
            min-height: 50%;
        } 
总结
height百分比生效基于最近的父元素有明确的高度值
min-height百分比生效基于父元素的height有固定的高度值或有效的百分比高度
剖析height百分比和min-height百分比的更多相关文章
- jquery的height()和javascript的height总结,js获取屏幕高度
		jquery的height()和javascript的height总结,js获取屏幕高度 2014年9月18日 15048次浏览 引子 今天是九一八事变八十三周年,大家勿忘国耻!加油学习!经济和技术等 ... 
- obj.offsetHeight与obj.style.height     $(obj).height()与$(obj).css('height')
		相同:都可以获取obj的高度区别:(1)obj.offsetHeight可以获取外部.内嵌和内联中定义的高,而obj.style.height只能获取内联中定义的高:(2)obj.offsetHeig ... 
- Bug整理——$(window).height()获取到$(document).height()的问题
		想看解决方案不想看无聊乏味的bug解决过程的同学,请直接跳转到页面底部~ 今天在做项目的过程中遇到了一个BUG,项目中需要获取到浏览器客户区的高度以方便做一些适应性调整,代码如下: $(documen ... 
- error:  OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat
		问题原因: You are probably working outside of the image dimensions. Does any of the values you pass to t ... 
- [gym102412D]The Jump from Height of Self-importance to Height of IQ Level
		考虑使用平衡树维护该序列,操作显然可以用fhq treap的分裂+合并来实现 进一步的,问题即变为维护哪些信息来支持push up的操作(并判定是否存在$a_{i}<a_{j}<a_{k} ... 
- css中,设置百分比后,让百分比的宽度包括padding和border来计算
		*{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;} 
- 关于Container With Most Water的求解
		Container With Most Water 哎,最近心情烦躁,想在leetcode找找感觉,就看到了这题. 然而,看了题目半天,硬是没看懂,于是乎就百度了下,怕看到解题方法,就略看了下摘要,以 ... 
- 【bzoj4516】 Sdoi2016—生成魔咒
		http://www.lydsy.com/JudgeOnline/problem.php?id=4516 (题目链接) 题意 依次向字符串末尾加上一个字符,每次求不同子串个数. Solution 如果 ... 
- [BZOJ5073][Lydsy1710月赛]小A的咒语
		bzoj description 你有一个\(A\)串和\(B\)串,你需要判断是否可以在\(A\)串中拆出\(x\)个互不相交的子串,使它们按顺序拼在一起可以组成\(B\)串. \(|A|,|B|\ ... 
- [Luogu3538][POI2012]OKR-A Horrible Poem
		luogu 题意 给出一个由小写英文字母组成的字符串\(S\),再给出\(q\)个询问,要求回答\(S\)某个子串的最短循环节. 如果字符串\(B\)是字符串\(A\)的循环节,那么\(A\)可以由\ ... 
随机推荐
- 【小o地图Excel插件版】计算两点间驾车路径,获取途径道路、驾车距离、耗时等信息
			小o地图Excel插件版:一款基于Excel软件开发的地图软件,提供基于Excel表格进行地理数据挖掘.地理数据分析.地图绘制.地图图表等功能的工具类软件.具有易用.高效.稳定的特点,能够满足地理数据 ... 
- 6.JAVA-链表实例
			1.实现链表的步骤 1).实现Node节点类(用来保存链表中每个节点的数据,以及下一个节点成员) 2).实现LinkList链表类(用来封装Node节点类,和用户实现交互) 3).在LinkList类 ... 
- mybatis_16逆向工程
			简介 简单点说,就是通过数据库中的单表,自动生成java代码. Mybatis官方提供了逆向工程 可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类) 企业开 ... 
- JAVA程序员面试30问(附带答案)
			第一,谈谈final, finally, finalize的区别. 最常被问到.final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能 ... 
- Leetcode 807 Max Increase to Keep City Skyline 不变天际线
			Max Increase to Keep City Skyline In a 2 dimensional array grid, each value grid[i][j] represents th ... 
- JVM 调优参数解释
			典型配置: java -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseP ... 
- Bootstrap中内联单选按钮
			<div class="form-group"> <label class="control-label">性别:</label& ... 
- SAP MM 事务代码MI31之思考
			SAP MM 事务代码MI31之思考 1 - MI01之痛 多年SAP项目实施实践中,笔者之前对于SAP系统里盘点凭证创建(MI01)事务代码里的输入界面很是不爽: 第一,MI01输入了一行数据以后, ... 
- Xamarin 开发过的那些项目
			您可能已经看到类似的统计数据:智能手机用户在手机媒体上花费了89%的时间使用应用程序.或者听说Gartner预测到2017年移动应用程序下载将产生价值770亿美元的收入.很难不考虑这些数字.今天,每个 ... 
- Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法
			通常项目上线前都有一些初始化数据需要导入,在今天博客系统发布前我使用sqlyog工具远程登录服务器的Mysql数据库,执行sql脚本对初始数据进行导入的时候报错: Got a packet bigge ... 
