当缩小时,导航栏不会留在标题中。我怎样才能做到这一点?

时间:2017-10-19 16:07:38

标签: html css navigation containers nav

我遇到的问题是我的菜单栏不会保留在标题内。

我正在尝试设计单个页面,但是当窗口变小时,我无法弄清楚如何防止导航菜单从蓝色标题中掉出来。

我尝试过使用min-heightoverflow等,但我想我可能会遗漏一些明显的东西。

我可以得到一些帮助/建议吗?

谢谢,

阿尼什

HTML

    <header>
        <div class="containernav">
        <img src="Images/VAC_Modern_LOGO_V3_optometrists.jpg" alt="logo" class="logo">
            <nav>
                <ul>
                    <li><a href="#home">Home</a></li>
                    <li><a href="#services">Services</a></li>
                    <li><a href="#eyecare">Eye Care</a></li>
                    <li><a href="#contactus">Contact Us</a></li>
                </ul>
            </nav>
        </div>

    </header>

    <body>

       <div id="home">
            <div class="textbox">
                <h3>lorem</h3>
                <p>Lorem</p>

    </body>

CSS

    @charset "utf-8";

    body {
        margin: 0;
        font-family: 'Roboto', sans-serif;
        background: rgba(4, 26, 125, 0.5);
    }

    .containernav {
        display: block;
        width: 80%;
        margin: 0;
    }

    img {
        float: left;
        height: 200px;
        width: 250px;
    }

    header {
        background: rgb(4, 26, 125);
    }

    header::after {
        content: '';
        display: table;
        clear: both;
    }

    .logo {
        float: left;
        padding: 5px 0;
    }

    nav {
        float: left;
        margin-top: 10%;
    }

    nav ul {
        margin: 0;
        padding: 0;
        list-style: none;
        position: absolute;
    }

    nav li {
        display: inline-block;
        margin-left: 70px;
        padding-top: 33px;
        position: relative;
    }

    nav a {
        color: rgba(255, 255, 255, 0.5);
        text-decoration: none;
        text-transform: uppercase;
        font-size: 16px;
    }

    nav a:hover {
        color: rgba(249, 29, 0, 0.5);
    }

    nav a::before {
        content: '';
        display: block;
        height: 5px;
        width: 0%;
        background-color: rgb(255, 255, 255);
        position: absolute;
        top: 0;
        transition: all ease-in-out 250ms;
    }

    nav a:hover::before {
        width: 100%;
    }

    button {
        background-color: rgba(85, 85, 85, 0.5);
        color: rgba(255, 255, 255, 0.7);
        height: auto;
        width: auto;
        padding 100px 50px;
        cursor: pointer;
        float: right;
        font-size: 22px;
    }

2 个答案:

答案 0 :(得分:0)

您的导航栏非常混乱,我建议您只使用 width% float 创建它。这是一个基本的navBar,它会调整大小并始终保持在一行。

您可以使用纯CSS执行此操作,只需确保您要显示的元素直接位于父级之后。

&#13;
&#13;
.navTitle {
  width: 20%;
  float: left;
  background-color: lightGrey;
  cursor: pointer;
  border-bottom: 1px solid black;
}

.navTitle:hover .moreInfo {
  display: inline-block;
}

.moreInfo {
  margin: 0;
  background-color: grey;
  display: none;
  width: 100%;
}
&#13;
<div class="navTitle">
 <p>Section 1</p>
 <p class="moreInfo">More info 1</p>
</div>

<div class="navTitle">
 <p>Section 2</p>
 <p class="moreInfo">More info 2</p>
</div>

<div class="navTitle">
 <p>Section 3</p>
 <p class="moreInfo">More info 3</p>
</div>

<div class="navTitle">
 <p>Section 4</p>
 <p class="moreInfo">More info 4</p>
</div>

<div class="navTitle">
 <p>Section 5</p>
 <p class="moreInfo">More info 5</p>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

查看以下代码。

@charset "utf-8";

    body {
        margin: 0;
        font-family: 'Roboto', sans-serif;
        background: rgba(4, 26, 125, 0.5);
    }

    .containernav {
            display: flex;
            align-items: center;
    width: 100%;
    margin: 0;
    }

    img {
        height: 200px;
        width: 250px;
    }

    header {
        background: rgb(4, 26, 125);
    }

    header::after {
        content: '';
        display: table;
        clear: both;
    }

    .logo {
        padding: 5px 0;
    }

    nav {
    }

    nav ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    nav li {
        display: inline-block;
        margin-left: 70px;
        padding-top: 33px;
        position: relative;
    }

    nav a {
        color: rgba(255, 255, 255, 0.5);
        text-decoration: none;
        text-transform: uppercase;
        font-size: 16px;
    }

    nav a:hover {
        color: rgba(249, 29, 0, 0.5);
    }

    nav a::before {
        content: '';
        display: block;
        height: 5px;
        width: 0%;
        background-color: rgb(255, 255, 255);
        position: absolute;
        top: 0;
        transition: all ease-in-out 250ms;
    }

    nav a:hover::before {
        width: 100%;
    }

    button {
        background-color: rgba(85, 85, 85, 0.5);
        color: rgba(255, 255, 255, 0.7);
        height: auto;
        width: auto;
        padding 100px 50px;
        cursor: pointer;
        float: right;
        font-size: 22px;
    }
<header>
        <div class="containernav">
        <img src="Images/VAC_Modern_LOGO_V3_optometrists.jpg" alt="logo" class="logo">
            <nav>
                <ul>
                    <li><a href="#home">Home</a></li>
                    <li><a href="#services">Services</a></li>
                    <li><a href="#eyecare">Eye Care</a></li>
                    <li><a href="#contactus">Contact Us</a></li>
                </ul>
            </nav>
        </div>

    </header>

    <body>

       <div id="home">
            <div class="textbox">
                <h3>lorem</h3>
                <p>Lorem</p>

    </body>