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
})
posted @ 2019-09-21 23:08  ---空白---  阅读(1219)  评论(0编辑  收藏  举报