您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么讓DIV水平和垂直居中,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
我們?cè)谠O(shè)計(jì)頁(yè)面的時(shí)候,經(jīng)常要把DIV居中顯示,而且是相對(duì)頁(yè)面窗口水平和垂直方向居中顯示,如讓登錄窗口居中顯示。我們傳統(tǒng)解決的辦法是用純CSS來讓DIV居中。我將給大家講述如何用CSS和jQuery兩種方法讓DIV水平和垂直居中。
說明,本文中所指的DIV包括HTML頁(yè)面中所有的元素。
讓一個(gè)DIV水平居中,直接用CSS就可以做到。只要設(shè)置了DIV的寬度,然后使用margin設(shè)置邊距0 auto,CSS自動(dòng)算出左右邊距,使得DIV居中。
.myp{
margin:0 auto;
width:300px;
height:200px;
}
但是如果要使DIV垂直方向也居中,恐怕CSS需要修改了。
要讓DIV水平和垂直居中,必需知道該DIV得寬度和高度,然后設(shè)置位置為絕對(duì)位置,距離頁(yè)面窗口左邊框和上邊框的距離設(shè)置為50%,這個(gè)50%就是指頁(yè)面窗口的寬度和高度的50%,最后將該DIV分別左移和上移,左移和上移的大小就是該DIV寬度和高度的一半。
.myp{
width:300px;
height:200px;
position:absolute;
left:50%;
top:50%;
margin:-100px 0 0 -150px
}
該方法使用普遍,但是前提是必需設(shè)置DIV的寬度和高度。如果當(dāng)頁(yè)面DIV寬度和高度是動(dòng)態(tài)的,比方說需要彈出一個(gè)DIV層并且要居中顯示,DIV的內(nèi)容是動(dòng)態(tài)的,所以寬度和高度也是動(dòng)態(tài)的,這時(shí)需要用jQuery可以解決居中。
jQuery實(shí)現(xiàn)水平和垂直居中的原理就是通過jQuery設(shè)置DIV的CSS,獲取DIV的左、上的邊距偏移量,邊距偏移量的算法就是用頁(yè)面窗口的寬度減去該DIV得寬度,得到的值再除以2即左偏移量,右偏移量算法相同。注意DIV的CSS設(shè)置要在resize()方法中完成,就是每次改變窗口大小時(shí),都要執(zhí)行設(shè)置DIV的CSS,代碼如下:
$(window).resize(function(){
$(".myp").css({
position: "absolute",
left: ($(window).width() - $(".myp").outerWidth())/2,
top: ($(window).height() - $(".myp").outerHeight())/2
});
});
此外在頁(yè)面載入時(shí),就需要調(diào)用resize()。
$(function(){
$(window).resize();
});
此方法的好處就是不需要知道DIV的具體寬度和高度大小,直接用jQuery就可以實(shí)現(xiàn)水平和垂直居中,而且兼容各瀏覽器,這個(gè)方法在很多的彈出層效果中應(yīng)用。
關(guān)于怎么讓DIV水平和垂直居中就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。