我正在尝试修复导航栏。我尝试在添加一个按钮的同时使搜索栏居中。这只是针对html和CSS的实践,但我不知道为什么我的搜索按钮这么小,以及为什么我的右菜单现在与<hr>
对齐。它应该是一个简单的youtube副本....
*{
margin: 0;
padding: 0;
}
body{
font-family: Arial;
}
ul{
text-decoration: none;
}
.menuOne {
float: left;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
margin-left: 10px;
}
.menuTwo {
float: right;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
}
li{
display: inline;
}
.topNav .searchContainer{
text-align: center;
}
.topNav input[type=text] {
padding: 6px;
margin-top: 8px;
font-size: 17px;
border: 1px solid gray;
}
.topNav .searchContainer button {
padding: 6px 10px;
margin-top: 8px;
margin-right: 16px;
background: #ddd;
font-size: 17px;
border: 1px solid gray;
cursor: pointer;
}
hr.style-one {
border: 0;
height: 0px;
background: #333;
background-image: linear-gradient(to right, #ccc, #333, #ccc);
}
<!DOCTYPE html>
<html>
<head>
<title>Youtube</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!--This is the nav bar for youtube-->
<nav class="topNav">
<ul class="menuOne">
<li>Menu</li>
<li>YouTube</li>
</ul>
<div class="searchContainer">
<input type="text" placeholder="Search...">
<button type="submit" class="searchButton"></button>
</div>
<ul class="menuTwo">
<li>Upload</li>
<li>YouTubeApps</li>
<li>Messages</li>
<li>Notifications</li>
<li>Profile</li>
</ul>
</nav>
<br>
<!--this is to seperate the nav from the containers bellow-->
<hr>
<!--Container for the video-->
<div class="videoContainer">
</div>
<!--Container for the description of the video, to go below
video-->
<div class="videoDescription">
</div>
<!--Side container for recommended videos-->
<div class="sideBar">
</div>
</body>
</html>
我该如何解决?
答案 0 :(得分:1)
您可以使用absolute
对齐搜索框的中心。但是menutwo的li
太多,所以我使用了不重叠的较小字体。
*{
margin: 0;
padding: 0;
}
body{
font-family: Arial;
}
ul{
text-decoration: none;
}
.menuOne {
float:left;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
margin-left: 10px;
}
.menuTwo {
float:right;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
font-size:11px;
}
li{
display: inline;
}
.topNav {overflow:hidden;position:relative;height:50px}
.topNav .searchContainer{
position:absolute;
width:240px;
top:8px;
left:50%;
margin-left:-100px;
text-align: center;
}
.topNav input[type=text] {
float:left;
width:138px;
padding: 6px 0;
font-size: 17px;
border: 1px solid gray;
}
.topNav .searchContainer button {
width:98px;
padding: 6px 0;
background: #ddd;
font-size: 17px;
border: 1px solid gray;
cursor: pointer;
}
hr.style-one {
border: 0;
height: 0px;
background: #333;
background-image: linear-gradient(to right, #ccc, #333, #ccc);
}
<div style="min-width:1000px;margin:0 auto">
<nav class="topNav">
<ul class="menuOne">
<li>Menu</li>
<li>YouTube</li>
</ul>
<div class="searchContainer">
<input type="text" placeholder="Search...">
<button type="submit" class="searchButton">Search</button>
</div>
<ul class="menuTwo">
<li>Upload</li>
<li>YouTubeApps</li>
<li>Messages</li>
<li>Notifications</li>
<li>Profile</li>
</ul>
</nav>
<br>
<!--this is to seperate the nav from the containers bellow-->
<hr>
<!--Container for the video-->
<div class="videoContainer">
</div>
<!--Container for the description of the video, to go below
video-->
<div class="videoDescription">
</div>
<!--Side container for recommended videos-->
<div class="sideBar">
</div>
</div>
答案 1 :(得分:0)
我建议您研究flexbox,因为它将最终帮助您解决使网站具有响应能力的问题。 Here is another guide as well
我所做的是将topNav更改为display: flex;
,并为其设置了背景色。然后有一个div,在标题.header-content
中包含所有内容。设置为整个topNav宽度的80%,只是为了使所有内容居中。它还具有justify content: space-between
,它将在您所有元素之间放置空格。
不知道为什么您的按钮如此之小,以至于对我来说效果很好。 (您需要整页查看以下代码段,以查看整个右侧菜单)。
.topNav {
display: flex;
width: 100%;
padding: 10px 0;
justify-content: center;
background-color: #D03237;
margin-bottom: 20px;
height: 50px;
}
.header-content {
display: flex;
justify-content: space-between;
width: 80%;
padding: 0 20px;
}
*{
margin: 0;
padding: 0;
}
body{
font-family: Arial;
}
ul{
text-decoration: none;
}
.menuOne {
float:left;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
margin-left: 10px;
}
.menuTwo {
float:right;
word-spacing: 12px;
margin-top: 10px;
margin-right:30px;
font-size:11px;
}
li{
display: inline;
}
.topNav .searchContainer{
position:absolute;
width:240px;
top:8px;
left:50%;
margin-left:-100px;
text-align: center;
}
.topNav input[type=text] {
float:left;
width:138px;
padding: 6px 0;
font-size: 17px;
border: 1px solid gray;
}
.topNav .searchContainer button {
width:98px;
padding: 6px 0;
background: #ddd;
font-size: 17px;
border: 1px solid gray;
cursor: pointer;
}
hr.style-one {
border: 0;
height: 0px;
background: #333;
background-image: linear-gradient(to right, #ccc, #333, #ccc);
}
<!DOCTYPE html>
<html>
<head>
<title>Youtube</title>
<link rel="stylesheet" type="text/css" href="site.css">
</head>
<body>
<!--This is the nav bar for youtube-->
<nav class="topNav">
<div class="header-content">
<ul class="menuOne">
<li>Menu</li>
<li>YouTube</li>
</ul>
<div class="searchContainer">
<input type="text" placeholder="Search...">
<button type="submit" class="searchButton">Search</button>
</div>
<ul class="menuTwo">
<li>Upload</li>
<li>YouTubeApps</li>
<li>Messages</li>
<li>Notifications</li>
<li>Profile</li>
</ul>
</div>
</nav>
<!--Container for the video-->
<div class="videoContainer">
</div>
<!--Container for the description of the video, to go below
video-->
<div class="videoDescription">
</div>
<!--Side container for recommended videos-->
<div class="sideBar">
</div>
</body>
</html>