Avatar billede krogstrup Nybegynder
30. marts 2006 - 23:33 Der er 6 kommentarer og
1 løsning

Kan man sætte en minimumshøjde på en DIV

Jeg har ofte en container-div til mit tekstområde som indeholder et baggrundsbillede, der ikke repeates men blot vises øverst een gang.

Jeg vil derfor gerne angive en højde på min DIV således at hvis der ikke er særlig meget tekst i den, ja så vises hele baggrundsbilledet alligevel - men på den anden side; hvis min div indeholder mere tekst end der er plads til, ja så skal div´en gerne udvide sig således at al teksten kan ses.

Hvis jeg i en div angiver baggrundsbillede og højde, ja så virker det faktisk efter hensigten i IE, hvor min div blot udvides hvis indholdet fylder mere end den specificerede højde. Men i Firefox opstår der problemer.

Er det muligt at håndtere dette issue på en fornuftig måde som både virker i IE og FF ?
Avatar billede milandt Nybegynder
31. marts 2006 - 00:27 #1
Denne div vil minimum være 100px høj i både IE og Firefox, men stadig godt kunne udvide sig til at være højere end 100px. Erstat selv den grå baggrundsfarve med dit baggrundsbillede.

<div style="height:auto !important;height:100px;min-height:100px !important;min-height:auto;background:#666">
    <p>Lorem ipsum dolor sit amet.</p>
</div>
Avatar billede krogstrup Nybegynder
31. marts 2006 - 07:42 #2
hej milandt

Jeg kan godt se at din løsning virker - tusind tak !

MEN, jeg vil utrolig gerne også forstå hvad der sker. Kunne du overtales til at give en hurtig gennemgang af hvordan css smøren fungerer i praksis ?
Avatar billede milandt Nybegynder
31. marts 2006 - 10:47 #3
Jeg udnytter at Internet Explorer og Firefox fortolker "!important" forskelligt. Når man sætter "!important" efter en regel, så ophæves denne til at være vigtigere end normalt. Hvis jeg f.eks i starten af mit css dokument angiver background-color:red og længere ned angiver background:green for det samme element, så vil det være green der gælder, fordi det står erklæret sidst. Hvis jeg havde skrevet !important efter den første regel, så havde den gjort sig gældende uanset hvad der måtte stå efterfølgende i css dokumentet.

Jeg ved så at at hvis jeg skriver "height:auto !important;height:100px", så vil Firefox sætte height til auto fordi der står !important efter, men Internet Explorer vil sætte den til 100px fordi det står angivet sidst (men stadig på samme linie). På den måde kan jeg styre hvilke værdier Firefox (og de fleste andre browsere) skal bruge, og hvilken værdi Internet Explorer skal bruge.

Man bør bruge !important når man ikke kan få sit stylesheet til at hænge sammen i den nedarvning man havde tænkt sig. Når man ønsker at "overrule" en tidligere regel, eller i specielle undtagelser.

http://www.w3.org/TR/REC-CSS2/cascade.html#important-rules
Avatar billede krogstrup Nybegynder
31. marts 2006 - 11:02 #4
Mange tak for din forklaring - god weekend :-)
Avatar billede krogstrup Nybegynder
31. marts 2006 - 11:04 #5
er "min-height" så nødvendig, og hvis ja - hvilken betydning har den i sammenhængen ?
Avatar billede milandt Nybegynder
31. marts 2006 - 13:14 #6
Det er nødvndigt at skrive hele udtrykket som jeg skrev det i min første kommentar. Det jeg ønsker er at:

IE skal sætte height:100px; og min-height:auto;
Fx skal sætte height:auto; og min-height:100px;

Ovenstående får din boks til at opføre sig ens i hhv. IE og Fx. Det skyldes at IE bruger height som det er meningen at min-height skal bruges, men til gengæld ikke bruger min-height korrekt.
Avatar billede krogstrup Nybegynder
31. marts 2006 - 18:38 #7
ok - mange tak for din forklaring :-)
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