HTML - 格式化水平导航栏

时间:2017-09-06 04:04:49

标签: html css navigationbar

我很难格式化导航栏。我希望宽度是固定的大小,并且块也要适当地大小相同。我可以通过调整CSS文件中的填充大小来解决这个问题,但是当网页显示在各种尺寸的计算机屏幕上时,它将没有标准大小。需要帮助。

body {
  background-color: linen;
  margin: 0;
}


/*Strip the ul of padding and list styling*/

ul.topnav {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
}


/*Create a horizontal list with spacing*/

ul.topnav li {
  float: left;
}

ul.topnav li a,
.dropbtn {
  display: block;
  color: white;
  text-align: center;
  padding: 20px 200px;
  text-decoration: none;
}

ul.topnav li a:hover,
.dropdown:hover .dropbtn {
  background-color: red;
}

ul.topnav li.dropdown {
  display: inline-block;
}

ul.topnav .dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

ul.topnav .dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

ul.topnav .dropdown-content a:hover {
  background-color: #f1f1f1
}

ul.topnav .dropdown:hover .dropdown-content {
  display: block;
}
<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--Importing CSS file-->

<head>
  <link rel="stylesheet" href="home.css">
</head>
<!--End of import-->

<body>

  <ul class="topnav">
    <li><a class="active" href="home.html">Home</a></li>
    <li class="dropdown">
      <a href="javascript:void(0)" class="dropbtn">VCT Operation</a>
      <div class="dropdown-content">
        <a href="mainFrame.asp">Conduct Operation</a>
        <a href="report.asp">View Reports</a>
      </div>
    </li>
    <li><a href="contact.html">Contact</a></li>
  </ul>

</body>

</html>

2 个答案:

答案 0 :(得分:2)

我向display:flex添加了ul.topnav,但请确保使用媒体查询,以便您可以按所需的分辨率显示。我添加display:flex的原因是我可以在列中对齐它们。

@media (max-width:760px) {
  ul.topnav {
    display: flex;
    flex-direction: column;
  }

}

您还可以向width添加padding和另一个ul.topnav li a,以便每个a具有相同的宽度。

@media (max-width:760px) {
  ul.topnav li a {
    width: 46%;
    padding:20px 20px 20px 103px;
    text-align: left;
  }
}

示例:(将分辨率更改为760px)

https://jsfiddle.net/fzy7cysf/1/

答案 1 :(得分:0)

删除a标记中的填充添加width:100%padding 10px 0 : li宽度将为&#33; 33.3%`

ul.topnav li { width:33.3%;}
ul.topnav li a { display:inline-block; width:100%; padding:12px 0;}