利用CSS实现居中对齐

1. 文本居中

  首先编写一个简单的html代码,设置一个类名为parentDiv的div对象。html代码如下:

<div class="parentDiv">
 这里随意填写~... 
</div>

1.1 实现文字水平居中(使用text-align)

  对div.parentDiv设置text-align: center;来实现。CSS代码如下:

[css]

.parentDiv {
     width:200px;
     height:100px;
     border: 1px solid #ececec;
     text-align:center;  /*水平居中*/
}

 有些时候,你会发现即使使用了text-align: center;属性,但是仍然没有起到居中的作用。原因就在于div标签本身没有定义自己居中的属性,而且这样做对布局是非常不科学的方法。正确的设置方法其实很简单就是给.parentDiv添加以下属性:margin-left: auto;margin-right: auto;即可。具体可看2.1。

注:在父级元素定义text-align: center;属性的意思就是在父级元素内的内容居中;对于IE浏览器这样设置就没问题了,但在Mozilla浏览器中却不行。解决办法就是:在子元素定义设定时,再加上margin-left: auto;及margin-right: auto;就没问题了。需要说明的是如果想用这个方法使整个页面要居中,建议不要套在一个div里,可以依次拆出多个div,只要在每个拆出的div里定义margin-left: auto;及margin-right: auto;就行。

1.2 单行文本垂直居中(使用line-height

  文字在层中垂直居中使用vertical-align属性是做不到的,所以这里有个比较巧的方法就是:设置height的高度与line-height的高度相同。CSS代码如下:

[css]

.parentDiv {
    width:200px;
    height:100px;
    border: 1px solid #ececec;
    text-align:center; /* 水平居中 */
    line-height: 100px; /* line-height = height */
}

1.3 文本垂直居中(使用vertical-align)

  可以使用vertical-align实现垂直居中,不过vertical-align仅适用于内联元素和table-cell元素,因此之前需要转化。

[css]

.outerBox{
      width:200px;
      height:100px;
      border: 1px solid #ececec;
      text-align:center; /* 水平居中 */
      display:table-cell; /*转化成table-cell元素*/
      vertical-align:middle; /*垂直居中对齐,vertical-align适用于内联及table-cell元素*/ 
}

1.4 图片垂直居中(使用background-position)

   这里指的是背景方法,在div.parentDiv对象中使用background-position属性。CSS代码如下

background: url(xxx.jpg) #ffffff no-repeat center;

2. div居中

  首先编写一个简单的html代码,设置一个父div类名为parentDiv,再设置一个子div类名为childDiv。html代码如下:

<div class="parentDiv">
   <div class="childDiv"></div>
</div>
[css]
 
* {
    -webkit-box-sizing: border-box; /*Safari*/
    -moz-box-sizing: border-box; /*Firefox*/
    box-sizing: border-box;
}
  
.parentDiv {
    width:400px;
    height: 100px;
    background-color: #00ff00;
    margin: 20px;
}
 
.childDiv {
    width: 200px;
    height:50px;
    background-color: #ff0000;
}

2.1 水平居中(使用margin:auto)

  当div.childDiv对象拥有固定宽度时,设置水平方向margin为auto,可以实现水平居中。

2.2 实现水平居中(使用text-align:center)

  如果给子盒子div.childDiv设置display: inline-block不影响整体布局时,可以将子盒子转化为inline-block,对父盒子设置text-align:center实现居中对齐。

2.3 table-cell元素居中

  将父盒子设置为table-cell元素,可以使用text-align: center;和vertical-align: middle;实现水平、垂直居中。比较好的解决方案是利用三层结构模拟父子结构。

2.7 Flexbox居中

  使用弹性盒模型(flexbox)实现居中。CSS代码:

[css]

/*flexbox实现居中*/
.flexBox {
    display: -webkit-box; /*Safari*/
    display: -moz-box; /*Firefox*/
    display: -ms-flexbox; /*IE*/
    display: -webkit-flex; /*Chrome*/
    display: flex;
    -webkit-box-align: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -moz-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值