【问题标题】:Centering Navigation and aligning drop down content accordingly居中导航并相应地对齐下拉内容
【发布时间】:2018-06-16 04:35:23
【问题描述】:

我遇到了一些关于仅使用 HTML 和 CSS 的导航栏的问题。我想知道如何让我的导航栏居中,以及如何在应该的位置(在服务下)显示我的下拉内容。此外,我希望悬停在“服务”上的效果,但我似乎无法让它发挥作用。谁能指出我的代码哪里出错了?下面是我的代码。

/* Dropdown Button */

.dropbtn {
  background-color: red;
  color: red;
  padding: 16px;
  font-size: 16px;
  border: none;
}


/* The container needed to position the dropdown content */

.dropdown {
  position: relative;
  display: inline-block;
}


/* Dropdown Content (Hidden by Default) */


/*CHECK*/

nav ul ul {
  display: none;
  position: absolute;
  min-width: 160px;
  z-index: 1;
}


/* Links inside the dropdown */

ul ul a {
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}


/*Show the dropdown menu on hover for services*/

.dropbtn:hover .dropdown_content {
  display: block;
}


/* Change color of dropdown links on hover */

.dropdown_content a:hover {
  background-color: #ddd;
}
<nav style="height: 60px">
  <ul>
    <li><a class="active" href="index.html">HOME</a></li>
    <li><a href="about.html">ABOUT</a></li>
    <li><a href="services.html" class="dropbtn">SERVICES</a></li>
    <ul class="dropdown_content">
      <li><a href="beauty_services.html">BEAUTY SERVICES</a></li>
      <li><a href="styling_services.html">STYLING SERVICES</a></li>
    </ul>
    <li><a href="events.html">EVENTS</a></li>
    <li><a href="blog.html">BLOG</a></li>
    <li><a href="shop.html">SHOP</a></li>
    <li><a href="contact.html">CONTACT</a></li>
    <ul>
      <li><a href="book.html">BOOK</a></li>
    </ul>
  </ul>
</nav>

【问题讨论】:

  • 你提到的服务在哪里?
  • 你想要一个单杠吗?

标签: html css


【解决方案1】:

我对代码做了一些更改。说明以 cmets 为单位。

nav ul {
  /* Remove list bullets from menu */
  list-style-type: none;
}


/* Dropdown Button */

.dropbtn {
  background-color: red;
  /* cosmetic: you won't see red text on red background :) */
  /*color: red;*/
  padding: 16px;
  font-size: 16px;
  border: none;
}


/* The container needed to position the dropdown content */


/* This isn't used, so we don't need it */


/*.dropdown {
  position: relative;
  display: inline-block;
}*/


/* Dropdown Content (Hidden by Default) */


/*CHECK*/

nav ul ul {
  display: none;
  position: absolute;
  /* move it down to avoid overlapping the button */
  margin-top: 16px;
  /* align it to the button */
  margin-left: -40px;
  min-width: 160px;
  z-index: 1;
}

/* float the main items (and only those) to create a horizontal bar */
nav>ul>li {
  float: left;
  margin: 5px;
}


/* Links inside the dropdown */

ul ul a {
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}


/*Show the dropdown menu on hover for services*/

/* + combinator selects adjacent siblings, in this case the dropdown */
.dropbtn:hover+.dropdown_content,
.dropdown_content:hover {
  display: block;
}


/* Change color of dropdown links on hover */

.dropdown_content a:hover {
  background-color: #ddd;
}
<nav style="height: 60px">
  <ul>
    <li><a class="active" href="index.html">HOME</a></li>
    <li><a href="about.html">ABOUT</a></li>
    <li>
      <a href="services.html" class="dropbtn">SERVICES</a>

      <ul class="dropdown_content">
        <!-- Put the dropdown items into one <li> with the dropbtn, makes hover effect easier -->
        <li><a href="beauty_services.html">BEAUTY SERVICES</a></li>
        <li><a href="styling_services.html">STYLING SERVICES</a></li>
      </ul>

    </li>
    <li><a href="events.html">EVENTS</a></li>
    <li><a href="blog.html">BLOG</a></li>
    <li><a href="shop.html">SHOP</a></li>
    <li><a href="contact.html">CONTACT</a></li>
    <ul>
      <li><a href="book.html">BOOK</a></li>
    </ul>
  </ul>
</nav>

【讨论】:

    【解决方案2】:

    也许下面的代码会对您有所帮助,因为我对您的代码进行了一些更改

        <!DOCTYPE html>
        <html>
        <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
        .dropbtn {
      background-color: red;
      /* cosmetic: you won't see red text on red background :) */
      /*color: red;*/
      font-size: 16px;
      border: none;
    }
    
    
    
    /*Show the dropdown menu on hover for services*/
    .dropdown_content  {
        color: black;
        padding: 12px 16px;
        text-decoration: none;
        display: none;
    }
    .dropdown-content  {
        display: none;
        position: absolute;
        background-color: #f1f1f1;
        min-width: 160px;
        box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
        z-index: 1;
    }
    .dropdown_content > li:hover {background-color: #ddd;}
    
    .dropdown:hover .dropdown_content {display: block;}
    
    .dropdown:hover .dropbtn {background-color: #3e8e41;}
        </style>
        </head>
        <body>
    
        <nav style="height: 60px">
      <ul>
        <li><a class="active" href="index.html">HOME</a></li>
        <li><a href="about.html">ABOUT</a></li>
        <div class="dropdown">
        <li><a href="services.html" class="dropbtn">SERVICES</a></li>
    
    
        <ul class="dropdown_content">
          <li><a href="beauty_services.html">BEAUTY SERVICES</a></li>
          <li><a href="styling_services.html">STYLING SERVICES</a></li>
        </ul>
      </div>
        <li><a href="events.html">EVENTS</a></li>
        <li><a href="blog.html">BLOG</a></li>
        <li><a href="shop.html">SHOP</a></li>
        <li><a href="contact.html">CONTACT</a></li>
        <ul>
          <li><a href="book.html">BOOK</a></li>
        </ul>
      </ul>
    </nav>
    
        </body>
        </html>
    我刚刚在样式中添加了这四行代码
    .dropdown_content > li:hover {background-color: #ddd;}
    .dropdown:hover .dropdown_content {display: block;}
    .dropdown:hover .dropbtn {background-color: #3e8e41;}
    .dropdown_content  {
        color: black;
        padding: 12px 16px;
        text-decoration: none;
        display: none;
    }
    

    并为下拉菜单添加了&lt;div class="dropdown"&gt; 元素

    【讨论】:

    • 你需要根据他的要求编辑代码。否则,您可以将此作为评论发布。
    • 非常感谢大家的帮助!我确实设法解决了我的问题。
    【解决方案3】:

    这是另一个可能的帮助:

    • 水平对齐的样本
    • 放置在 Book 或 Service 上时显示
    • 包含一个额外的线抽屉

    /*Style for when the container class is displayed*/
    .dropdown_content {
    
        display: none;
        padding: 5px;
    position: absolute;
    
        width: 200px;
        text-align: center;
    }
    
    /*Style in charge that when we put the mouse on top of him, we show him the hidden*/
    /*Show the Service list*/
    #dropbtnService:hover .dropdown_content {
    
        display: block;
    }
    
    /*Show the Book list*/
    
    #dropbtnBook:hover .dropdown_content {
    
        display: block;
    }
    
    /* Change color of dropdown links on hover */
    
    .dropdown_content a:hover {
        background-color: #ddd;
    }
    
    /*The other code has been deleted due to the number of errors that occurred*/
    * {
        margin: 0;
        padding: 0;
    }
    
    #main {
        margin: auto;
        width: 900px;
        height: 100px;
    
        border: 1px solid #444;
        text-align: center
    }
    
    div > ul {
        padding: 20px;
    }
    
    div > li {
        list-style: none;
        display: inline;
        margin: 0 20px 0 20px;
    }
    
    nav > ul > li, div {
        float: left;
    
        padding: 1em;
    }
    
    /* Links inside the dropdown */
    
    ul ul a {
        padding: 12px 16px;
        text-decoration: none;
        display: block;
    }
    
    nav ul {
        /* Remove list bullets from menu */
        list-style-type: none;
    }
    
     #dropbtnService {
    
        background-color: red;
        padding: 16px;
        font-size: 16px;
    }
    <!DOCTYPE html>
    
    <html lang="es">
    
    <head>
    
        <meta charset="utf-8">
    
    
        <link rel="stylesheet" href="css/css.css">
    
    
    </head>
    
    
    <body>
    <div id="main">
        <nav style="height:60px">
            <ul>
                <li><a class="active" href="index.html">HOME</a></li>
                <li><a href="about.html">ABOUT</a></li>
                <!--Modify and agree div's-->
                <div id="dropbtnService">
                    <li><a href="services.html">SERVICES</a></li>
                    <div class="dropdown_content">
                        <ul>
    
                            <li><a href="beauty_services.html">BEAUTY SERVICES</a></li>
                            <li><a href="styling_services.html">STYLING SERVICES</a></li>
                        </ul>
                    </div>
                </div>
    
    
                <li><a href="events.html">EVENTS</a></li>
                <li><a href="blog.html">BLOG</a></li>
                <li><a href="shop.html">SHOP</a></li>
                <div id="dropbtnBook">
                    <li><a href="contact.html">CONTACT</a></li>
    
                    <div class="dropdown_content">
                        <ul>
                            <li><a href="book.html">BOOK</a></li>
                        </ul>
                    </div>
                </div>
            </ul>
        </nav>
    </div>
    </body>
    
    </html>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-25
      • 2018-08-13
      • 2019-07-28
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多