【问题标题】:Why inline-block can not be vertically aligned为什么 inline-block 不能垂直对齐
【发布时间】:2016-03-04 06:31:37
【问题描述】:

我对 CSS 显示非常陌生,目前我想将一些文本和图标(垂直)居中对齐,但它不起作用:

.header {
display: inline-block;
height: 30px;
width: 200px;
background-color: #1f78b4;
}
.holder {
width:auto;
height: 30px;
background-color: lightblue;
float:right;
line-height: 30px;
}
.menuitem {
display: inline-block;
line-height: 30px;
}
.source {
height: 30px;
}
<!DOCTYPE html>
<html>
<head>
	<title>TEST COSMOS ICONS</title>
	<link href="https://file.myfontastic.com/qRRrqNRQJ2GCtUGjRFh7DM/icons.css" rel="stylesheet">

</head>
<body>
	<div class="header">
		<span class="holder">
			<span class="menuitem source">Perf</span>
			<span class="menuitem icon-gear"></span>
			<span class="menuitem icon-download"></span>
		</span>
	</div>
</body>
</html>

我认为一个 100% 行高的行可以控制文本和 inline-block 元素垂直居中对齐,但如果你特别注意那些图标,它们会在中心上方一点。

【问题讨论】:

标签: css


【解决方案1】:

“为什么inline-block不能垂直对齐?”

in-line 的重点是让元素从左到右传播到屏幕;所以,水平的。

如果你想要垂直,不要使用in-line样式的元素,因为元素自然地从上到下传播;所以,垂直。

【讨论】:

    【解决方案2】:

    vertical-align:middle 似乎是您所追求的,但您也需要将其应用于伪元素。

    .header {
      display: inline-block;
      height: 30px;
      width: 200px;
      background-color: #1f78b4;
    }
    .holder {
      width: auto;
      height: 30px;
      background-color: lightblue;
      float: right;
      line-height: 30px;
    }
    .menuitem,
    .menuitem::before {
      display: inline-block;
      vertical-align: middle;
    }
    .source {
      height: 30px;
    }
    <!DOCTYPE html>
    <html>
    
    <head>
      <title>TEST COSMOS ICONS</title>
      <link href="https://file.myfontastic.com/qRRrqNRQJ2GCtUGjRFh7DM/icons.css" rel="stylesheet">
    
    </head>
    
    <body>
      <div class="header">
        <span class="holder">
        <span class="menuitem source">Perf</span>
        <span class="menuitem icon-gear"></span>
        <span class="menuitem icon-download"></span>
        </span>
      </div>
    </body>
    
    </html>

    【讨论】:

    • 谢谢,但是运行的时候,图标的上下还是有不一样的空间,从那个齿轮图标可以看出,上面的面积比下面的面积大
    • 这是由于使用了实际的字符字形。
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 2014-10-19
    • 1970-01-01
    • 2013-11-30
    • 2015-06-16
    • 2018-01-29
    • 2018-02-20
    相关资源
    最近更新 更多