I made this CSS/HTML.
.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>
But there are two problems.
Question 1 - Unable to center dropdown menu. Using the code below it centers but creates scrollbars on different resolutions and devices etc.
.dropdown { float: left; overflow: hidden; position: relative; transform: translate(150%,0%) }
Question 2 - The dropdown button does not expand to its entire 25% area (the same goes for other buttons). i.e. Hover only works on the text "TOPIC V"
Any ideas why this is happening.. Can't fix it since 2 days;[
P粉4603775402024-04-05 14:09:25
For the first problem, use flexbox to align the items.
.navbar { ... display: flex; } .dropdown { ... width: 25%; text-align: center; }
For the second question, the width needs to be set to 100%
. Check the code snippet below for more details.
.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; }