div和css:行內元素和塊元素的水平和垂直居中


行內元素:

水平居中:text-align:center ul水平居中:加
display:table; margin:0 auto;
此元素會作為塊級表格來顯示(類似 <table>),表格前后帶有換行符。

垂直居中:line-height:父元素的height

塊元素:

水平居中:

①margin:0 auto

例:
.father{ width:200px; height:200px; background-color:red; } .son{ width:100px; height:100px; background-color:black; margin:0 auto; }

0指上下外邊距為0,auto指左右外邊距自適應,此時水平居中。(該方法不適用於垂直居中) 這種方法不適用於通屏,即若子元素溢出,則在父元素中不居中

②position:relative/absolute/fixed

relative:相對定位,保留初始位置(即不浮動)

特點:1.不影響元素本身特性 2.不使元素脫離文檔流(不浮動) 3.可以不設定偏移量,此時位置不會發生變化 4.該元素是相對於自己本身位置的偏移量。

absolute:絕對定位,不保留初始位置

特點:1.元素完全脫離文檔流(浮動) 2.使內聯元素支持寬和高 3.讓塊標簽內容撐開寬高 4.相對父元素偏移,且逐層查找,直到document,若父元素沒有position:relative屬性,則繼續向上找,直到document,即相對於瀏覽器左上角。 5.提升層級,即蓋在其他未用該屬性的元素上,或者在他之前使用該屬性的元素上。(優先級可以用z-index設置,值越大,優先級越高,但是若父元素,即使用position:relative的元素也被覆蓋,則沒有用)

fixed:相對於視窗定位,即不管滑輪向下還是向上拉,該元素位置始終不變。(IE6以下不兼容)

<style> .test{ width:200px; height:100px; background-color:yellow; } .test1{ width:200px; height:100px; background-color:green; position:relative; left:50%; margin-left:-100px; <!--子元素的height的一半--> } .test2{ width:200px; height:100px; background-color:blue; } .test3{ width:200px; height:100px; background-color:red; } </style> </head> <body> <div class="test"> </div> <div class="test1"> </div> <div class="test2"> </div> <div class="test3"> </div>

(插不了圖片。。。我口述吧。。) 就是保留了圖片本來的的位置,而圖片移動到了屏幕中央的位置。 若將上面test2的position改為absolute,則浮動,圖片2本來的位置被test3覆蓋 用上面position,left,margin-left三個屬性也可以使div水平居中(垂直居中將left改為top即可) 這種方法適用於通屏,即若子元素溢出,則在父元素中也居中。

優點:不用知道父元素的width

垂直居中:

①設置父元素的padding

缺點:需要知道父元素的width值

②上述水平方法第二個,將left改為top

③絕對居中(即水平,垂直都居中)

實現方法:父元素相對定位,子元素絕對定位,在子元素中添加屬性

{ margin:auto; top:0; left:0; bottom:0; right:0; }

該方法不浮動,但也存在不通屏的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM