2016-05-29 136 views
0

爲什麼vertical-align: middle;不會將圖標對齊到標題中間?方形垂直圖標對齊

.custom { 
 
     color: white; 
 
     vertical-align: middle; 
 
    } 
 
    .header { 
 
     width: 100%; 
 
     height: 40px; 
 
     background: rgb(40,40,40); 
 
    }
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"/> 
 
<div class="header"> 
 
    <i class="fa fa-facebook custom" aria-hidden="true"></i> 
 
    <i class="fa fa-twitter custom" aria-hidden="true"></i> 
 
    <i class="fa fa-instagram custom" aria-hidden="true"></i> 
 
    <i class="fa fa-google-plus custom" aria-hidden="true"></i> 
 
</div>

回答

1

這些天,對齊垂直居中的最佳方法是使用Flexbox的。另請參見:

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/

.custom { 
 
     color: white; 
 
     vertical-align: middle; 
 
    } 
 

 
.header { 
 
    
 
    display:flex; 
 
    align-items: center; 
 

 
     width: 100%; 
 
     height: 40px; 
 
     background: rgb(40,40,40); 
 
    }
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"/> 
 
<div class="header"> 
 
    <i class="fa fa-facebook custom" aria-hidden="true"></i> 
 
    <i class="fa fa-twitter custom" aria-hidden="true"></i> 
 
    <i class="fa fa-instagram custom" aria-hidden="true"></i> 
 
    <i class="fa fa-google-plus custom" aria-hidden="true"></i> 
 
</div>

1
.custom { 
    color: white; 
    vertical-align: middle; 
    **line-height: 40px;** 
} 
0

給予一定的餘量,以.custommargin-top=2.5%margin=2.5%,它會工作。

另一方面,vertical-align也可以工作,如果你有這樣的事情;

<a class="header"> 
    <i class="fa fa-facebook custom" aria-hidden="true"></i> 
</a> 
0

爲什麼它不工作的原因是因爲你所提到的高度刪除高度,它會對齊到中間,而不是使用高度爲填充父類,爲你的頭。

.custom { 
    color: white; 
    vertical-align: middle; 
} 
.header { 
    width: 100%; 
    padding:20px; 
    background: rgb(40,40,40); 
}