添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我们在设计页面的时候,经常要把DIV居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示。我们传统解决的办法是用纯CSS来让DIV居中。在本文中,我将给大家讲述如何用CSS和 jQuery 两种方法让DIV水平和垂直居中。

CSS让DIV水平居中

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

让一个DIV水平居中,直接用CSS就可以做到。只要设置了DIV的宽度,然后使用margin设置边距0 auto,CSS自动算出左右边距,使得DIV居中。

.mydiv{   
    margin:0 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 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就可以实现水平和垂直居中,而且兼容各浏览器,这个方法在很多的弹出层效果中应用。

我们在设计页面的时候,经常要把DIV显示,而且是相对页面窗口水平和垂直方向居显示,如让登录窗口居显示。我们传统解决的办法是用纯CSS来让DIV。在本文,我将给大家讲述如何用CSS和jQuery两种方法让DIV水平垂直居中。 CSS让DIV水平居中 说明,本文所指的DIV包括HTML页面所有的元素。 让一个DIV水平居中,直接用CSS就可以做到。只要设置了DIV的宽度,... 主要的样式定义如下,这也是最简单的方法: body {TEXT-ALIGN: center;} #center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; } 说明: 首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居;对于IE这样设定就已经可以了。但在mozilla不能居。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ” 需要说明的是,如果你想用这个方法使整个页面要居,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的 <div id=main> <div id=login> djshdk awjdsd sede sfcdf vdj sh dkaw jds dse desf cdf vd jsh dkawjd sds ede sfcdfv vd jsh dkawjd sds ede sfcdfv. </div> </div> #main{ position: relative; //在父元素使用相对定位 width: 200px; height: <metaname="viewport"content="width=device-width,initial-scale=1.0"> <title>水平垂直居中body</title> <linkrel="stylesheet"type=... 水平居中div标签在整个body里居的方法用CSS控制即可,body{text-align:center;} .box{margin: 0 auto;} 类box就是在整个body水平居中 垂直居中divbody里的垂直居中用CSS控制都不是很有效果,所以用js来控制比较管用,代码如下(jQuery): function SetPostion(){         var whe 一,水平居中布局 1、行内元素水平居中 父级元素设置text-align: center ——>实现在块级元素内部的行内元素(inline/inline-block/inline-flex/inline-table)水平居中 <div class="parent"> <div class="child">dome</div> </div> <style> .parent{ text-align: center 这里要有两层或者给body设置高度100vh,然后给元素设置绝对定位,并且left、right、top、bottom全为0,margin:auto就能实现div水平垂直居中了。将父盒子设置为table-cell元素,可以使用text-align:center和vertical-align:middle实现水平垂直居中。left、top各50%,margin-left、margin-top是宽高的一半并且使用负数。使用弹性布局居要给父元素加上高度才会垂直居中。子元素设置为inline-block。 css里面让body内容居的方法:1、使用margin设置边距“0 auto”让HTML页面所有的元素水平居中;2、将div距离页面窗口左边框和上边框的距离设置为“50%”;3、通过jQuery实现水平垂直居中。本教程操作环境:Windows7系统、HTML5&&CSS3版,DELL G3电脑。我们在设计页面的时候,经常要把DIV显示,而且是相对页面窗口水平和垂直方向居... 如何让DIV相对于body水平垂直居中 我们在设计页面的时候,经常要把DIV显示,而且是相对页面窗口水平和垂直方向居显示,如让登录窗口居显示。我们传统解决的办法是用纯CSS来让DIV。在本文,我将给大家讲述如何用CSS和jQuery两种方法让DIV水平垂直居中。... 原始代码:center.html:Centercenter.css:body {background-color: #6ed0ff;}.father {background-color: #be33ec;border-radius: 20px;box-shadow: 0 0 15px rgb(0, 0, 0);margin: 100px auto;width: 300px;height: 300p...