[HTML/CSS] css en div probleem in menuontwerp

Pagina: 1
Acties:

  • Erwin.MvdB
  • Registratie: December 2004
  • Laatst online: 24-12-2019
Een vraag aan de specialisten, want ik kom er niet meer uit.
Ik ben bezig om in css een verticaal menu ontwerp te maken, waarbij <ul> het geheel steeds laat inspringen bij een menukeuze. Bij het afsluiten van <ul> ontstaan er echter dubbele lijnen. (In onderstaande code / voorbeeld is dit na submenuitem2 en submenu5). Wie wil eens kijken en kan mij zeggen wat ik fout doe.


De html source ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HEAD>
<TITLE>Ontwerp NavBar</TITLE>
<link href="navbar.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<!-- Submenu -->
<div id="navbar">
<div id="smenu">
    <ul>
        <li><a href="#">Menu1</a></li>
        <li><a href="#">Menu2</a></li>
        <li class="menu"><a href="#">Menu3</a></li>
            <li class="menu-level1">
            <ul>
                <li><a href="#">Submenu1</a></li>
                <li><a href="#">Submenu2</a></li>
                <li class="submenu"><a href="#">Submenu3</a></li>
                    <li>
                    <ul>
                        <li class="submenuitem"><a href="#">Submenuitem1</a></li>
                        <li class="submenuitem"><a href="#">Submenuitem2</a></li>
                    </ul>
                    </li>
                <li><a href="#">Submenu4</a></li>
                <li><a href="#">Submenu5</a></li>
            </ul>
            </li>
        <li><a href="#">Menu4</a></li>
        <li><a href="#">Menu5</a></li>
    </ul>
</div>
</div>
<!-- /Submenu -->
</BODY>
</HTML>


En de css zier op dit moment zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
body {
    background: #e3e3e3;
    margin: 0px;
    padding: 0;
    font-family: tahoma, verdana,sans-serif;
    font-size: 12px;
    color: #333;
    }

#navbar {
    float: left;
    width: 198px;
    max-width: 27%;
    margin: 0px;
    }
    
#navbar ul, li {
    font-size:11px;
    line-height:147%;
    margin:0 0 10px 0;
    padding:0;
    }

#navbar li {
    margin:0.1em 0 0 0;
    list-style-position:outside;
    font-size: 11px;
    }


#smenu {
    margin-bottom: 20px;
    }

#smenu a /* Menu */  {
    text-decoration: none;
    display: block;
    color: #3f526b;
    padding: 1px 5px;
    }
    
#smenu ul {
    margin: 0px;
    }
    
#smenu ul ul {
    margin: 0px;
    }

#smenu ul ul ul {
    margin: 0px;
    }

#smenu li {
    background: #f1f1f1;
    list-style-type: none;
    margin: 0px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #bec9d1;
    }

#smenu li a:hover {
    background: #ffffff;
    }

#smenu li li {
    background: #f6f6f6;
    }
    
#smenu li li a {
    padding-left: 15px;
    }

#smenu li li li {
    background: #f6f6f6;
    list-style-type: none;
    margin: 0px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #bec9d1;
    }

#smenu li li li a {
    padding-left: 25px;
    }
    
#smenu li.menu {
    font-weight: bold;
    background: #f1f1f1;
    }

#smenu li.menu-level1 {
    font-weight: normal;
    background: #f6f6f6;
}

#smenu li.submenu {
    font-weight: bold;
    background: #f6f6f6;
    }

#smenu li.submenu-level1 {
    font-weight: normal;
    background: #ffffff;
}

#smenu li.submenuitem {
    font-weight: normal;
    background: #f5f7f9;
    list-style-type: none;
    margin: 0px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #bec9d1;
}

Verwijderd

welk van deze topics heb je niet kunnen vinden?
[rml][ IE] Ruimte tussen <LI>'s als deze niet op 1 regel staan[/rml]
[rml][ CSS] inline <ul> menu, ruimte tussen <li> elementen?[/rml]

edit: wat een ver-schrik-ke-lijk bloated CSS trouwens, dat kan minstens de helft korter

[ Voor 22% gewijzigd door Verwijderd op 12-08-2005 12:20 ]


  • Erwin.MvdB
  • Registratie: December 2004
  • Laatst online: 24-12-2019
Verwijderd schreef op vrijdag 12 augustus 2005 @ 12:16:
welk van deze topics heb je niet kunnen vinden?
[rml][ IE] Ruimte tussen <LI>'s als deze niet op 1 regel staan[/rml]
[rml][ CSS] inline <ul> menu, ruimte tussen <li> elementen?[/rml]

edit: wat een ver-schrik-ke-lijk bloated CSS trouwens, dat kan minstens de helft korter
Ik heb beide topics gelezen, maar met de 1e heb ik geen probleem (wel getest trouwens) en bij de 2e gaat (zover ik kan beoordelen) over hoe IE er 'verkeerd' mee omgaat, en bij mij is het resultaat in IE, FF en Opera hetzelfde.

Verwijderd

De basis van je "probleem" komt voor uit het volgende:

HTML:
code:
1
2
3
4
5
...
            </li>
        </ul>
    </li>
</ul>


CSS:
code:
1
2
3
li {
    border-bottom: 1px solid #bec9d1;
}


Je ziet in de HTML-code dat twee list-items na elkaar worden afgesloten. Omdat beide worden voorzien van een border-bottom van 1px, is het te verwachten dat je een lijn van 2px krijgt na de afsluiting van een submenu.

offtopic:
Tip #1 : gebruik meer kleurverschil in de achtergrondkleuren van je menu, want zonder code had ik nooit de verschillende kleuren opgemerkt op mijn TFT-scherm.
Tip #2 : stop je submenu (<ul>..</ul>) in hetzelfde list-item als het label, omdat het daar ook een onderdeel van is. Schakel in Firefox maar eens CSS uit (CTRL+SHIFT+S) en bekijk het verschil.