html - 为什么其中带有 p 标签的 html div 标签与带有 img 标签的标签位置不同?

标签 html css spacing paragraph

我在 Codecademy.com 上工作时编写了以下代码。基本上我有一堆用 <div> 创建的圆形容器标签。所有的容器在空的时候都整齐地排成一排。当我在一些 <div> 中添加图像时s,它不影响间距。但是,当我在 <p> 中添加文本时<div> 之一内的标签容器它把整个容器撞了半英寸。 (注意:删除或添加更多 <br> 标签无济于事,将边距设置为 0 也无济于事。)

我的问题是:为什么会发生这种情况,我怎样才能阻止它发生?

因为我这样做是为了学习,所以我肯定更关心理解为什么会发生这种情况,而不是简单地快速解决问题。谢谢。

代码如下:

div {
  display: inline-block;
  margin-left: 5px;
  border-radius: 100%;
  height: 100px;
  width: 100px;
  border: 2px solid black;
}
.friend {
  border: 2px dashed #008000;
}
.family {
  border: 2px dashed #0000ff;
}
.enemy {
  border: 2px dashed #ff0000;
}
#best_friend {
  border: 4px solid #00c957;
}
#archnemesis {
  border: 4px solid #cc0000;
}
img {
  border-radius: 100%;
  height: 100px;
  width: 100px;
}
div p {
  text-align: center;
  border: 0;
  padding: 0;
}
<!DOCTYPE html>
<html>

<head>
  <link type="text/css" rel="stylesheet" href="stylesheet.css" />
  <title>My Social Network</title>
</head>

<body>
  <div class="friend" id="best_friend">
    <img src="http://www.smashbros.com/images/og/link.jpg" />
  </div>
  <div class="friend">
    <img src="http://upload.wikimedia.org/wikipedia/commons/9/9e/Navi_oOot.png" />
  </div>
  <div class="family">
    <img src="http://fc07.deviantart.net/fs70/i/2011/196/c/a/deku_tree_manip_by_thegeminisage-d3u262q.jpg" />
  </div>
  <div class="family">
    <br>
    <p>Forest elf guy number 7</p>
  </div>
  <div class="enemy" id="archnemesis">
    <img src="#" />
  </div>
  <div class="enemy">
    <img src="#" />
  </div>
</body>

</html>

最佳答案

要解决此问题,您可以将 vertical-align 属性更改为默认值以外的值,即 baseline

在这种情况下,以下将起作用:

Example Here

div {
    display: inline-block;
    vertical-align: top;
    /* other styling.. */
}

至于为什么该元素的位置低于其他元素的原因,是因为文本与同级元素的基线对齐。请注意,如果您 remove the text ,问题不再出现。由于该元素是 inline-block,更改 vertical-align 属性将对其产生影响。另一方面,如果元素是 float 的,您也不会看到这个问题。

关于html - 为什么其中带有 p 标签的 html div 标签与带有 img 标签的标签位置不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227676/

相关文章:

javascript - 粘性页脚 hack 很接近,有什么提示可以让我更接近吗?

javascript - 如何阻止框阴影合并到背景颜色中?

html - safari 中的背景属性 CSS3

html - 如果分辨率很小(或者您稍微调整浏览器大小),标题中的图像会彼此下方

html - CSS 背景或弃用的 HTML bgcolor

javascript - 2个div之间的神秘空间

javascript - 如何使用 jQuery 将 JSON 树呈现为使用 div 的嵌套 HTML?

css - 在容器 div 中 float 3 个 div

r - 如何使用ggplot2更改轴标签和刻度标签之间的间距?

javascript - 根据服务器的数据启用/禁用 Html 按钮