drop down menu width arrangement

2019-07-22 09:46发布

问题:

I have a site of width 990px to view Click Here. Just I install a multiple layer drop down menu. If you see on this site I have 6 categories on the drop down menu and after that a blank space. I want all the categories to arrange fully without space.

my css code is

  /* Page */
body,html,div,blockquote,img,label,p,h1,h2,h3,h4,h5,h6,pre,ul,ol,li,dl,dt,dd,form,a,fieldset,input,th,td{border:0;outline:none;margin:0;padding:0;}
ul{list-style:none;}

body {font: normal 13px Arial, sans-serif;}
h2 {font: normal 26px Arial, sans-serif; padding: 20px 0; margin: 0 0 30px 0;}
.wrap {width: 990px; margin: 0 auto;}
.demo-container {padding: 0 0;}
.demo-container h4 {font-size: 14px; margin: 0 0 5px 0;}

/* Mega Menu Styles */
.mega-menu ul, .mega-menu ul li {list-style: none;}
.mega-menu ul {position: relative; padding: 0; margin: 0;}
.mega-menu ul li ul {display: none;}
.mega-menu .sub {display: none;}
.mega-menu .sub ul {display: block;}

#mega-menu-1 {
font: normal 13px Arial, sans-serif; 
list-style: none; 
position: relative; 
padding: 0; 
margin: 0;
}
#mega-menu-1 .sub ul {
display: block;
}
#mega-menu-1 {
background: #222; 
width: 100%; 
height: 40px;
position: relative;
}
#mega-menu-1 li {
float: left; 
margin: 0; 
padding: 0; 
font-weight: bold;
}
#mega-menu-1 li a {
float: left; 
display: block; 
color: #fff; 
padding: 12px 25px; 
background: #222; 
text-decoration: none;
}
#mega-menu-1 li.mega-hover a, #mega-menu-1 li.mega-hover a:hover {
background: #CCC; 
color: #000;
}
#mega-menu-1 li a:hover {
background: #999; 
color: #000;
}
#mega-menu-1 li .sub-container {
position: absolute;
}
#mega-menu-1 li .sub {
background: #efefef; 
padding: 15px; 
border: 1px solid #ccc;
}
#mega-menu-1 li .sub .row {
width: 100%; 
overflow: hidden;
clear: both;
}
#mega-menu-1 li .sub li {
list-style: none; 
float: none; 
width: 170px; 
font-size: 1em; 
font-weight: normal;
}
#mega-menu-1 li .sub li.mega-hdr {
margin: 0 10px 10px 0; 
float: left;
}
#mega-menu-1 li .sub li.mega-hdr.last {
margin-right: 0;
}
#mega-menu-1 li .sub a {
background: none; 
color: #111; 
padding: 7px 10px; 
display: block; 
float: none; 
font-size: 0.9em;
}
#mega-menu-1 li .sub li.mega-hdr a.mega-hdr-a {
padding: 5px 15px; 
margin-bottom: 5px; 
background: #6B6B6B; 
text-transform: uppercase; 
font-weight: bold; 
color: #fff;
}
#mega-menu-1 li .sub li.mega-hdr a.mega-hdr-a:hover {
color: #000;
}
#mega-menu-1 .sub li.mega-hdr li a {
padding: 4px 5px; 
font-weight: normal;
}
#mega-menu-1 .sub li.mega-hdr li a:hover {
color: #a32403; 
background: #efefef;
}
#mega-menu-1 .sub ul li {
padding-right: 0;
}
#mega-menu-1 li .sub-container.non-mega .sub {
padding: 10px;
}
#mega-menu-1 li .sub-container.non-mega li {
padding: 0; 
width: 190px; 
margin: 0;
}
#mega-menu-1 li .sub-container.non-mega li a {
padding: 7px 5px 7px 22px;
}
#mega-menu-1 li .sub-container.non-mega li a:hover {
color: #a32403; 
background: #efefef;
}

I have another file called green.css and the codes are below

.mega-menu ul, .mega-menu ul li {list-style: none;}
.mega-menu ul {position: relative; padding: 0; margin: 0;}
.mega-menu ul li ul {display: none;}
.mega-menu .sub {display: none;}
.mega-menu .sub ul {display: block;}

.green {font: normal 13px Arial, sans-serif; line-height: 16px;}
.green ul.mega-menu, .green ul.mega-menu, .green ul.mega-menu li {margin: 0; padding: 0; border: none;}
.green ul.mega-menu {background: #222 url(images/bg_green.png) repeat-x 0 -80px; width: 100%; height: 40px; border-right: 1px solid #44b3ff; border-left: 1px solid #44b3ff; position: relative;}
.green ul.mega-menu li {float: left; margin: 0; padding: 0; font-size: 13px; font-weight: bold;}
.green ul.mega-menu li a {float: left; display: block; color: #000; padding: 12px 38px 12px 25px; background: url(images/bg_green.png) repeat-x 100% 0; text-shadow: 1px 1px 1px #fff; text-decoration: none;}
.green ul.mega-menu li a.dc-mega {position: relative;}
.green ul.mega-menu li a .dc-mega-icon {display: block; position: absolute; width: 8px; height: 6px;  top: 18px; right: 15px; background: url(images/arrow.png) no-repeat 0 100%;}
.green ul.mega-menu li.mega-hover a, .green ul.mega-menu li a:hover {background-position: 100% -40px; color: #000; text-shadow: none;}
.green ul.mega-menu li.mega-hover a .dc-mega-icon {background-position: 0 100%;}
.green ul.mega-menu li .sub-container {position: absolute; background: url(images/bg_sub_left.png) no-repeat 0 100%; padding-left: 20px; margin-left: -3px;}
.green ul.mega-menu li .sub {background: url(images/bg_sub.png) no-repeat 100% 100%; padding: 20px 20px 20px 10px;}
.green ul.mega-menu li .sub-container.mega .sub {padding: 20px 20px 10px 0;}
.green ul.mega-menu li .sub .row {width: 100%; overflow: hidden; clear: both;}
.green ul.mega-menu li .sub li {list-style: none; float: none; width: 170px; font-size: 1em; font-weight: normal;}
.green ul.mega-menu li .sub li.mega-hdr {margin: 0 10px 10px 0; float: left;}
.green ul.mega-menu li .sub li.mega-hdr.last {margin-right: 0;}
.green ul.mega-menu li .sub a {background: none; border: none; text-shadow: none; color: #111; padding: 7px 10px; display: block; float: none; text-decoration: none; font-size: 0.9em;}
.green ul.mega-menu li .sub li.mega-hdr a.mega-hdr-a {padding: 5px 5px 5px 15px; margin-bottom: 5px; background: #4EC3F3 url(images/bg_mega_hdr.png) no-repeat 0 0; text-transform: uppercase; font-weight: bold; color: #000; text-shadow: 1px 1px 1px #fff;}
.green ul.mega-menu li .sub li.mega-hdr a.mega-hdr-a:hover {color: #fff; text-shadow: none;}
.green ul.mega-menu .sub li.mega-hdr li a {padding: 4px 5px 4px 20px; background: url(images/arrow_off.png) no-repeat 5px 8px; font-weight: normal;}
.green ul.mega-menu .sub li.mega-hdr li a:hover {color: #a32403; background: #efefef url(images/arrow_on.png) no-repeat 5px 8px;}
.green ul.mega-menu .sub ul li {padding-right: 0;}
.green ul.mega-menu li .sub-container.non-mega .sub {padding: 20px 20px 20px 0;}
.green ul.mega-menu li .sub-container.non-mega li {padding: 0; width: 190px; margin: 0;}
.green ul.mega-menu li .sub-container.non-mega li a {padding: 7px 5px 7px 22px; background: url(images/arrow_off.png) no-repeat 7px 10px;}
.green ul.mega-menu li .sub-container.non-mega li a:hover {color: #a32403; background: #efefef url(images/arrow_on.png) no-repeat 7px 10px;}

Please suggest me how to solve this issue.. thanks...

回答1:

.green ul.mega-menu li a {
float: left;
display: block;
color: black;
padding: 12px 38px 12px 25px;
background: url(images/bg_green.png) repeat-x 100% 0;
text-shadow: 1px 1px 1px white;
text-decoration: none;
width: 102px;
text-align: center;
}

instead of the that you have already

and then a little jquery addon to remove the last splitter

$('.green ul.mega-menu li:last-child a').css('background','none');

EDIT for better looking buttons

.green ul.mega-menu li a .dc-mega-icon {
display: block;
position: absolute;
width: 8px;
height: 6px;
top: 18px;
right: 12%;
background: url(images/arrow.png) no-repeat 0 100%;
}

EDIT REPLY use this following css

.green {font: normal 13px Arial, sans-serif; line-height: 16px;}
.green ul.mega-menu, .green ul.mega-menu, .green ul.mega-menu li {margin: 0; padding: 0; border: none;}
.green ul.mega-menu {background: #222 url(images/bg_green.png) repeat-x 0 -80px; width: 100%; height: 40px; border-right: 1px solid #44b3ff; border-left: 1px solid #44b3ff; position: relative;}
.green ul.mega-menu li {float: left; margin: 0; padding: 0; font-size: 13px; font-weight: bold;}
.green ul.mega-menu li a {float: left; display: block; color: black; padding: 12px 38px 12px 25px; background: url(images/bg_green.png) repeat-x 100% 0; text-shadow: 1px 1px 1px white; text-decoration: none; width: 102px; text-align: center;}
.green ul.mega-menu li a.dc-mega {position: relative;}
.green ul.mega-menu li a .dc-mega-icon {display: block; position: absolute; width: 8px; height: 6px; top: 18px; right: 12%; background: url(images/arrow.png) no-repeat 0 100%;}
.green ul.mega-menu li.mega-hover a, .green ul.mega-menu li a:hover {background-position: 100% -40px; color: #000; text-shadow: none;}
.green ul.mega-menu li.mega-hover a .dc-mega-icon {background-position: 0 100%;}
.green ul.mega-menu li .sub-container {position: absolute; background: url(images/bg_sub_left.png) no-repeat 0 100%; padding-left: 20px; margin-left: -3px;}
.green ul.mega-menu li .sub {background: url(images/bg_sub.png) no-repeat 100% 100%; padding: 20px 20px 20px 10px;}
.green ul.mega-menu li .sub-container.mega .sub {padding: 20px 20px 10px 0;}
.green ul.mega-menu li .sub .row {width: 100%; overflow: hidden; clear: both;}
.green ul.mega-menu li .sub li {list-style: none; float: none; width: 170px; font-size: 1em; font-weight: normal;}
.green ul.mega-menu li .sub li.mega-hdr {margin: 0 10px 10px 0; float: left;}
.green ul.mega-menu li .sub li.mega-hdr.last {margin-right: 0;}
.green ul.mega-menu li .sub a {background: none; border: none; text-shadow: none; color: #111; padding: 7px 10px; display: block; float: none; text-decoration: none; font-size: 0.9em;}
.green ul.mega-menu li .sub li.mega-hdr a.mega-hdr-a {padding: 5px 5px 5px 15px; margin-bottom: 5px; background: #4EC3F3 url(images/bg_mega_hdr.png) no-repeat 0 0; text-transform: uppercase; font-weight: bold; color: #000; text-shadow: 1px 1px 1px #fff;}
.green ul.mega-menu li .sub li.mega-hdr a.mega-hdr-a:hover {color: #fff; text-shadow: none;}
.green ul.mega-menu .sub li.mega-hdr li a {padding: 4px 5px 4px 20px; background: url(images/arrow_off.png) no-repeat 5px 8px; font-weight: normal;}
.green ul.mega-menu .sub li.mega-hdr li a:hover {color: #a32403; background: #efefef url(images/arrow_on.png) no-repeat 5px 8px;}
.green ul.mega-menu .sub ul li {padding-right: 0;}
.green ul.mega-menu li .sub-container.non-mega .sub {padding: 20px 20px 20px 0;}
.green ul.mega-menu li .sub-container.non-mega li {padding: 0; width: 190px; margin: 0;}
.green ul.mega-menu li .sub-container.non-mega li a {padding: 7px 5px 7px 22px; background: url(images/arrow_off.png) no-repeat 7px 10px;}
.green ul.mega-menu li .sub-container.non-mega li a:hover {color: #a32403; background: #efefef url(images/arrow_on.png) no-repeat 7px 10px;}



回答2:

You can add

display: table; 

to the ul and

display: table-cell; 

to the lis instead of floating.

This would lead to something like:

.green ul.mega-menu {
    display: table;
}
.green ul.mega-menu li {
    display: table-cell;
    float: none;
}

BTW: do you really think marquee is a good idea?