針對之前遇到過的一些特殊樣式的實現,我今天做個總結,目的有二:一是將這些方法記錄下來,以便將來需要用到時查找使用。二為將這些大神們智慧的結晶發揚光大,讓廣大前端程序猿們能夠少走彎路。此貼為更新帖,以后若有好的css樣式技巧,小哥我會不定期更新。
一、塊元素水平垂直居中(特別鳴謝:鑫生活。鑫哥出品必屬精品!小弟膜拜)
對于一個塊元素的水平垂直居中,水平居中的方式不必多說,一般用margin:auto;等方法即可實現。而對于垂直居中,盡管有vertical-align:middle屬性,但是由于其只適用于table標簽中,而table標簽效果不好控制的特點大家都懂。。。因此,我們一般常用的方法是:將子級元素設定inline-block屬性,并將其行高屬性:line-height的值設定為與父級元素相同的高度。在這里,我想推廣一種方法,源自“鑫生活”
http://www.zhangxinxu.com/wordpress/2013/11/margin-auto-absolute-%E7%BB%9D%E5%AF%B9%E5%AE%9A%E4%BD%8D-%E6%B0%B4%E5%B9%B3%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD/
代碼如下:
html方面:
css方面:
在上述代碼中,子級元素的寬高是任意設定的。都可以實現此元素在父級元素中水平垂直居中顯示。在父級元素中,我們用了position的relative屬性。在子級元素中,我們將它的position屬性設定為absolute后,將四個方向的值都設定為0px。并且讓他的margin值自適應。從審查元素中我們可以發現,如此設定后,子級元素的margin區域會充滿整個父級元素,并且左右margin值是相等的,上下margin值亦如此。但是這并不符合,當代碼數值有沖突時,優先解析top值及left值的規律。因為究竟是什么原理,小ge也不得而知。。如果有大神知曉,還望不吝賜教。但是這不失為一種好的辦法,希望大家活學活用。
新聞熱點
疑難解答