标头标记后的内容不可见

时间:2019-07-07 11:26:26

标签: jquery html header css-position nav

我是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在以上代码中不可见,并且很可能隐藏在导航后面。

1 个答案:

答案 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;
}
相关问题