蓝狮注册登陆90%不知道的css常识:元素纵向的百分比是相对于宽度而不是高度

我调查了身边五六年经验以上的几个前端同学和同事,尽然发现绝大部分人都不知道,当然,在看到这个文章之前,我也不知道这个,平时虽然都一直在做web前端开发,但真没涉及到这块,或者说涉及到了,也解决了,但是还真没探究过这个问题,你是否躺枪了呢?

这是一个很让人困惑的CSS特征,我之前也谈到过它。我们大家都知道,当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如padding-top,padding-bottom,margin-top,margin-bottom等,当按百分比设定它们时,蓝狮注册登陆依据的也是父容器的宽度,而不是高度。

下面是一个实例演示代码,你可以调整容器的宽度,但你会发现,黄块块的padding-bottom的距离也会随之宽度而变大或变小。

HTML代码 宽度是: 400px 黄块块的Padding bottom是:
10%

CSS代码

body {
font-family: Arial, sans-serif;
padding-top: 30px;
text-align: center;
}

.wrapper {
width: 400px;
margin: 0 auto;
border: solid 1px black;
}

.box {
width: 100px;
height: 100px;
background: gold;
margin-left: auto;
margin-right: auto;
padding-top: 10%;
padding-bottom: 10%;
margin-bottom: 5%;
}

.range {
display: block;
margin: 20px auto;
}

output {
text-align: center;
display: block;
font-weight: bold;
padding-bottom: 20px;
}

output span {
font-weight: normal;
}
上面的代码中,我们对内部子元素声明了3个竖向的距离,蓝狮注册开户都是百分比形式。当移动滑块时,我们的js代码只需修改了容器的宽度。但是,这个这三个属性高度都跟随着变化,可以看出,它们的百分比计算是基于容器的宽度,而不是高度的。

0 Comments
Leave a Reply