使用CSS垂直居中元素

时间:2016-11-27 23:02:53

标签: html css

我想在我的div中垂直居中内容。

HTML:

<div id="header">
        <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1" id="logo-img-div"><img id="logo-img" src="logo.png"></div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3" id="logo-text">Text</div>
    </div>

CSS:

    @media only screen and (min-width: 768px) {
        .col-sm-1 {width: 8.33%; float: left;}
        .col-sm-2 {width: 16.66%; float: left;}
        .col-sm-3 {width: 25%; float: left;}
        .col-sm-4 {width: 33.33%; float: left;}
        .col-sm-5 {width: 41.66%; float: left;}
        .col-sm-6 {width: 50%; float: left;}
        .col-sm-7 {width: 58.33%; float: left;}
        .col-sm-8 {width: 66.66%; float: left;}
        .col-sm-9 {width: 75%; float: left;}
        .col-sm-10 {width: 83.33%; float: left;}
        .col-sm-11 {width: 91.66%; float: left;}
        .col-sm-12 {width: 100%; float: left;}


    }

* {
    color: #2c2c2c;
    height: 100%;
    width: 100%;
    margin: 0 !important;
    font-family: 'Raleway';
}

#header {
    height: 10%;
    background-color: #2c2c2c;
    color: #c4c3c3;
    font-family: 'title';   
}

#logo-img {
    height: 80%;
    width: auto;

}

#logo-img-div {

}


#logo-text {
    color: #c4c3c3;

}

我想将logo-img-div和徽标文本的内容居中,但请将这两个div保留在标题内容的左侧。我发现了许多类似的问题,但没有一个解决方案有效。

3 个答案:

答案 0 :(得分:0)

您正在使用*将属性应用于所有选择器。 http://www.w3schools.com/cssref/css_selectors.asp 由于边距为0,因此无法对齐div元素。

通常情况下,您可以使用 margin-left或right并移动一些px或者em ...

答案 1 :(得分:0)

尝试删除(*)元素的边距。这不允许您对齐它们,因为边距是包括身体本身在内的所有其他元素之间的距离。或者你可以只为左右两边留一个余量:

* {
  color: #2c2c2c;
  height: 100%;
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
  font-family: 'Raleway';
}

如果您尝试垂直居中您的div,其ID为&#39;标题&#39;试试这个:

#header{
  position: relative;
  top: 40%;
  height:10%
  background-color: #2c2c2c;
  color: #c4c3c3;
  font-family: 'title'; 
}

尝试以%为单位查找元素的高度,以便从50%的度量中减去它们。这样可以使您的元素完美居中。 在这种情况下,50%将转换为10%,因为高度设置为10%。

答案 2 :(得分:0)

使用flex来对齐子项。哦,您可能不希望在所有内容上将高度和宽度设置为100%。

&#13;
&#13;
@media only screen and (min-width: 768px) {
  .col-sm-1 {width: 8.33%; float: left;}
  .col-sm-2 {width: 16.66%; float: left;}
  .col-sm-3 {width: 25%; float: left;}
  .col-sm-4 {width: 33.33%; float: left;}
  .col-sm-5 {width: 41.66%; float: left;}
  .col-sm-6 {width: 50%; float: left;}
  .col-sm-7 {width: 58.33%; float: left;}
  .col-sm-8 {width: 66.66%; float: left;}
  .col-sm-9 {width: 75%; float: left;}
  .col-sm-10 {width: 83.33%; float: left;}
  .col-sm-11 {width: 91.66%; float: left;}
  .col-sm-12 {width: 100%; float: left;}
}

* {
  color: #2c2c2c;
  margin: 0;
  font-family: 'Raleway';
}

html, body {
  height: 100%;
}

#header {
  height: 10%;
  background-color: #2c2c2c;
  color: #c4c3c3;
  font-family: 'title';
  display: flex;
  align-items: center;
}

#logo-img {
  height: 80%;
  width: auto;
}

#logo-text {
  color: white;
}
&#13;
<div id="header">
  <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1" id="logo-img-div"><img id="logo-img" src="logo.png"></div>
  <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3" id="logo-text">Text</div>
</div>
&#13;
&#13;
&#13;