如何使浮子向左并漂浮在同一条线上?

Ale*_*x G 9 html css css-float

问题:

     **The left part** (#nav ul li) which float: left
     and **the right part** (#nav .search) which float: right
            **are not in a line**.

它应该是这样的: 在此输入图像描述

但我的: 在此输入图像描述

HTML:

<div id="nav">
   <ul>
     <li><a href="#">Home</a></li>
     <li><a href="#">Portfolio</a></li>
     <li><a href="#">Blog</a></li>
     <li><a href="#">Contact</a></li>
   </ul>
   <div class="search">
     <input type="text" name="search" id="search" value="search">
   </div>       
Run Code Online (Sandbox Code Playgroud)

CSS:

#nav ul li{
float: left;
list-style: none;
margin: 0 20px;
}

#nav .search{
float: right;
}
Run Code Online (Sandbox Code Playgroud)


我的解决方案

解决方案1:使用bootsrap构建布局而不是单独使用它,我在页脚上使用它,它完全在同一条线上!但我仍然不知道它是如何工作的 在此输入图像描述

解决方案2:我使用margin-top:-20px来提取搜索框,但我不认为这是一个好习惯.

任何人都可以帮忙吗?非常感谢!


Mr *_*ter 10

已经提到的解决方案的替代方案是翻转标记的顺序,以便右浮动项首先出现.

#nav ul li {
  float: left;
  list-style: none;
  margin: 0 20px;
}
#nav .search {
  float: right;
}
Run Code Online (Sandbox Code Playgroud)
<div id="nav">
   <div class="search">
     <input type="text" name="search" id="search" value="search">
   </div>       
   <ul>
     <li><a href="#">Home</a></li>
     <li><a href="#">Portfolio</a></li>
     <li><a href="#">Blog</a></li>
     <li><a href="#">Contact</a></li>
   </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

你不必做任何其他事情.不需要其他CSS或标记.


Jak*_*uld 7

它没有按预期工作的原因是<ul>左侧向右扩展,从而推动了内容.解决方案可能是为左右区域设置一个明确的固定宽度,这是我在过去遇到这种情况时所做的.但是会说,花车甚至绝对定位的混合最终会起作用.

  • 你是对的,问题解决了^ _ ^,非常感谢! (3认同)