不定宽元素水平居中

1.父层:改变display为inline类型(设置为 行内元素 显示),然后子层:使用text_align:center来实现居中。

存在问题:将块元素的display设置为inline类型,少了一些功能,比如:设定长度值。

<head>
  <title> new document </title>
  <style>
  .div1{
  text-align:center;
  }
  .div1 ul{
  display:inline;
  }
  .div1 li{
  display:inline;
  }
  </style>
 </head>

 <body>
 <div class="div1">
  <ul>
  <li><a href="#">x1</a></li>
  <li><a href="#">x2</a></li>
  <li><a href="#">x3</a></li>
  </ul>
  </div>
 </body>

2.块级元素水平居中不能使用text-align:center,一种常用的做法,详见:

https://blog.csdn.net/gbxiaohuozi/article/details/51400356

===================================================================================================================================

慕课网上的方法如下:

(1)加入table标签

<div>将我所在的div水平居中
 </div>

加入table标签后:

 <table>
 <tbody>
 <tr><td>
  <div>将我所在的div水平居中
  </div>
  </td></tr>
  </tbody>
  </table>

(2)设置为内联元素通过父类来修改(在初始代码中添加类来实现居中)

<div class="div1">将我所在div容器水平居中
</div>
<!--CSS样式如下--!>
<style>
.div1{
text-align:center;
}
</style>

(3)通过给父类元素设置为float,left:50%,position:relative;子类元素设置left:-50,position:relative。将ul层的最左端与原div中线对其,再将子类li层的中线移动到ul层中线处,从而实现li层居中。

<style>
.container{
float:left;
border:2px red solid;
position:relative;
left:50%;
}
.container ul{
list-style:none;
border:2px blue solid;
margin:0;
padding:0;
position:relative;
left:-50%;
}
.container li{
display:inline;
margin-right:8px;
border:2px green solid;
}
</style>

注:display:inline,允许它的前后存在其它的内联元素同行显示。详见:https://blog.csdn.net/molu_chase/article/details/52175985

<div class="container">
<ul>
<li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>

 

  

原文地址:https://www.cnblogs.com/alatar16/p/9602660.html