首頁 >web前端 >css教學 >如何css屬性實作各種居中填滿方式程式碼詳解

如何css屬性實作各種居中填滿方式程式碼詳解

伊谢尔伦
伊谢尔伦原創
2017-07-19 15:29:151964瀏覽

首先是水平居中,最簡單的辦法當然就是

margin:0 auto;

也就是將margin-left和margin-right屬性設定為auto,從而達到水平居中的效果。

那麼其他的辦法呢?

line-height

首先介紹文字的水平居中方法:

<p class="wrap">刘放</p>

利用line-height設為height的一樣即可:

.wrap{
  line-height: 200px;/*垂直居中关键*/
  text-align:center;
   height: 200px;
  font-size: 36px;
  background-color: #ccc;
}

效果如下:

padding填充

#利用padding和background-clip配合實作p的水平垂直居中:

<p class="parent">  
<p class="children">
</p>
</p>

透過backgroun-clip設定為content-box,將背景裁切到內容區外沿,再利用padding設為外p減去內p的差的一半,來實現:

.parent{
 margin:0 auto;
 width:200px;
 height:200px;
 background-color:red;
}
.children {
 width: 100px;
 height: 100px;
 padding: 50px;
 background-color: black;
 background-clip:content-box;/*居中的关键*/

效果如下:

margin填滿

#接下來介紹margin填滿的方式來實現水平垂直居中。
首先我們還是定義父子p:

<p class="parent">
  <p class="children"></p>
</p>

這裡我們利用將子p的margin-top設定為父p高度減去子p高度的一半,然後再透過overflow設定為hidden來觸發父p的BFC,LESS程式碼如下:

@parentWidth:200px;
@childrenWidth:50px;
.parent {
 margin:0 auto;
 height:@parentWidth;
 width:@parentWidth;
 background: red;
 overflow:hidden;/*触发BFC*/
}
.children {
 height:@childrenWidth;
 width:@childrenWidth;
 margin-left:auto;
 margin-right:auto;
 margin-top: (@parentWidth - @childrenWidth) / 2;
 background:black;
}

最後得到居中效果如下:

absolute定位

利用position:absolute搭配top,left 50%,再將margin設為負值也可以對p進行水平垂直居中,首先還是需要定義父子p:

<p class="parent">
  <p class="children"></p>
</p>

然後設定對應的css:

.parent {
 position:relative;
 margin:0 auto;
 width:200px;
 height:200px;
 background-color:red;
}
.children {
 position:absolute; 
 left:50%; 
 top:50%; 
 margin:-25px 0 0 -25px ;
 height:50px;
 width:50px;
 background-color: black;
}

其中的margin中的值為此p寬度的一半,最後效果圖:

text-align居中

##眾所周知,text-align可以使得一個p中的內容水平居中。但是如果要將該p中的子p置中呢?可以將子p的display設為inline-block。

.parent {
 text-align:center;
 margin:0 auto;
 width:200px;
 height:200px;
 background:red;
}
.children {
 positiona;absolute;
 margin-top:75px;
 width:50px;
 height:50px;
 background: black;
 display:inline-block;/*使其父元素text-align生效*/
}

flex居中

最後來介紹CSS3中的display:flex來實現的水平垂直居中的方法。

<p class="parent">
  <p class="children">我是通过flex的水平垂直居中噢!</p>
</p>
html,body{
 width: 100%;
 height: 200px;
}
.parent {
 display:flex;
 align-items: center;/*垂直居中*/
 justify-content: center;/*水平居中*/
 width:100%;
 height:100%;
 background-color:red;
}
.children {
 background-color:blue;
}

效果如下:

以上是如何css屬性實作各種居中填滿方式程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn