<section>
<h2>123</h2>
</section>
section {
overflow: hidden;
height: 300px;
width: 100%;
position: relative;
background: #ccc;
}
h2 {
margin-top: 10%;
margin-left: 10%;
padding-top: 10%;
padding-left: 10%;
}
我才知道margin,padding的百分比竟然是相对与父元素的宽度来进行计算了,这样就很不方便了,那么有谁知道,如何设置padding,margin 才能让它相对于父元素的宽和高分别计算呢?
http://codepen.io/snakebang/pen/BzREZr
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
假设inner把padding–top设为60%,那它的高度就等于上内边距,等于自身宽度的60%(因为它是block,宽度和父级宽度相等),position设为relative。
把section元素的position设为absolute,宽高都是100%。那么它内部的元素内边距和外边距的百分比虽然相对于父级section的宽度,但因为section宽高比已知,可以换算出来。
假设我们要实现的h2元素margin-left是父级宽度的10%,margin-top是父级高度的10%。
代码如下:
结果:
中间那块区域(64个格子组成的长方形)的margin-top是高度的10%,margin-left是宽度的10%;
如果是百分比的话,你的问题无解
1。建议采取响应式方式处理,通过
@media处理,小于或大于一定宽度的,设置一个固定值,超过另一个宽度的,再设置另一个固定值2。通过js处理,
resize后js计算padding,margin的值,并设置为行间样式3。
rem,相对于根节点的字体大小来设置padding,margin的值