如何讓DIV相對於body水平和垂直居中


我們在設計頁面的時候,經常要把DIV居中顯示,而且是相對頁面窗口水平和垂直方向居中顯示,如讓登錄窗口居中顯示。我們傳統解決的辦法是用純CSS來讓DIV居中。在本文中,我將給大家講述如何用CSS和jQuery兩種方法讓DIV水平和垂直居中。

CSS讓DIV水平居中

說明,本文中所指的DIV包括HTML頁面中所有的元素。

讓一個DIV水平居中,直接用CSS就可以做到。只要設置了DIV的寬度,然后使用margin設置邊距0 auto,CSS自動算出左右邊距,使得DIV居中。

.mydiv{        margin:auto;        width:300px;        height:200px;    }   

但是如果要使DIV垂直方向也居中,恐怕CSS需要修改了。

CSS實現水平和垂直居中

要讓DIV水平和垂直居中,必需知道該DIV得寬度和高度,然后設置位置為絕對位置,距離頁面窗口左邊框和上邊框的距離設置為50%,這個50%就是指頁面窗口的寬度和高度的50%,最后將該DIV分別左移和上移,左移和上移的大小就是該DIV寬度和高度的一半。

.mydiv{     width:300px;      height:200px;      position:absolute;      left:50%;      top:50%;      margin:-100px 0 -150px  }  

該方法使用普遍,但是前提是必需設置DIV的寬度和高度。如果當頁面DIV寬度和高度是動態的,比方說需要彈出一個DIV層並且要居中顯示,DIV的內容是動態的,所以寬度和高度也是動態的,這時需要用jQuery可以解決居中。

jQuery實現水平和垂直居中

jQuery實現水平和垂直居中的原理就是通過jQuery設置DIV的CSS,獲取DIV的左、上的邊距偏移量,邊距偏移量的算法就是用頁面窗口的寬度減去該DIV得寬度,得到的值再除以2即左偏移量,右偏移量算法相同。注意DIV的CSS設置要在resize()方法中完成,就是每次改變窗口大小時,都要執行設置DIV的CSS,代碼如下:

$(window).resize(function(){      $(".mydiv").css({          position: "absolute",          left: ($(window).width() - $(".mydiv").outerWidth())/2,          top: ($(window).height() - $(".mydiv").outerHeight())/2      });         });  

此外在頁面載入時,就需要調用resize()。

$(function(){      $(window).resize();  });  

此方法的好處就是不需要知道DIV的具體寬度和高度大小,直接用jQuery就可以實現水平和垂直居中,而且兼容各瀏覽器,這個方法在很多的彈出層效果中應用。

 ps:如果該div的寬度大於頁面的寬度,那么需要對body添加一個css

<style type="TEXT/CSS">
body{width:100%; overflow:hidden}
</style>

 

注:本文來源於helloweba.com,原文地址為http://www.helloweba.com/view-blog-93.html


免責聲明!

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



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