Heim  >  Fragen und Antworten  >  Hauptteil

Mittleres Dropdown-Menü in der Navigationsleiste

Ich habe dieses CSS/HTML erstellt.

    
.navbar {
  width: 100%;
  background-color: rgb(151, 44, 44);
  overflow: auto;
}

.navbar a {
  border-right:1px solid #f5b7b7;
  float: left;
  padding: 8px;
  color: white;
  text-decoration: none;
  font-size: 1.5vh;
  width: 25%; /* Four links of equal widths */
  text-align: center;
}

.navbar a:hover {
  background-color: rgb(92, 25, 25);
}

.navbar a.active {
  background-color: #04AA6D;
}

/* ************************************************************** */

/* DROPDOWN */


.dropdown {
  float: left; 
  overflow: hidden;
  
}


.dropdown .dropbtn {
  font-size: 1.5vh;  
  border: none;
  outline: none;
  color: white;
  padding: 8px;
  background-color: inherit;
  font-family: inherit;
  margin: 0;
}


.dropdown:hover .dropbtn {
  background-color:  rgb(92, 25, 25);
}

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

.dropdown-content a {
  float: none;
  color: rgb(0, 0, 0);
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
  width: 100%;
}

.dropdown-content a:hover {
  background-color: #ddd;
}

.dropdown:hover .dropdown-content {
  display: block;
}

    
<!DOCTYPE html>
<html>

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    
</head>

<body>

    <div class="navbar" id="tree">
        <a  href= "/">Home1</a> 
        <a  href= "/">Home2</a> 
        <a  href= "/">Home3</a> 
        
        <div class="dropdown">
          <button class="dropbtn" >&nbsp;TOPICS &nbsp; ▼&nbsp;</button>
          <div class="dropdown-content">
            <a href="#">t1</a>
            <a href="#">t2</a>
            <a href="#">t3</a>
          </div>
      </div>
</body>

</html>

Aber es gibt zwei Probleme.

Frage 1 – Dropdown-Menü kann nicht zentriert werden. Wenn Sie den folgenden Code verwenden, wird er zentriert, es werden jedoch Bildlaufleisten für unterschiedliche Auflösungen und Geräte usw. erstellt.

.dropdown {
  float: left; 
  overflow: hidden;
  position: relative;
  transform: translate(150%,0%)
}

Frage 2 – Die Dropdown-Schaltfläche wird nicht auf ihre gesamte 25 %-Fläche erweitert (dasselbe gilt für andere Schaltflächen). d.h. Hover funktioniert nur beim Text „TOPIC V“

Irgendeine Idee, warum es passiert. Ich kann es seit 2 Tagen nicht lösen;[

P粉285587590P粉285587590168 Tage vor335

Antworte allen(1)Ich werde antworten

  • P粉460377540

    P粉4603775402024-04-05 14:09:25

    对于第一个问题,使用 flexbox 来对齐项目。

    .navbar {
      ...
      display: flex;
    }
    .dropdown {
      ...
      width: 25%;
      text-align: center;
    }
    

    对于第二个问题,需要将宽度设置为100%。检查下面的代码片段以了解更多详细信息。

    .dropdown .dropbtn {
      ...
      width: 100%;
    }
    

        
    .navbar {
      width: 100%;
      background-color: rgb(151, 44, 44);
      overflow: auto;
      display: flex;
    }
    
    .navbar a {
      border-right:1px solid #f5b7b7;
      float: left;
      padding: 8px;
      color: white;
      text-decoration: none;
      font-size: 1.5vh;
      width: 25%; /* Four links of equal widths */
      text-align: center;
    }
    
    .navbar a:hover {
      background-color: rgb(92, 25, 25);
    }
    
    .navbar a.active {
      background-color: #04AA6D;
    }
    
    /* ************************************************************** */
    
    /* DROPDOWN */
    
    
    .dropdown {
      float: left; 
      overflow: hidden;
      width: 25%;
      text-align: center;
    }
    
    
    .dropdown .dropbtn {
      font-size: 1.5vh;  
      border: none;
      outline: none;
      color: white;
      padding: 8px;
      background-color: inherit;
      font-family: inherit;
      margin: 0;
      width: 100%;
    }
    
    
    .dropdown:hover .dropbtn {
      background-color:  rgb(92, 25, 25);
    }
    
    .dropdown-content {
      display: none;
      position: absolute;
      background-color: #f9f9f9;
      min-width: 200px;
      box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
      z-index: 1;
    }
    
    .dropdown-content a {
      float: none;
      color: rgb(0, 0, 0);
      padding: 12px 16px;
      text-decoration: none;
      display: block;
      text-align: left;
      width: 100%;
    }
    
    .dropdown-content a:hover {
      background-color: #ddd;
    }
    
    .dropdown:hover .dropdown-content {
      display: block;
    }
    
        
    
    
    
    
        
        
    
    
    
    
        

    Antwort
    0
  • StornierenAntwort