css中的幾個小tip(一)

本文轉載於:猿2048網站css中的幾個小tip(一)php

原博:http://www.webhek.com/post/7-tips-web-front-developer-must-know__trashed.htmlcss

1.元素的margin-top、margin-bottom及padding-top、padding-bottom使用百分比做爲單位時,其是相對父元素的寬度width,而不是咱們想象的高度height;如圖html

<style type="text/css"> .parent{ outline: 1px solid orange; width: 200px; height: 300px; padding: 10px; margin: 10px;
        } .child{ outline: 1px solid purple; width: 200px; height: 80px; padding-top: 10%;      /*20px = 父容器的width值200px * 10% */ padding-bottom: 5%;     /*10px = 200px * 5% */ margin-top: 20%;      /*40px = 200px * 20%*/ margin-bottom: 15%;    /*30px = 200px * 15%*/
        } <body> <div class="parent"> <div class="child"></div> </div> </body>

子盒子參數以下:web

 

2.含有定位屬性的元素,其top、bottom單位爲百分比時,該百分比是相對父元素的高度height。left、right則是相對父元素的寬度width.佈局

.parent{
            outline: 1px solid orange;
            width: 200px;
            height: 300px;
            padding: 0px;
            margin: 0px;
            position: relative;
        }
        .child{
            outline: 1px solid purple;
            width: 200px;
            height: 80px;
            position: absolute;
            top: 5%;  /* 15px = 300px * 5% 上邊框離父盒子上邊框15px的距離*/
            left: 20%;  /*  40px = 200px * 20% 左邊框離父盒子左邊框40px的距離  
                   也就是子盒子左上角的座標爲x=15,y=40(父盒子左上角爲原點) */ }

3.邊框寬度不能用百分比表示post

4.width:100%flex

4.1當父容器裏有絕對定位的子元素時,子元素設置width:100%實際上指的是相對於父容器的padding+content的寬度。網站

r如圖:spa

 1 <style type="text/css">
 2     .parent{
 3         outline: 1px solid orange;
 4         width: 200px;
 5         height: 300px;
 6         padding: 10px;
 7         margin: 10px;
 8         position: relative;
 9     }
10     .child{
11         outline: 1px solid purple;
12         width: 100%;  /* width = 220px = 父容器的padding+content*/
13         height: 80px;
14         position: absolute;
15         top: 0;
16         left: 0;
17     }
18 </style>

 

 

4.2 當子元素是非絕對定位的元素時(能夠是相對定位),或者若是都沒有定位,width:100%纔是指子元素的 content ,其等於父元素的 content寬度。code

.parent{
    outline: 1px solid orange;
    width: 200px;
    height: 300px;
    padding: 10px;
    margin: 10px;
}
.child{
    outline: 1px solid purple;
    width: 100%;  /* width:200px = 父盒子的content*/
    height: 80px;
}
.parent{
    outline: 1px solid orange;
    width: 200px;
    height: 300px;
    padding: 10px;
    margin: 10px;
    position: relative;
}
.child{
    outline: 1px solid purple;
    width: 100%; 
    height: 80px;
    position: relative;
}

5. 設爲flex佈局後,子元素的float、clear和vertical-align屬性將失效

6. vertical-align直接使用將失效,要搭配display:inline-block使用;或者將line-heigth設置的和height同樣高,文字也能夠垂直居中。

相關文章
相關標籤/搜索