内联元素的垂直对齐中间稍微偏离
Vertical align middle on inline elements slightly off
当我尝试 vertical-align: middle
一些文本旁边的图标 (<img>
) 时,图标总是有点太低(参见示例)。我该如何解决这个问题,使其与文本垂直居中。
示例:
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: middle;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
添加到.icon
position: relative;
left: -2px;
这会将它从原来的位置向左移动两个像素。
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: middle;
position: relative;
left: -2px;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
我认为这是你最好的解决方案:
.icon {
vertical-align: middle;
padding-bottom: 3px;
}
其他可能的解决方案:https://github.com/google/material-design-icons/issues/206
希望对您有所帮助 ;)
试试 vertical-align: text-top;
.
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: text-top;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
这是因为浏览器用户代理将默认值 line-height
应用于元素...因此您必须使用一些 vertical-align
值...使用 text-bottom
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: text-bottom;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
好吧,如果你不想在 vertical-align
上花费太多时间,只需使用 flexbox
p {
display: flex;
align-items: center;
font: 10pt Arial, sans-serif;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: sub;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
当我尝试 vertical-align: middle
一些文本旁边的图标 (<img>
) 时,图标总是有点太低(参见示例)。我该如何解决这个问题,使其与文本垂直居中。
示例:
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: middle;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
添加到.icon
position: relative;
left: -2px;
这会将它从原来的位置向左移动两个像素。
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: middle;
position: relative;
left: -2px;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
我认为这是你最好的解决方案:
.icon {
vertical-align: middle;
padding-bottom: 3px;
}
其他可能的解决方案:https://github.com/google/material-design-icons/issues/206
希望对您有所帮助 ;)
试试 vertical-align: text-top;
.
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: text-top;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
这是因为浏览器用户代理将默认值 line-height
应用于元素...因此您必须使用一些 vertical-align
值...使用 text-bottom
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: text-bottom;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
好吧,如果你不想在 vertical-align
上花费太多时间,只需使用 flexbox
p {
display: flex;
align-items: center;
font: 10pt Arial, sans-serif;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>
p {
font: 10pt Arial, sans-serif;
}
.icon {
vertical-align: sub;
}
<p>This is some text with an <img src="https://i.imgur.com/IJs3M2P.png" class="icon" alt="Icon" width="16" height="16">icon in it.</p>