[html/css] probleem met hover op css content

Pagina: 1
Acties:

  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Topicstarter
Ik heb een simpel css menutje gemaakt. Gewoon op de standaard manier, met geneste <ul>'s:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<ul id="menu">
    <li><a href="" id="mnu_hoofdmenu">Hoofdmenu</a></li>
    <li>
        <a href="" id="mnu_modules">Modules</a>
        <ul>
            <li><a href="" id="mnu_nieuws">Nieuws</a></li>
            <li><a href="" id="mnu_fotoboek">Fotoboek</a></li>
            <li><a href="" id="mnu_nieuwsbrief">Nieuwsbrief</a></li>
            <li><a href="" id="mnu_zoekfunctie">Zoekfunctie</a></li>
            <li><a href="" id="mnu_vraagantwoord">Vraag &amp; Antwoord</a></li>
            <li><a href="" id="mnu_maillijst">Maillijst</a></li>
            <li><a href="" id="mnu_kalender">Kalender</a></li>
        </ul>
    </li>
    <li><a href="" id="mnu_layout">Layout</a></li>
    <li><a href="" id="mnu_tekstpaginas">Tekstpagina's</a></li>
    <li><a href="" id="mnu_gebruikers">Gebruikers</a></li>
    <li><a href="" id="mnu_instellingen">Instellingen</a></li>
    <li><a href="" id="mnu_beveiliging">Beveiliging</a></li>
    <li><a href="" id="mnu_help">Help</a></li>
</ul>


Met CSS zet ik de opties naast elkaar, en zorg ik voor een scheiding van de opties met een | :
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
ul#menu li:before
{
    content: ' |';
}

ul#menu li:first-child:before
{
    content: '';
}


Vervolgens laat ik bij een hover op de elementen een eventueel submenu zien:

Cascading Stylesheet:
1
2
3
4
ul#menu li:hover ul
{
    display: block;
}


Het probleem hierbij is dat het submenu ook al tevoorschijn komt als je over de | links van de optie hovert. Ik begrijp waarom dit gebeurt, maar ik kan absoluut geen oplossing bedenken om dit probleem op te lossen. Google en de GoT search leveren niets op.

Ik ontken het bestaan van IE.


  • user109731
  • Registratie: Maart 2004
  • Niet online
Je kan a:hover gebruiken ipv li:hover, maar dan moet je ipv het kind z'n broertje laten weergeven :).
Zoiets dus:
Cascading Stylesheet:
1
2
3
ul#menu li a:hover + ul {
    display: block;
}

Komt die 'adjacent sibling' selector ook nog eens van pas :)
Ik weet niet precies wat je verder allemaal gebruikt, dus of het werkt weet ik niet zo, maar ik verwacht het wel.

[ Voor 7% gewijzigd door user109731 op 19-05-2006 11:21 ]


  • remcotolsma
  • Registratie: December 2005
  • Laatst online: 09-10-2025
En wat als je het zo doet:

Cascading Stylesheet:
1
2
3
ul#menu li a:hover + ul {
    display: block;
}


Edit: Grote prutser was me voor

[ Voor 19% gewijzigd door remcotolsma op 19-05-2006 11:24 ]


  • samo
  • Registratie: Juni 2003
  • Laatst online: 21-02 17:05

samo

yo/wassup

Als het goed is hovert heel jouw li, en niet jouw anchor tekst. Dus klopt het dat de | ook meehovert. Als je padding zou toepassen, hovert dat ook...

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


  • user109731
  • Registratie: Maart 2004
  • Niet online
- reactie op een reeds aangepaste post :)

[ Voor 91% gewijzigd door user109731 op 19-05-2006 11:25 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

tsja:
Cascading Stylesheet:
1
2
3
4
ul#menu li:before
{
    content: ' |';
} 
The ':before' and ':after' pseudo-elements can be used to insert generated content before or after an element's content.
logisch dus, je insert geen content voor het element (dat zou hier zelfs invalid zijn aangezien UL enkel LI mag bevatten en geen content) maar binnen het element voor de rest van de content :)

[ Voor 24% gewijzigd door crisp op 19-05-2006 11:36 ]

Intentionally left blank


  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Topicstarter
@Grote prutser: dat ik daar zelf niet op gekomen ben, ik schaam me diep :@ . Het werkt i.i.g. prima :) .

@crisp: daar heb je gelijk in. Ik schreef ook dat ik wel begreep waarom het gebeurde, alleen niet hoe ik het kon oplossen.

Ik ontken het bestaan van IE.

Pagina: 1