height百分比以及高度自适应问题

1.  你曾经是否说想要 高度占页面或者占div百分比无效的问题,相信你也搜索过了,就是说 需要 设置父亲父亲一直到祖宗html都要设置百分比,才有效果。

总之一句话:想用百分比设置他的高度,则它的父亲中至少有一个是固定高度,不然的话 全部父亲直到祖宗html(因为html外面就是浏览器,它是有高度的)都必须设置上百分比。 当然要排除那些脱离文档流的div,比如position:absolute,fixed,可以认为他们的父级就是浏览器,所以height百分比总是有效的,因为浏览器的高度是可以直到的啊。

2. 有时候 并不是直接用百分比,可能有部分margin啊,padding啊需要扣除掉,这时候 可以用 height: calc(100% - 1rem); height: calc(50% - 2px); 等等,这种情况有效的条件 也是必须是 第一点说明的,因为它也是用到了height百分比啊。

3. 有时候我们想通过设置百分比, 来维持高宽比例。 我们会想到用 width: 50%; height:50%; 这肯定不对的,因为height是相对容器高度的百分比,而宽是相对容器宽度的百分比。 两个参照物不一样,他们的比例不一定是1:1,而始终是外部容器的比例。因此我们的目的很简单,让他参照物相同。我们知道padding的参照物就是宽度的。那我们就用padding了。 原理很简单, 就是用padding-bottom去代替height。 比如博客园的logo我们想作为背景图,宽高=133/51, 如果我们把背景图的容器设置宽为50%,那么padding-bottom= 0.5*51/133 = 19.172932330827066% ; 这样宽高比例就会固定住了。 知道了这个方法,可以做很多事情。

全部效果在这边,自己研究一下吧:

See the Pen Height百分比 by wenjie (@wenjie) on CodePen.

时间: 2024-11-05 21:43:39

height百分比以及高度自适应问题的相关文章

CSS高度自适应 height:100%;

在初次尝试高度自适应时都会遇到这样的问题: 对象的heith:100%; 并不能直接产生实际效果 为什么呢?之所以没有效果,与浏览器的解析方式有一定关系,查看下面代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>一列布局</title> <style> html, body { margin: 0; padding: 0; wi

jqeury height()获取高度自适应div高度有关问题

问题记录: http://www.myexception.cn/javascript/1169489.html jqeury height()获取高度自适应div高度问题1.div写在页面上,用js给他填充内容之后,然后.height()获取他的高度,不管怎么样取到的高度都是页面上原来没有填充内容之前的div的高度(我没有给div设置高度)2.如果给div设置一个min-height,这样不管div高度怎么变化,取到的高度都是min-height的值 问题:那div高度自适应,有没有办法取得高度

div高度自适应(总结:min-height:100px; height:auto;的用法)

对于div高度自适应问题,我总是用一句话:height:auto来解决. 但是很多时候我们需要的是当div内部有内容时,高度会随着内容的增加和增加,当div中没有内容时,div能够保持一个固定的高度. 具体可以用以下方法解决: height:auto !important; min-height:100px; height:100px; 详细讲解参见:总结:min-height:100px; height:auto;的用法

利用padding-top/padding-bottom百分比,进行占位和高度自适应

在css里面,padding-top,padding-bottom,margin-top,margin-bottom取值为百分比的时候,参照的是父元素的宽度. 比如:父元素宽度是100px, 子元素padding-top:50%,那么padding-top的实际值就是100*50%=50px 这个小小的知识点,其实有很大的用处,应用也很广泛,就是进行提前占位,避免资源加载时候的闪烁,还可以让高度自适应. 举例: 一般来说,想要自适应屏幕大小,我们设置元素的宽度自适应是完全没有问题的,比如希望一行

利用padding-top/padding-bottom百分比OA幸运飞艇平台,进行占位和高度自适应

在css里面,padding-top,padding-bottom,margin-top,margin-bottom取值为百分比的时候,参照的是父元素的宽度. 比如:父元素宽度是100px, 子元素padding-top:50%,那么padding-top的实际值就是100*50%=50px 这个小小的知识点,其实有很大的用处,应用也很广泛,就是进行提前占位,避免资源加载时候的闪烁,还可以让高度自适应. 举例: 一般来说,想要自适应屏幕大小,我们设置元素的宽度自适应是完全没有问题的,比如希望一行

利用height和min-height实现高度自适应

需要实现以下效果: 子元素高度小于窗口高度时,父元素高度为窗口高度: 子元素高度大于窗口高度时,父元素高度自适应,由子元素高度决定. 可以这样实现: 依据DOM结构逐层设置目标元素的所有父元素height="100%",直至根元素html,浏览器在渲染过程中会将窗口的实际高度值传递给html元素,然后再根据DOM结构逐层传递,由于height值不能继承,height="100%"也不能隔代传递,因此必须 逐层设置,此步骤中的height不能用min-height代替

CSS 高度自适应

当html,body的高度为百分比时,<body>的高度根据父元素<html>来计算,<html>的高度根据可视窗口的高度度来计算,所以在上面的示例中 html,body{ height:100%; overflow:hidden;} 表示<html>.<body>的高度为整个内容可视窗口的高度,并且内容超出一屏时隐藏滚动条,而下面又使用了 body{ overflow:auto} 使得内容超出一屏幕时<body>的滚动条能够显示.所

高度自适应的水平垂直居中布局

高度自适应实现水平垂直居中 方法一 CSS3中有transform属性,此属性下有一个translate移动函数,此函数接受两个参数.如果两个参数都为百分比值,此时会基于自身宽度和高定进行移动.此函数移动的机制同position:relative相似. <div class="container">Hello World!</div> .container { position: absolute; top: 50%; left: 50%; transform:

UI_11 自定义UITableViewCell、Cell的高度自适应

UITableViewCell很难满足我们的需求,因此,CustomCell(自定义单元格)至关重要.下面将通过一个例子演示自定义Cell.第二部分演示根据文本内容自适应Label.Cell高度. 第一部分 CustomCell的创建 1.创建DemoTableViewController,继承自UITableViewController,并设置其为window的根视图 AppDelegate.m - (BOOL)application:(UIApplication *)application