Heim > Fragen und Antworten > Hauptteil
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" > TOPICS ▼ </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粉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; }