Interfaith
Interfaith

Reputation: 145

Width of UL issue, css width not working

The example I have is: http://www.interfaithmedical.com/sfish/example.html

It contains an html tag:

<ul class="sf-menu">

I want to stretch the width of UL to exactly 960px. Each LI is evenly stretched and be able to put it inside a DIV without any padding. I tried adding width to the main UL:

.sf-menu ul {
    position: absolute;
    top: -999em;
    width: 960px;
}

But it the width is not set to 960px. The width: property seems to be ineffective.

Here is the HTML file:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">  
  <head>
    <title>A very basic Superfish menu example</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link rel="stylesheet" type="text/css" href="css/superfish.css" media="screen">
    <script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/hoverIntent.js"></script>
    <script type="text/javascript" src="js/superfish.js"></script>
    <script type="text/javascript">
      // initialise plugins
      jQuery(function () {
        jQuery('ul.sf-menu').superfish();
      });
    </script>
  </head>

  <body>
    <div style="width: 960px; height: 2.2em; border: 1px solid blue;">
      <ul class="sf-menu">
        <li class="current"> <a href="#a">Medical Services</a>
          <ul>
            <li><a href="#aa">Behavioral Health</a></li>
            <li><a href="#aa">Clinical Labrotary</a></li>
            <li><a href="#aa">Dentistry</a></li>
            <li><a href="#aa">Emergency</a></li>
            <li><a href="#aa">Gynecology</a></li>
            <li><a href="#aa">Medicine</a></li>
            <li><a href="#aa">Pastoral</a></li>
            <li><a href="#aa">Pediatrics</a></li>
            <li><a href="#aa">Physical Medicine & Rehab</a></li>
            <li><a href="#aa">Radiology</a></li>
            <li><a href="#aa">Surgery</a></li>
            <li><a href="#aa">Women's Health</a></li>
            <li><a href="#aa">Other Services</a></li>
          </ul>
        </li>

        <li class="current"> <a href="#a">About Us</a>
          <ul>
            <li><a href="#aa">Behavioral Health</a></li>
            <li><a href="#aa">Clinical Labrotary</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
          </ul>
        </li>

        <li class="current"> <a href="#a">Medical Educations</a>
          <ul>
            <li><a href="#aa">Behavioral Health</a></li>
            <li><a href="#aa">Clinical Labrotary</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
          </ul>
        </li>

        <li class="current"> <a href="#a">Patients & Visitors</a>
          <ul>
            <li><a href="#aa">Behavioral Health</a></li>
            <li><a href="#aa">Clinical Labrotary</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
            <li><a href="#aa">menu item that is quite long</a></li>
          </ul>
        </li>

        <li><a href="findDoctors.php" class="navlink">Find a Doctor</a></li>
        <li><a href="contactUs.php" class="navlink">Contact Us</a></li>
      </ul>
    </div>
  </body>
</html>

Here is the CSS file superfish.css:

/*** ESSENTIAL STYLES ***/
* {
    padding: 0;
    margin: 0;
}

.sf-menu, .sf-menu * {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sf-menu {
    line-height: 1.0;
}

.sf-menu ul {
    position: absolute;
    top: -999em;
    width: 10em;
 /* left offset of submenus need to match (see below) 10em */
}

#trt {
    width: 20em;
}

.sf-menu ul li {
    width: 100%;
}

.sf-menu li:hover {
    visibility: inherit;
 /* fixes IE7 'sticky bug' */
}

.sf-menu li {
    float: left;
    position: relative;
}

.sf-menu a {
    display: block;
    position: relative;
}

.sf-menu li:hover ul,
    .sf-menu li.sfHover ul {
    left: 0;
    top: 2.2em;
 /* match top ul list item height */
    z-index: 99;
}

ul.sf-menu li:hover li ul,
    ul.sf-menu li.sfHover li ul {
    top: -999em;
}

ul.sf-menu li li:hover ul,
    ul.sf-menu li li.sfHover ul {
    left: 10em;
 /* match ul width */
    top: 0;
}

ul.sf-menu li li:hover li ul,
    ul.sf-menu li li.sfHover li ul {
    top: -999em;
}

ul.sf-menu li li li:hover ul,
    ul.sf-menu li li li.sfHover ul {
    left: 10em;
 /* match ul width */
    top: 0;
}

    /*** DEMO SKIN ***/
.sf-menu {
    float: left;
    margin-bottom: 1em;
}

.sf-menu a {
    border-left: 1px solid #fff;
    border-top: 1px solid #CFDEFF;
    padding: .75em 1em;
    text-decoration: none;
}

.sf-menu a, .sf-menu a:visited {
 /* visited pseudo selector so IE6 applies text colour*/
    color: #FFFFFF;
    font-family: Verdana;
    font-size: 13px;
}

.sf-menu li {
    background: #1B83EF;
}

.sf-menu li li {
    background: #1B83EF;
}

.sf-menu li:hover, .sf-menu li.sfHover,
    .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
    background: #12ACFC;
    outline: 0;
}

    /*** arrows **/
.sf-menu a.sf-with-ul {
    padding-right: 2.25em;
    min-width: 1px;
 /* trigger IE7 hasLayout so spans position accurately */
}

.sf-sub-indicator {
    position: absolute;
    display: block;
    right: .75em;
    top: 1.05em;
 /* IE6 only */
    width: 10px;
    height: 10px;
    text-indent: -999em;
    overflow: hidden;
    background: url('../images/arrows-ffffff.png') no-repeat -10px -100px;
 /* 8-bit indexed alpha png. IE6 gets solid image only */
}

a > .sf-sub-indicator {
  /* give all except IE6 the correct values */
    top: .8em;
    background-position: 0 -100px;
 /* use translucent arrow for modern browsers*/
}
    /* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
    a:hover > .sf-sub-indicator,
    a:active > .sf-sub-indicator,
    li:hover > a > .sf-sub-indicator,
    li.sfHover > a > .sf-sub-indicator {
    background-position: -10px -100px;
 /* arrow hovers for modern browsers*/
}

    /* point right for anchors in subs */
.sf-menu ul .sf-sub-indicator {
    background-position: -10px 0;
}

.sf-menu ul a > .sf-sub-indicator {
    background-position: 0 0;
}
    /* apply hovers to modern browsers */
.sf-menu ul a:focus > .sf-sub-indicator,
    .sf-menu ul a:hover > .sf-sub-indicator,
    .sf-menu ul a:active > .sf-sub-indicator,
    .sf-menu ul li:hover > a > .sf-sub-indicator,
    .sf-menu ul li.sfHover > a > .sf-sub-indicator {
    background-position: -10px 0;
 /* arrow hovers for modern browsers*/
}

    /*** shadows for all but IE6 ***/
.sf-shadow ul {
    background: url('../images/shadow.png') no-repeat bottom right;
    padding: 0 8px 9px 0;
    -moz-border-radius-bottomleft: 17px;
    -moz-border-radius-topright: 17px;
    -webkit-border-top-right-radius: 17px;
    -webkit-border-bottom-left-radius: 17px;
}

.sf-shadow ul.sf-shadow-off {
    background: transparent;
}

Upvotes: 0

Views: 2000

Answers (1)

Eric Leschinski
Eric Leschinski

Reputation: 153882

Keep breaking the problem down into simpler and simpler pieces until it starts working correctly. Take out unnecessary bits of code to make the simplest possible <ul><li></li></ul> list, then take out the bits of unnecessary CSS in your CSS file. It's a process of elimination to find out what is preventing the width attribute from taking effect. It could be that something in superfish is overriding your width attribute.

There are numerous syntax errors in your CSS. To find out the exact nature of how superfish isn't playing nice with your CSS code, you will have to simplify it and remove the syntax errors. CSS is very forgiving, it lets you put nonsense in there and it'll try to interpret it. In this case, You've got curly braces that don't line up with others. Gotta get back to basics and remove the syntax errors.

Upvotes: 2

Related Questions