设置控件相对于父控件居中

2016-03-30  本文已影响1068人  yaya_pangdun

css盒子模型

盒子模型

一、display:block

二、display:inline

三、display:inline-block


行内元素(display:inline)

只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可:
    text-align: center
适用元素:文字,链接,及其其它inline或者inline-*类型元素
(inline-block,inline-table,inline-flex)

块状元素(display:block)

#块级元素一个占一行
设置
.center {
  margin-left :auto;
  margin-right :auto;
}
需要居中的块级元素必须有固定的宽度,否则占据整个宽度

多个块级元素居中

#设置为inline-block
.center{
  display:inline-block;
}
#设置父节点: text-align: center;
body{
  text-align:center;
}

<div class="center">水平居中的块状元素</div>
<div class="center">水平居中的块状元素</div>

其他方法

使用flexbox布局:
  只需要把待处理的块状元素的父元素添加属性display:flex及justify-content:center即可

单行行内元素垂直居中

#将原来的inline元素设置为
height = line-height = 父元素的高度
a {
  height :200px;
  line-height :200px;
}

多行的行内元素

#设置父元素属性:
display:table-cell;
vertical-align: center;

已知高度的块状元素

.item {
  top: 50%;
  margin-top:-50px; //设置为高度的一半
  position:absolute
  padding: 0;
}

未知高度的块级元素

.item{
  top: 50%;
  position: absolute;
  transform: translateY(-50%); /* 这里我们使用css3的transform来达到类似效果 */
}

水平垂直居中

.item{
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -75px; //控件高的一半
  margin-left: -75px;
}

未知宽度和高度的控件水平垂直居中

.item{
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
}

使用flex布局实现水平垂直居中

.item{
  background: #222;
  color: #FFF;
  width: 100px;
  height: 100px;
}


.parent{
  display: flex;
  justify-content:center;
  align-items: center;
  
  /* 注意这里需要设置高度来查看垂直居中效果 */
  background: #AAA;
  height: 300px;
}
上一篇下一篇

猜你喜欢

热点阅读