居中问题

一 水平居中

   水平居中问题和浏览器的宽度及分辨率密切相关。

1         使用水平居中属性定义水平居中

水平居中的问题一般出现在块元素中。因为内联元素无法定义宽度和高度属性。使用水平居中属性(text-align)可以定义元素的内容水平居中显示。

text-align:center;在IE高级版本和非IE浏览器中只是让元素内内容居中显示,如果要整理居中需要用到margin:auto

IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。

 

<style>

       div{

           text-align:center;

           500px;

           height:200px;

           background:#666666;

           border:4px solid #000000;

       }

       p{

           height:100px;

           200px;

           background:#999999;

           border:1px solid #000000;

       }

</style>

<div>

      <p>这里是需要居中的内容</p>
</div>

2         使用边界属性定义水平居中

定义子元素水平居中,可以将左右两边的边界属定义为auto,用自动补入的边界距离来控制元素的居中显示。

<style>

       div{

           //margin:0 auto;

           400px;

           height:200px;

           border:1px solid red;

       }

       p{

           margin:0 auto;

           height:100px;

           200px;

           border:1px solid blue;

       }

</style>



<div>

      <p>这里是需要居中的内容</p>
</div>

二  垂直居中

 

1         容器和内容大小固定的垂直居中

在定义子元素垂直居中时候,如果父元素和子元素大小确定,则可以使用两个元素的补白、边界或定位属性来定义元素的垂直居中。

 

a—  使用父元素的补白属性定义垂直居中

 <style>

    .div1{

             padding:50px 0 0;

             500px;

             height:150px;

             border:1px solid red;

 

    }

    .div2{

             height:100px;

             200px;

             border:1px solid blue;

    }

    </style>



<div class="div1">

      <div class="div2">这里是需要居中的内容</div>
</div>

b—  使用子元素的边界属性定义垂直居中

  

 <style>

         .div1{

                   500px;

                   height:200px;

                   border:1px solid red;

         }

         .div2{

                   margin:50px 0 0;

                   height:100px;

                   200px;

                   border:1px solid blue;

         }

  </style>



<div class="div1">

      <div class="div2">这里是需要居中的内容</div>
</div>


 

c—   使用子元素的定位属性定义垂直居中

    <style>

    .div1{

             500px;

             height:200px;

             border:1px solid red;

    }

    .div2{

             position:relative;

             top:50px;

             height:100px;

             200px;

             border:1px solid blue;

    }

    </style>

<div class="div1">

      <div class="div2">这里是需要居中的内容</div>

</div>

2         内容大小固定的垂直居中

已知子元素大小,想在任何大小的父元素中,子元素都能够垂直居中显示,可以使用相对定位属性和负的边界属性值实现。

由于子元素高度已确定,可以先使用相对定位将子元素定位在父元素高度的50%(此时子元素的上边线与父元素高度的50%处对齐);再在子元素中定义负的上边界属性,属性值为子元素高度的一半。

<style>

.div1{

           500px;

           height:200px;

           border:1px solid red;

}

.div2{

         position:relative;

           top:50%;

           margin-top:-50px;

           height:100px;

           200px;

           border:1px solid blue;

}

</style>

<div class="div1">

      <div class="div2">这里是需要居中的内容</div>

</div>

3         容器大小固定的垂直居中

当父元素大小固定时候,若子元素为块元素,则很难实现任何内容都能够垂直居中;若子元素为内联元素,则可通过定义行高的方式实现垂直居中。若要精确的控制行高显示,要不断地调整字体大小。

<style>

.div1{

           line-height:200px;

           font-size:179px;

           border:1px solid black;

}

div{

           float:left;

           250px;

           height:200px;

           border:1px solid red;

}

img{

           height:100px;

           vertival-align:middle;

           border:1px solid blue;

}

</style>

<div class="div1">

     <!--  <div class="div2">这里是需要居中的内容</div> -->

     <img src="1.jpg" alt="pic" />

    </div>

    <div><

/div>

4         容器和内容大小均不固定的垂直居中

<style>

  .father{

        position:relative;

        500px;

        height:200px;

        border:4px solid red;

  }

  .in{

        position:absolute;

        top:50%;

  }

  .son{

        position:relative;

        top:-50%;

        200px;

        height:100px;

        border:2px solid blue;

  }

  </style>

<div class="father">

           <div class="in">

                    <div class="son"></div>

           </div>

</div>
宝剑锋从磨砺出,梅花香自苦寒来。
原文地址:https://www.cnblogs.com/haimengqingyuan/p/6001772.html