Avatar billede hsm Nybegynder
18. februar 2004 - 11:09 Der er 7 kommentarer og
1 løsning

DIV med background-image tegnes ikke

Jeg prøver at tegne en grafisk box via DIV og CSS.

Jeg kan til min store undren konstatere, at en række browsere ikke tegner en DIV selvom den indeholder et baggrundsbillede, hvis der ikke er tekst i den - og under alle omstændigheder ignorerer "height" og "width" indstillingerne fra CSS i disse tilfælde, og kun giver den størrelsen af den tekst der indgår.

IE60: Opfører sig som forventet (overraskende!)
Opera 7.23: Ignorerer "height" og "width"
Mozilla Firefox 0.8: Som Opera
Netscape 7.1: Som Opera

Koden ser ud som følger:

<div>
<span class="wbar_tl"></span>
<span class="wbar_tm">
  En lille test!
</span>
<span class="wbar_tr"></span>
</div>

og CSS:

.wbar_tl {
  width:32px;
  height:60px;
  background-image:url(image/wbar_tl.gif);
}

.wbar_tm {
  width:262px;
  height:60px;
  background-image:url(image/wbar_tm.gif);
  padding-top:25px;
  font-weight:bold;
}

.wbar_tr {
  width:33px;
  height:60px;
  background-image:url(image/wbar_tr.gif);
}

Grafikken har nøjagtigt de mål som er angivet i CSS.

Alle browsere på nær IE glemmer alt om wbar_tl og wbar_tr.

Er der nogen der ved hvordan man kan omgås dette? Det er vigtigt at koden validerer korrekt XHTML 1.1 og CSS 2 (det gør ovenstående kode).
Avatar billede roenving Novice
18. februar 2004 - 11:13 #1
Brug et block-level-element i stedet for et inline-element som span !-)

-- altså ændr dine tags fra span til div ...
Avatar billede hsm Nybegynder
18. februar 2004 - 11:17 #2
Så får jeg linie-skift ...
Avatar billede roenving Novice
18. februar 2004 - 11:31 #3
Ja, men så må du jo sætte float:left; på de to første !-)
Avatar billede roenving Novice
18. februar 2004 - 11:35 #4
Men det er præcis forskellen på de to typer: block-level og inline ...

Hvis du skal sammenligne det med noget, så er det, at et inline-element virker, som hvis du i tekstbehandleren markerer 3 ord og trykker på kursiv, de beholder deres plads i linjen ...

Mens du kan placeren cursoren midt inde i en tekst og så vælge indsæt tabel; tabellen vil flytte sig ned på næste linje og også skubbe teksten, som kommer efter ned til at starte på en ny linje !-)

Resultatet i HTML er, at et inline-element bliver på den plads, som kodestrømmen tilfældigvis giver plads til, men også at elementet principielt ikke har selvstændige grænser, størrelsen skabes af det indhold, som er i elementet ...
Avatar billede hsm Nybegynder
18. februar 2004 - 11:53 #5
Jeps - det virker også fint.

Til gengæld virker "padding-top:25px" også anderledes (*suk*)

I IE påvirker den kun teksten, medens den i de tre andre også påvirker grafikken. Og text-align virker kun horizontalt. Er der en måde at forskyde teksen alene?

BTW: Smid et svar for points.
Avatar billede roenving Novice
18. februar 2004 - 13:58 #6
Det virker da fint hos mig med baggrunde ?-)

De forskydes ikke af padding-settings i Mozilla 1.5, som bruger den samme (Gecko-) maskine som Firefox ...

Jeg prøvede med padding:20px 0px 0px 20px; som er padding-top og padding-left ...

-- men præcis nogle af de css2-properties, som kan deles i 4 er forskelligt implementeret, så måske er det det, du er stødt ind i ?-)

-- og velbekomme '-)
Avatar billede hsm Nybegynder
18. februar 2004 - 15:21 #7
Det virker gpodt nok anderledes ... jeg prøvede med "padding:25px 0px 0px 0px;", men så gentager den grafikken nedad.

Men det prøver jeg at løse på anden måde. Men tak for den omfattende hjælp!
Avatar billede roenving Novice
18. februar 2004 - 15:30 #8
background kan udvides med no-repeat, f.eks.

background:url('image/wbar_tm.gif') top left no-repeat #2f7 fixed;

Som betyder:
baggrunds-grafik, position (her default-værdierne, så de kan overspringes, hvis det er dem, man bruger !-), repetitionsmønster, baggrundsfarve og fast skærmplacering (den anden mulighed er scroll, som får et baggrundsbillede til at have en fast placering i elementet, altså scrolle med siden, hvis man scroller)

-- og tak for points ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Netcompany A/S

Linux Operations Engineer

Capgemini Danmark A/S

AI Data Architect

Rambøll Management Consulting

Senior AI Engineer