美文网首页
设置控件相对于父控件居中

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

作者: yaya_pangdun | 来源:发表于2016-03-30 21:18 被阅读1068次

css盒子模型

盒子模型

一、display:block

  • block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
  • block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
  • block元素可以设置margin和padding属性。

二、display:inline

  • inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
  • inline元素设置width,height属性无效。
  • inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。

三、display:inline-block

  • 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

行内元素(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;
}

相关文章

网友评论

      本文标题:设置控件相对于父控件居中

      本文链接:https://www.haomeiwen.com/subject/ushelttx.html