CSS 樣式百分比
1.寬高百分比
- 元素寬度/高度百分比是基于父級元素的width/height,不包含padding,border
- 注意:高度百分比一定要求父元素有設置height屬性,只設置 min-height 雖然父元素會有高度,單子元素使用百分比無法繼承
.box {
width: 400px;
height: 200px;
padding: 20px;
background-color: red;
}
.item {
width: 100%;
height: 100%;
background-color: blue;
}
<div class="box">
<div class="item">item元素的width為400px 高度為200px</div>
</div>
- 如果父級元素box-sizing: border-box,子級元素大小的百分比基于父級真正的大小,即除去padding,border之后的大小
.box {
width: 400px;
height: 400px;
padding: 20px;
background-color: red;
box-sizing: border-box;
}
.item {
width: 100%;
height: 200px;
background-color: blue;
}
<div class="box">
<div class="item">父級box的寬度被padding占用40px,item元素的寬度只剩360px</div>
</div>
2.定位元素的寬高百分比
- 子級定位元素的寬100%=父級定位元素width+padding的大小
- 子級定位元素的高100%=父級定位元素height+padding的大小
注意的是:這里繼承的并非是直接的父元素,而是父級定位元素,如果直接父元素沒有定位 ,則繼續查找更上一級的父元素,直到找到有定位的父元素或者body為止
.box {
width: 400px;
height: 200px;
padding: 20px;
background-color: red;
position: relative;
border: 10px solid #ccc;
margin: 50px;
}
.item {
width: 100%;
height: 100%;
background-color: blue;
position: absolute;
top:0;
left:0;
}
<div class="box">
<div class="item">item元素的width=440,item元素的height=240</div>
</div>
如果父元素是怪異盒模型,則父元素的width按實際的來計算
3.padding和margin百分比
子元素的padding和margin都是基于父元素的寬度
#box{
width: 500px;
}
#box > div{
width: 300px;
padding-left: 10%;
margin-left: 10%;
}
<div id="box">
<div></div>
</div>
$(function() {
console.log($('#box>div').css('paddingLeft'));//50px
console.log($('#box>div').css('marginLeft'));//50px
})
4.line-height百分比
line-height設置百分比是基于當前字體大小,默認值為100%
#box{
font-size: 20px;
line-height: 100%;
}
<div id="box"></div>
$(function(){
console.log($('#box').css('lineHeight'));//20px
})

浙公網安備 33010602011771號