效果实现
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>垂直伸缩</title> <style type="text/css"> *{ padding: 0; margin: 0; } body,html{ height: 100%; } .content{ min-width: 810px; min-height: 600px; height: 100%; border: 1px dashed green; } .wrap{ width: 100%; height: 191px; border: 1px solid blue; position: relative; top: 38.2%; } .wrap-content{ width: 100%; height: 191px; background-color: red; position: relative; top: -191px; } </style> </head> <body> <p class="content"> <p class="wrap"> <p class="wrap-content"> </p> </p> </p> </body> </html>
分析
利用的原理:
百分比值的计算方式:实际值 = 具有确定宽高的祖先元素的宽高 * 百分比值。默认情况下,块级元素的宽为100%,高度则是根据内容来计算。所以如果祖先元素没有确定了高度的,那么百分比值也无法确定,它的值会被设置为0。
如果设置了html元素的高度为height: 100%;那么html元素的高度会随着viewport的高度改变。