/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
hover og focus
Fra : Jens R. Rasmussen


Dato : 29-08-10 20:56

Hej/

på min hjememside vinvenner.dk har jeg en venstrestillet menu. Nu
skal jeg til at lave undermenuer, og jeg faldt så over Jørgen
Farum Jensens artikkel 'CSS dropdown menu og menubar', som jeg
har fulgt. Og det virker fint med hover og mus.

Nu vil jeg gerne også have samme effekt med TAB-tasten. I
forvejen kan jeg bruge TAB-tasen på hovedmenuen. Men jeg mangler
(mindst) 2 ting.

1) ligesom ved hover vil jeg godt med TAB have baggrundsfarven
ændret på hovedmenuen, når jeg TAB'per hen over den.

2) ligesom med hover vil jeg godt have undermenuen frem, når jeg
kommer til menupunktet 'Medlemmer'

I mit css står bl.a.
a:visited {color:black;}
a:hover, a:focus {font-style:italic; font-weight:bold;}
#menubar {
margin-top:5px;
margin-left:5px;
height:80%;
padding-top:5px;
padding-right:5px;
padding-bottom:5px;
float:left; width:10em; color:black;}

#menubar ul {
margin: 0;
padding-left: 0;
list-style: none;
width: 9.9em;
border-width: 1px 1px 0 1px;
border-style: solid;
border-color:#257;
background-color:#ccffff;}

#menubar li {
position: relative;
list-style: none;
margin: 0; padding:0;
border-bottom: 1px solid #257;}

#menubar li.menupil {
background-image:url("billeder/pil22.gif");
background-position:right center;
background-repeat:no-repeat;}

#menubar ul ul {
position: absolute;
top: -1px;
left: 9.9em;
display: none;
background-color: #ccffff;
z-index:2;}

#menubar li:hover {
background-color: lightgreen;
font-style:italic; font-weight:bold;}

#menubar ul.niveau1 li.menupil:hover ul.niveau2 {
display: block;}

#menubar li a {
display: block;
padding: 0.25em 0 0.25em 0.5em;
text-decoration: none;
width:10.5em;
}

#menubar>ul a {width: auto;}


Og nu troede jeg, at jeg blot kan ændre følgende for at få TAB-
til at opføre sig lige som mouse:

#menubar li:hover, li:focus {
background-color: lightgreen;
font-style:italic; font-weight:bold;}

#menubar ul.niveau1 li.menupil:hover, li.menupil:focus ul.niveau2
{
display: block;}

men jeg får hverken den grønne farve frem endsige undermenuen.

Hvad mon jeg gør galt?

mvh
/Jens




--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Birger Sørensen (29-08-2010)
Kommentar
Fra : Birger Sørensen


Dato : 29-08-10 22:31

Jens R. Rasmussen udtrykte præcist:
> Hej/
>
> på min hjememside vinvenner.dk har jeg en venstrestillet menu. Nu
> skal jeg til at lave undermenuer, og jeg faldt så over Jørgen
> Farum Jensens artikkel 'CSS dropdown menu og menubar', som jeg
> har fulgt. Og det virker fint med hover og mus.
>
> Nu vil jeg gerne også have samme effekt med TAB-tasten. I
> forvejen kan jeg bruge TAB-tasen på hovedmenuen. Men jeg mangler
> (mindst) 2 ting.
>
> 1) ligesom ved hover vil jeg godt med TAB have baggrundsfarven
> ændret på hovedmenuen, når jeg TAB'per hen over den.
>
> 2) ligesom med hover vil jeg godt have undermenuen frem, når jeg
> kommer til menupunktet 'Medlemmer'
>
> I mit css står bl.a.
> a:visited {color:black;}
> a:hover, a:focus {font-style:italic; font-weight:bold;}
> #menubar {
> margin-top:5px;
> margin-left:5px;
> height:80%;
> padding-top:5px;
> padding-right:5px;
> padding-bottom:5px;
> float:left; width:10em; color:black;}
>
> #menubar ul {
> margin: 0;
> padding-left: 0;
> list-style: none;
> width: 9.9em;
> border-width: 1px 1px 0 1px;
> border-style: solid;
> border-color:#257;
> background-color:#ccffff;}
>
> #menubar li {
> position: relative;
> list-style: none;
> margin: 0; padding:0;
> border-bottom: 1px solid #257;}
>
> #menubar li.menupil {
> background-image:url("billeder/pil22.gif");
> background-position:right center;
> background-repeat:no-repeat;}
>
> #menubar ul ul {
> position: absolute;
> top: -1px;
> left: 9.9em;
> display: none;
> background-color: #ccffff;
> z-index:2;}
>
> #menubar li:hover {
> background-color: lightgreen;
> font-style:italic; font-weight:bold;}
>
> #menubar ul.niveau1 li.menupil:hover ul.niveau2 {
> display: block;}
>
> #menubar li a {
> display: block;
> padding: 0.25em 0 0.25em 0.5em;
> text-decoration: none;
> width:10.5em;
> }
>
> #menubar>ul a {width: auto;}
>
>
> Og nu troede jeg, at jeg blot kan ændre følgende for at få TAB-
> til at opføre sig lige som mouse:
>
> #menubar li:hover, li:focus {
> background-color: lightgreen;
> font-style:italic; font-weight:bold;}
>
> #menubar ul.niveau1 li.menupil:hover, li.menupil:focus ul.niveau2
> {
> display: block;}
>
> men jeg får hverken den grønne farve frem endsige undermenuen.
>
> Hvad mon jeg gør galt?
>
> mvh
> /Jens

li kan ikke modtage fovus, så li:focus har ingen mening.
http://www.w3.org/TR/CSS21/selector.html#x38
Så umiddelbart er det noget med at de <a>'er der har focus, skal vise
undermenuerne - men de sidder i <li>'er under #menubar, så noget i
retning af

#menubar li:hover, #menubar li.menupil a:focus ul {
display : block;
}
Der skal også være noget, der holder den vist, når et af underpunkterne
er focused.
Du kommer nok til at eksperimentere lidt; jeg kan ikke helt overskue
din CSS. Pointen er at det er <a>'erne du skal bruge som det element
der udgør 'Skifteren' for undermenuerne, fordi li ikke kan have focus.
Du vil så også få et problem, med at både musen og focus vælger hvad
der skal vises - så du bliver måske nødt til at ændre, så musen sætter
focus i stedet.
Derud over, kommer du nok til manuelt at sætte taborder på
undermenuerne, så rækkefølgen kommer til at passe.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Jens R. Rasmussen (30-08-2010)
Kommentar
Fra : Jens R. Rasmussen


Dato : 30-08-10 22:28

Tak til Birger og Jørgen, som begge har hjulpet mig på vej, selvom jeg
ikke er i mål endnu.

Jeg må indrømme, at jeg langtfra forstår css - men har dog brugt Jørgens
syntaks og har da også fint fået ændret så skift af baggrundsfarve nu er
den samme ved mus og med TAB.

Det er dog endnu ikke lykkes mig at få undermenuen frem med TAB på samme
måde som ved mus. Jeg tror jeg forstår Birgers forslag med kan ikke få
det til at virke.

Noget af min menu ser således ud:
<div id="menubar">
<ul class="niveau1">
<li><a tabindex="1" onfocus="this.className='menuknapover'"
onblur="this.className='menuknap'" class="menuknap" id="li1"
href="index.asp" title="VinVenner.dk's hjemmeside" accesskey="s"><span
class="genvejstast">S</span>tartside</a></li>

<li><a tabindex="2" .....
.......
<li class="menupil"><a tabindex="5"
onfocus="this.className='menuknapoverpil'"
onblur="this.className='menuknappil'" id="li5" href="#"
title="Medlemsdata" accesskey="m"><span
class="genvejstast">M</span>edlemmer</a>
<ul class="niveau2">
<li> <a href="medlemmer1.asp">Mine egne data</a> </li>
<li> <a href="medlemmer2.asp">Øvrige medlemmer</a> </li>
<li> <a href="medlemmer3.asp">Tidl. medlemmer</a> </li>
</ul>
</li> .......

<li><a tabindex="9" onfocus="this.className='menuknapover'"
onblur="this.className='menuknap'" class="menuknap" id="li6"
href="bestyrelsen.asp" title="Bestyrelsens sammensætning"
accesskey="k"><span class="genvejstast">K</span>ontakt</a></li>


Og den tilsvarende css:
#menubar li a.menuknap {
display: block;
padding: 0.25em 0 0.25em 0.5em;
text-decoration: none;
width:9.4em;
}

#menubar li a.menuknappil {
display: block;
padding: 0.25em 0 0.25em 0.5em;
text-decoration: none;
width:9.4em;
background-image:url("billeder/pil22.gif");
background-position:right center;
background-repeat:no-repeat;
}

#menubar li a.menuknapover {
display: block;
padding: 0.25em 0 0.25em 0.5em;
text-decoration: none;
width:9.4em;
background-color: lightgreen;
}

#menubar li a.menuknapoverpil {
display: block;
padding: 0.25em 0 0.25em 0.5em;
text-decoration: none;
width:9.4em;
background-color: lightgreen;
background-image:url("billeder/pil22.gif");
background-position:right center;
background-repeat:no-repeat;
}

For musen har Jørgen lært mig at skrive:
#menubar ul.niveau1 li.menupil a.menuknappil:focus ul.niveau2 {
display: block;}
Og det virker

På opfordring fra Birger har jeg eksperimenteret med at få tilføjet noget
omkring a.focus for at få undermenuen frem med TAB.

Fx har jeg forsøgt
#menubar ul.niveau1 li.menupil a.menuknappil:focus ul.niveau2 {
display: block;}

Men desværre itv. uden held. Fejlen er helt klar at jeg famler lidt i
blinde med css-syntaksen. Intuitivt tror jeg forstår både Jørgen og
Birgers forslag - men når jeg så skal ændre lidt, så det passer til mig -
udebliver den ønske virkning, nemlig at få undermenuen frem.

mvh
/jens

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Birger Sørensen (30-08-2010)
Kommentar
Fra : Birger Sørensen


Dato : 30-08-10 23:30

Følgende er skrevet af Jens R. Rasmussen:
> Tak til Birger og Jørgen, som begge har hjulpet mig på vej, selvom jeg
> ikke er i mål endnu.
8X
> Fx har jeg forsøgt
> #menubar ul.niveau1 li.menupil a.menuknappil:focus ul.niveau2 {
> display: block;}
>
> Men desværre itv. uden held. Fejlen er helt klar at jeg famler lidt i
> blinde med css-syntaksen. Intuitivt tror jeg forstår både Jørgen og
> Birgers forslag - men når jeg så skal ændre lidt, så det passer til mig -
> udebliver den ønske virkning, nemlig at få undermenuen frem.
>
> mvh
> /jens

Det virker ikke, fordi ul.niveau2 ikke står inde i <a> i hovedmenuen.
En <ul> må vist ikke stå i en <a> - ikke sikker, men det kan prøves.

Måske er det en bedre løsning, nu du alligevel bruger js, at sætte
display:block i onfocus og display:hidden i onblur for den aktuelle ul.
Det kan ikke blive generelt med js som det kan mad CSS. Gøres nok
enklest ved at give ul.nievau2'erne en id, som kan overføres til
onfocus og onblur.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Jørgen Farum Jensen (30-08-2010)
Kommentar
Fra : Jørgen Farum Jensen


Dato : 30-08-10 11:24

Den 29-08-2010 21:55, Jens R. Rasmussen skrev:
> Hej/
>
> på min hjememside vinvenner.dk har jeg en venstrestillet menu. Nu
> skal jeg til at lave undermenuer, og jeg faldt så over Jørgen
> Farum Jensens artikkel 'CSS dropdown menu og menubar', som jeg
> har fulgt. Og det virker fint med hover og mus.
>
> Nu vil jeg gerne også have samme effekt med TAB-tasten. I
> forvejen kan jeg bruge TAB-tasen på hovedmenuen. Men jeg mangler
> (mindst) 2 ting.

Du kan muligvis finde hjælp på denne side:
http://webdesign101.dk/www/cssmenu/eksempelsite/page3.html


--

Med venlig hilsen
Jørgen Farum Jensen
Håndbog i webdesign: http://webdesign101.dk/wwwbog/udgave2/
Webdesign med stylesheets: http://webdesign101.dk/cssbog/
..

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste