css relative设置top为百分比值


前言:

最近在学习HTML、CSS的过程中,想模仿一下百度首页。发现搜索框这一部分与上下其它元素的空白距离可以随着窗口大小变化(效果如下图所示),于是自己研究了一下并记录下来。

效果实现

<!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>
	<div class="content">
		<div class="wrap">
			<div class="wrap-content">
			</div>
		</div>
	</div>
</body>
</html>

 分析

利用的原理:

  1. 百分比值的计算方式:实际值 = 具有确定宽高的祖先元素的宽高 * 百分比值。默认情况下,块级元素的宽为100%,高度则是根据内容来计算。所以如果祖先元素没有确定了高度的,那么百分比值也无法确定,它的值会被设置为0。
  2. 如果设置了html元素的高度为height: 100%;那么html元素的高度会随着viewport的高度改变。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM