Avatar billede Slettet bruger
02. januar 2009 - 13:37 Der er 8 kommentarer og
1 løsning

vandret menu med background image

Nu bliver jeg nødt til at have lidt hjælp. Jeg forstår ikke dette problem.
Jeg forsøger at få på plads hvordan tingene hænger sammen, når man laver en menu. Jeg har lavet den med billeder i b 180px x h 50px. lagt billedet ind som background i min css på a og et andet af samme størrelse på min a:hover. Men uanset hvad jeg har gjort, er billedets størrelse afhængig af teksten. Jeg troede, at det altid ville blive billedets størrelse, der gav menupunkterne.
Jeg vil have lige store menupunkter med teksten midstille både lodret og vandret.

Problemet kan ses på http://www.annelise-b.dk/test/

<head>
<link rel="stylesheet" type="text/css" href="menu.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

</head>
<body>
<div id="nav">
    <ul>
        <li><a href="http://www.annelise-b.dk" target="_blank">annelise-b</a></li>
        <li><a href="http://www.hov-sa.dk" target="_blank">hov-sa</a></li>
        <li><a href="http://www.google.dk" target="_blank">google</a></li>
        <li><a href="http://www.lynda.com" target="_blank" >lynda</a></li>
  </ul>

</div>
</body>
</html>


og css:
*{border:0; padding:0; margin:0;}


#nav {list-style:none;
float:right;
width:100%;}

#nav li{display:inline}

#nav a{
    display:block;
    float:right;
    border-right-width:10px;
    padding:1em 4em;
    text-decoration:none;
    color:#FFFFFF;
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-variant:small-caps; font-weight:bolder;
    background: url(menu.jpg); background-repeat:no-repeat;
    border-right:1px solid #fff;
   
}

#nav a:hover{
color:#FFFF00;
background: url(menurrolover.jpg); background-repeat:no-repeat;
}
Avatar billede Slettet bruger
02. januar 2009 - 13:38 #1
midstillet = midtstillet og problemet er selvfølgelig også skillelinjerne af forskellig størrelse.
Håber nogen kan hjælpe migl
Avatar billede Slettet bruger
02. januar 2009 - 15:02 #2
Fandt selv ud af det. Der skal være en bredde på a, ellers tager det bredde efter skriften.
Avatar billede olebole Juniormester
03. januar 2009 - 21:31 #3
<ole>

Nej, så er det kun et tilfælde, hvis du finder en browser, der vil vise listen! Du kan/må ikke have block-elementer liggende i et inline-element. Dine links må med andre ord ikke være sat til 'display:block', når dine li-elementer har 'display:inline'  =)

Derudover hører 'list-style' ikke til på ul-elementet. Den property hører hjemme på li-elementerne  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
03. januar 2009 - 22:13 #4
Jeg har efterfølgende fjernet block elementet. Men det virkede faktisk. Jeg har fjernede det, fordi det ikke så ud til at gøre nogen forskel om det var der eller ej.

Jeg har lagt list-style på #nav. Det virker og koden er godkendt på w3. Men ellers må jeg sige, at jeg er rigtig ny på området, så alle råd modtages. Det seneste resultat kan ses på linket ovenfor
Avatar billede olebole Juniormester
03. januar 2009 - 22:25 #5
Det er kun godkendt, fordi validatoren ikke aner, hvad der gemmer sig bag '#nav'  ;o)

Der er tre meget vigtige ting at huske på, når man validerer sin kode:

1) En kode, som validerer, behøver ingenlunde at være rigtig
2) En valid kode behøver ingenlunde at være god - men en god kode er altid valid
3) At køre i venstre side af motorvejen virker fint ... et stykke tid(!)

- men hvorfor validerer du dog din kode, når du i virkeligheden bare er interesseret i, at den tilsyneladende virker i én browser?  =)
Avatar billede olebole Juniormester
03. januar 2009 - 22:30 #6
- og siger CSS-standarden helt klart og tydeligt, at list-style kun kan sættes på elementer med 'display:list-item', hvilket ikke gælder et ul-element - men derimod et li-element  ;o)
Avatar billede olebole Juniormester
03. januar 2009 - 22:33 #7
- men W3C's CSS-validator godtager sågar koden:

p {
    display : block;
    list-style : none;
}

- hvilket er totalt hul i hovedet!  :o|
Avatar billede olebole Juniormester
03. januar 2009 - 22:38 #8
- og dette godtages også:

.a {
    display : inline;
    position : relative;
    float : none;
}
.a .b {
    display : block;
    position : relative;
    float : none;
}

- og dette:

p div {
    color : red;
}

Så, hvad det lige er, man skal bruge dén validator til, må stå hen i det uvisse  :o|
Avatar billede Slettet bruger
03. januar 2009 - 22:41 #9
Som sagt helt ny, må lære hen ad vejen, men testen er foretaget i IE, Firefox og safari.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester