如何将搜索图标浮动到右侧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将搜索图标浮动到右侧相关的知识,希望对你有一定的参考价值。
如何将字体真棒搜索图标浮动到注册旁边的右侧。
这是我的导航栏的屏幕截图,所以你也知道我在说什么:
我在互联网上搜索教程,他们都说使用float:right;但这似乎不起作用
body {
margin: 0;
padding: 0;
margin-top: 130px;
overflow-x: hidden;
}
.nav-menu a img {
float: left;
margin-left: 10px;
}
.nav-menu ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: rgba(0, 0, 0, 0.9);
margin-top: -130px;
}
.nav-menu li {
float: left;
}
.nav-menu li a,
.dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.nav-menu li a:hover,
.dropdown:hover .dropbtn {
border-top: 2px solid #ff0000;
}
.nav-menu li.dropdown {
display: inline-block;
}
.nav-menu .dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
.nav-menu .dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.nav-menu .dropdown-content a:hover {
background-color: #ff0000;
color: #fff;
}
.nav-menu .dropdown:hover .dropdown-content {
display: block;
}
.nav-menu li.social {
float: right;
}
<div class="nav-menu">
<ul>
<a href="#"><img src="img/logo.jpg" style="width:50px"></a>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Games</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Crews</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">Videos</a></li>
<li><a href="#">Events</a></li>
<li><a href="#">News</a></li>
<li class="social">
<a href="#">Sign In</a>
<a href="#" style="color:#ff0000">Sign Up</a>
<li><a href="#"><i class="fas fa-search"></i></li></a>
</ul>
答案
问题是你的<li>
包装搜索图标。这是一个无效的代码。 <li>
不能是<li>
的孩子。将其更改为<a>
元素
body {
margin: 0;
padding: 0;
margin-top: 130px;
overflow-x: hidden;
}
.nav-menu a img {
float: left;
margin-left: 10px;
}
.nav-menu ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: rgba(0, 0, 0, 0.9);
margin-top: -130px;
}
.nav-menu li {
float: left;
}
.nav-menu li a,
.dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.nav-menu li a:hover,
.dropdown:hover .dropbtn {
border-top: 2px solid #ff0000;
}
.nav-menu li.dropdown {
display: inline-block;
}
.nav-menu .dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
.nav-menu .dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.nav-menu .dropdown-content a:hover {
background-color: #ff0000;
color: #fff;
}
.nav-menu .dropdown:hover .dropdown-content {
display: block;
}
.nav-menu li.social {
float: right;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<div class="nav-menu">
<ul>
<li><a href="#"><img src="img/logo.jpg" style="width:50px"></a></li>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Games</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Crews</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">Videos</a></li>
<li><a href="#">Events</a></li>
<li><a href="#">News</a></li>
<li class="social">
<a href="#">Sign In</a>
<a href="#" style="color:#ff0000">Sign Up</a>
<a href="#"><i class="fas fa-search"></i></a>
</li>
</ul>
</div>
另一答案
我知道这个问题有点迟了 - 但我有一个改进的解决方案(至少我是这么认为的)!
上一个答案的语法仍然有点不正确。您还应该尝试将您的下拉列表设置为嵌套的ul
。 :-)
通过在display: flex
上使用align-items: center
和.nav-menu
,您将在不使用float
的情况下对齐所有元素(我倾向于避免使用它,因为它通常会使您的代码表现得像您不期望的那样)。
我还在你的margin-left:auto
容器上为你添加了.social
,它会把你所有的社交活动推到父母的最后。
编辑:如果你在菜单项上使用border-top: transparent
,这可以确保在:hover
上添加彩色边框时文本不会移动 - 所以你基本上只是显示颜色。
html,
body {
margin: 0;
padding: 0;
}
.nav-menu {
display: flex;
align-items: center;
background-color: rgba(0, 0, 0, 0.9);
}
.nav-menu img {
margin: 0 10px;
}
.nav-menu>ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
}
ul.social {
margin-left: auto;
}
.nav-menu li a,
.dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
border-top: 2px solid transparent;
}
.nav-menu li a:hover,
.dropdown:hover .dropbtn {
border-top: 2px solid #ff0000;
}
.nav-menu li.dropdown {
display: inline-block;
}
.nav-menu .dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
list-style: none;
margin: 0;
padding: 0;
}
.nav-menu .dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.nav-menu .dropdown-content a:hover {
background-color: #ff0000;
color: #fff;
}
.nav-menu .dropdown:hover .dropdown-content {
display: block;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">
<!-- just for the example -->
<div class="nav-menu">
<a href="#"><img src="img/logo.jpg" style="width:50px"></a>
<ul>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Games</a>
<ul class="dropdown-content">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Crews</a>
<ul class="dropdown-content">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">Videos</a></li>
<li><a href="#">Events</a></li>
<li><a href="#">News</a></li>
</ul>
<ul class="social">
<li><a href="#">Sign In</a></li>
<li><a href="#" style="color:#ff0000">Sign Up</a></li>
<li><a href="#"><i class="fas fa-search"></i></a></li>
</ul>
</div>
以上是关于如何将搜索图标浮动到右侧的主要内容,如果未能解决你的问题,请参考以下文章