CSS块元素水平垂直居中的实现技巧
生活随笔
收集整理的這篇文章主要介紹了
CSS块元素水平垂直居中的实现技巧
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
針對之前遇到過的一些特殊樣式的實現,我今天做個總結,目的有二:一是將這些方法記錄下來,以便將來需要用到時查找使用。二為將這些大神們智慧的結晶發揚光大,讓廣大前端程序猿們能夠少走彎路。此貼為更新帖,以后若有好的css樣式技巧,小菜我會不定期更新。一、塊元素水平垂直居中對于一個塊元素的水平垂直居中,水平居中的方式不必多說,一般用margin:auto;等方法即可實現。而對于垂直居中,盡管有vertical-align:middle屬性,但是由于其只適用于table標簽中,而table標簽效果不好控制的特點大家都懂。。。因此,我們一般常用的方法是:將子級元素設定inline-block屬性,并將其行高屬性:line-height的值設定為與父級元素相同的高度。代碼如下:html方面:<body>?? <div?class="big">?? <div?class="small"></div>?? </div>?? </body> ? css方面: .big?? {?? width:500px;?? height:500px;?? border:1px?solid?red;?? position:relative;?? }?? .small{?? width:200px;?/*自己元素寬高可任意設定?*/?? height:200px;?? position:absolute;left:0px;top:0px;rightright:0px;bottombottom:0px;?? margin:auto;?? background-color:#cc9900;?? ?} ? 在上述代碼中,子級元素的寬高是任意設定的。都可以實現此元素在父級元素中水平垂直居中顯示。在父級元素中,我們用了position的relative屬性。在子級元素中,我們將它的position屬性設定為absolute后,將四個方向的值都設定為0px。并且讓他的margin值自適應。從審查元素中我們可以發現,如此設定后,子級元素的margin區域會充滿整個父級元素,并且左右margin值是相等的,上下margin值亦如此。但是這并不符合,當代碼數值有沖突時,優先解析top值及left值的規律。因為究竟是什么原理,小菜也不得而知。。如果有大神知曉,還望不吝賜教。但是這不失為一種好的辦法,希望大家活學活用。二、after偽類清浮動通常我們在對塊元素設浮動以后,需要對其清浮動,以免布局混亂。常見的清浮動方法主要有兩種:1)、在后面的子元素css中寫"clear:both;"。2)在浮動元素的父級元素中寫"overflow:hidden"。現在,我們可以用第三種方法,利用after偽類寫一個浮動屬性,這樣只要有需要清楚浮動的地方,我們就給其父元素加上這樣一個浮動屬性就可以了。代碼如下:
.clearfix:after?? {?? content:"";?? display:table;???/*利用table不允許浮動的屬性來清除浮動。也可以替換成"overflow:hidden;"*/??? clear:both;?? } ? 這種方法有個好處,即可以將其寫入reset中,之后可以多次調用。
總結
以上是生活随笔為你收集整理的CSS块元素水平垂直居中的实现技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: @font-face 用字体画图标
- 下一篇: CSS3中的透明属性opacity的用法