我是Web开发的新手,我正在尝试将我的旧页面之一转换为响应式网站。我正在尝试设计一个响应式导航栏,该导航栏在小屏幕上变为切换菜单,但似乎我在定位方面遇到任何问题,并且遇到了以下问题。
我尝试使用html,css和jquery对响应式导航栏进行编码,但是在看不到标头标记后编写任何内容时,都无法使用。
我尝试使用margin和br标签,但实际上并没有给出我想要的结果
html代码:
<html>
<head>
<title>Webpage</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="styles.css">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<header>
<div class="logo"> <img src="res/logo.png" alt="logo" height="50px"> </div> <!-- <a href="index.html"> <img src="res/logo.png" height="100px" width="100px" alt="logo">-->
<nav>
<ul>
<li><a class="active" href="index.html">Home</a></li>
<li><a class="" href="pages/products.html">Products</a></li>
<li><a class="" href="pages/contact.html">Contact us</a></li>
</ul>
</nav>
<div class="menu-toggle">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</header>
<p>hello world!!</p>
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.menu-toggle').click(function(){
$('nav').toggleClass('active')
})
})
</script>
</body>
</html>
css代码:
body{
padding: 0;
font-family: sans-serif;
background-color: #FBFF95;
}
header{
background: #FBB36B;
margin: 0px 0px 0px 0px;
position: absolute;
padding: 0 100px;
width: 100%;
box-shadow: 0 4px 0 rgba(128, 128, 128, 0.616);
box-sizing: border-box;
}
header .logo{
color: #fff;
height: 50px;
line-height: 50px;
font-size: 24px;
float:left;
font-weight: bold;
}
header nav{
float: right;
}
header nav ul{
margin: 0;
padding: 0;
display: flex;
}
header nav ul li{
list-style: none;
}
header nav ul li a{
height: 50px;
line-height: 50px;
padding: 0 20px;
color: #fff;
text-decoration: none;
}
header nav ul li a:hover, header nav ul li a.active{
color:#fff;
background-color: rgb(197, 144, 91);
display: block;
}
.menu-toggle
{
color:#fff;
float: right;
line-height: 50px;
font-size: 24px;
cursor: pointer;
display: none;
}
@media (max-width: 575px){
header{
padding: 0 20px;
}
.menu-toggle{
display: block;
}
header nav{
position: absolute;
width: 100%;
height: calc(100vh - 50px);
background: #FBB36B;
top: 50px;
left: -100%;
transition: 0.5%;
}
header nav.active{
left: 0;
}
header nav ul{
display: block;
text-align: center;
}
header nav ul li{
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
}
我想将内容放置在导航栏旁边,但是它们在它的后面或前面。目前hello world
在以上代码中不可见,并且很可能隐藏在导航后面。
答案 0 :(得分:0)
您无法通过在主要内容上添加边距来解决此问题的主要原因是,即使您将标头的位置指定为绝对位置,也没有设置偏移量,上下规则这些解决了问题, 附言:-您也有不正确的转换值。 这是更新的styles.css。
body{
padding: 0;
font-family: sans-serif;
background-color: #FBFF95;
}
/* Remember the top and left rules next time, there are also bottom and right. */
header{
background: #FBB36B;
margin: 0px 0px 0px 0px;
position: absolute;
top: 0;
left:0;
padding: 0 100px;
width: 100%;
box-shadow: 0 4px 0 rgba(128, 128, 128, 0.616);
box-sizing: border-box;
}
header .logo{
color: #fff;
height: 50px;
line-height: 50px;
font-size: 24px;
float:left;
font-weight: bold;
}
header nav{
float: right;
}
header nav ul{
margin: 0;
padding: 0;
display: flex;
}
header nav ul li{
list-style: none;
}
header nav ul li a{
height: 50px;
line-height: 50px;
padding: 0 20px;
color: #fff;
text-decoration: none;
}
header nav ul li a:hover, header nav ul li a.active{
color:#fff;
background-color: rgb(197, 144, 91);
display: block;
}
.menu-toggle
{
color:#fff;
float: right;
line-height: 50px;
font-size: 24px;
cursor: pointer;
display: none;
}
@media (max-width: 575px){
header{
padding: 0 20px;
}
.menu-toggle{
display: block;
}
header nav{
position: absolute;
width: 100%;
height: calc(100vh - 50px);
background: #FBB36B;
top: 50px;
left: -100%;
transition: 0.5s;
}
header nav.active{
left: 0;
}
header nav ul{
display: block;
text-align: center;
}
header nav ul li{
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
}
/* Main style margin */
main {
margin-top: 57px;
}