html - 内联 block 元素,在这种情况下不是内联

标签 html css

我已将搜索栏 div 元素设置为 inline-block,以及 img

但是,div 元素在图像下方,而不是在同一水平线上。

谁能告诉我为什么会这样?

body {
  margin: 0;
}
#header {
  width: 100%;
  height: 60px;
  background-color: #f1f1f1;
}
#header img {
  height: 56px;
  display: inline-block;
  margin-left: 20px;
}
#search {
  display: inline-block;
}
#search input {
  display: inline-block;
  width: 584px;
  height: 38px;
  border: 1px solid #d9d9d9;
}
#search input:hover {
  border: 1px solid black;
}
<div id="header">
  <img src="http://orig04.deviantart.net/1d83/f/2013/087/5/6/google_icon_by_slamiticon-d5z7lrp.png" />
  <div id="search">
    <form>
      <input type="text" name="search" />
    </form>
  </div>
</div>

最佳答案

您的样式正常工作; #search input 元素的宽度太宽了!尝试在更宽的屏幕上查看结果,您会看到元素按预期内联显示。

预料到您的下一个问题,您可以使用规则(在容器上,例如 #header)防止内联元素换行:

空白:nowrap

预料到您的下一个问题(如果我可以这么大胆的话),您可能想要设置 CSS 规则:

vertical-align: middle

#header img#search 上获得您想要的外观。

关于html - 内联 block 元素,在这种情况下不是内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38494167/

相关文章:

javascript - 将 Jquery 类应用于只有一个元素的所有子元素

javascript - 打印功能在 chrome 中不起作用

javascript - 研究 Jquery 中的 Animate()。

php - 如何使用 REGEX php 从一系列 CSS 声明中提取十六进制值

css - flex 盒设计中的粘性侧边栏

HTML5 Boilerplate 和 960.gs 我应该包含 reset.css 吗?

javascript - 脚本只会显示最后一个文本和最后一个颜色,但会按照指示进行动画处理,这是怎么回事?

html - chrome 上的 Bootstrap 按钮颜色不正确(Mac 机)

html - css:如何使用文本溢出省略号使列大小可变

css - 仅将 css 应用于第一个 child 并取消继承