html - 在 CSS 中 float 导致元素向下移动

标签 html css css-float

<html>
<head>
    <title>My Play Store</title>
    <style type="text/css">
    body{
    margin:0;
    }

    #container{
    min-width:1080px;
    }

    #upperbar{
    background-color:#F1F1F1;
    height:60px;
    width:100%;
    }

    #logobardiv{
    margin:10px 20px 10px 30px;
    float:LEFT;
    }

    #logo{
    height:39px;
    width:183px;
    }

    #searchbardiv{
    float:left;
    padding:15px 0px 15px 10px;
    }

    #searchbar{
    height:28px;
    width:545px;
    font-size:1em;
    }

    </style>
</head>
<body>
    <div class="container">
        <div id="upperbar">
            <div id="logobardiv">
                <img id="logo" src="images/logo.png"/>
            </div>
            <div id="searchbardiv">
                <input id="searchbar" type="text" placeholder="Search"/>
            </div>
        </div>
    </div>
</body>

在我试图制作的上述页面中,当我减小浏览器窗口的大小时,“searchbardiv”往往会移动到“logobardiv”下方。

我只想让两个 div 在同一行。我尝试使用“float:left”,但它没有给出所需的结果。

最佳答案

不要使用 float ,而是尝试对两个子元素使用 display: inline-block 并使用 white-space: nowrap 使它们保持在同一行。

display: inline-block 应用于 #logobardiv#searchbardiv 并应用 vertical-align: middle(或其他需要的值)到 #logobardiv 以处理任何垂直对齐问题。

最后,将 white-space: nowrap 应用于 #upperbar 以使两个子元素保持在同一行。

请注意,对于足够小的屏幕,您可以水平滚动。要解决此问题,您需要做出设计决策来处理这种情况。您可以使搜索输入宽度更小或 Logo 更小或两者兼而有之,也许可以使用 % widths 而不是使它们具有响应性。您有几个选项可以解决问题。

body {
  margin: 0;
}
#container {
  min-width: 1080px;
}
#upperbar {
  background-color: #F1F1F1;
  height: 60px;
  width: 100%;
  white-space: nowrap;
}
#logobardiv {
  margin: 10px 20px 10px 30px;
  display: inline-block;
  vertical-align: middle;
}
#logo {
  height: 39px;
  width: 183px;
}
#searchbardiv {
  display: inline-block;
  padding: 15px 0px 15px 10px;
}
#searchbar {
  height: 28px;
  width: 545px;
  font-size: 1em;
}
<div class="container">
  <div id="upperbar">
    <div id="logobardiv">
      <img id="logo" src="http://placehold.it/183/39" />
    </div>
    <div id="searchbardiv">
      <input id="searchbar" type="text" placeholder="Search" />
    </div>
  </div>
</div>

关于html - 在 CSS 中 float 导致元素向下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29388617/

相关文章:

javascript - 如何取消点击其他地方的 jQuery 下拉菜单? (带有 jsFiddle 链接)

html - Bootstrap 图标是蓝色而不是白色,而且垂直位置不佳

javascript - 用单个less文件生成多个主题

css - 如何使用 css 将空的 float div 拉伸(stretch)到可用的全高?

html - 在 float div 上垂直居中对齐。容器有最小高度

html - Bootstrap 响应式网格中的输入前置

php - 'echo' 和 'printf' 返回的埃塞俄比亚字体不可见

html - 某些 div 样式没有响应

jquery - 如何使用 slider 更改文字大小?

javascript - 使用 HTML 按钮反转 bool 函数?