一些非常基本的HTML中的无法解释的偏移[重复]

问题描述 投票:2回答:3

这个问题在这里已有答案:

我有时会发现自己处于基本非常简单的HTML / CSS中有一些偏移的情况,这是我无法理解的。

这是一个example

<div style="width: 100%; height: 92px;">
  <image src="https://www.google.at/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" width="272px" height="92px"></image>
  <a href="www.google.com">Google</a>
</div>

enter image description here

额外的垂直偏移来自哪里?

到目前为止我发现的“唯一”解决方案是使用带有div而不是background-image元素的image ...

html css html5 css3
3个回答
1
投票

默认情况下,inlineinline-block元素根据其父级的baseline对齐。使用vertical-align更改此行为。

a,
img {
  vertical-align: middle;
}
<div style="width: 100%; height: 92px;">
  <img src="https://www.google.at/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" width="272px" height="92px">
  <a href="www.google.com">Google</a>
</div>

1
投票

link应该有一个bottom垂直对齐,默认情况下它是baseline

a {
  vertical-align: middle;
}

img{
  vertical-align: bottom;
  }
<div style="width: 100%; height: 92px;">
  <img src="https://www.google.at/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" width="272px" height="92px">
  <a href="www.google.com">Google</a>
</div>

enter image description here


0
投票

对于所有inline类型displays无论是inlineinline-blockinline-flex等,DOM元素像文本一样流动 -

  1. 请注意,内嵌元素之间存在一些隐式空格(随font-size而变化)
  2. 垂直对齐默认为baseline - 请参阅下面演示中它与文本基线的对齐方式: .wrapper { border: 1px solid; } .wrapper > * { display: inline-flex; border: 1px solid; height: 100px; width: 100px; } <div class="wrapper"> <div></div> <div> <h1>kjk</h1> </div> </div>

解:

您可以使用vertical-align:middle垂直对齐内联元素。

div > * {
  vertical-align: middle;
}
<div style="width: 100%; height: 92px;">
  <image src="https://www.google.at/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" width="272px" height="92px"></image>
  <a href="www.google.com">Google</a>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.