html - 除非我为父级添加额外的宽度,否则为什么子级 div 不在同一行?

标签 html css

<分区>

我正在制作一个包含 2 张图片的标题,如下所示:

<div id="header-logo">
    <div class="header-logo"><img src="logo.png"></div>
    <div class="header-name"><img src="logo-name.png"></div>
</div>

使用以下 CSS:

#header-logo { width: 538px; margin: 0 auto; }
#header-logo div { display: inline; height: auto; }
#header-logo div.header-logo { width: 183px; }
#header-logo div.header-name { width: 355px; }

问题是,除非我将父 div (#header-logo) 设置为 542px 或更大,否则子 div 会相互下方,我不明白为什么 183 + 355 = 538,额外的 4 个像素来自哪里?

最佳答案

您正在处理内联元素特有的空格。

如果您在 <p> 中编写文本元素,然后点击空格键或添加换行符,该空格由浏览器呈现。同样的行为适用于所有内联元素,例如图像和输入。

解决问题最快的方法是:

  1. 添加font-size: 0到父元素。在您的代码中,只需执行以下操作: div { font-size: 0; } , 或者
  2. 删除元素之间的所有空格和换行符:

    <div id="header-logo"><div class="header-logo"><img src="logo.png"></div><div class="header-name"><img src="logo-name.png"></div></div>

其他选项包括负边距省略结束标记使用注释标记 float flex 盒子。有关每种方法的详细信息,请参阅本文:

有关此问题的更多详细信息,请参阅:

关于html - 除非我为父级添加额外的宽度,否则为什么子级 div 不在同一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32899006/

相关文章:

javascript - 模态关闭后显示按钮

javascript - 如何格式化谷歌地图标记的标签

html - Bootstrap 4.0 - 带有图像 + 导航栏 + 全高主体的响应式标题

javascript - 视差效果在某些浏览器中不起作用

javascript - 如果两个元素 block 使用相同的嵌套设置,如何定位特定元素?

javascript - 防止窗口滚动到折叠下方,直到单击按钮

jquery - TextArea MaxLength - 支持还是不支持?

html - CSS 缩放的替代解决方案

javascript - 可排序表格中的交替行颜色

java - Jsoup 选择命令