webForumDet fria alternativet

Varför blir <li> 18px hög?

HTML & CSS

11 svar · 497 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Har en omröstning i högermenyn på en sida jag håller på att utveckla. Men det strular något fruktansvärt i IE 6(förvånad? inte jag).
Ungefär såhär ser det ut:

<ul style="list-style-type: none; margin: 0;">
   <li>
      <a href="#">(' . $row_answ[num_answ] . ') ' . $row_a['alternative'] . ' - ' . $votes . '%</a>
   </li>
   <li style="border: 1px solid #14718a; height: 10px; padding: 1px; margin: 3px 0;">
      <img src="images/pollbar.gif" style="width: ' . $votes . '%; height: 10px; border: 0; vertical-align: top;" alt="" />
   </li>
</ul>

Trots att jag har satt height till 10px på både <li> och <img> så blir höjden på <li>:n 18px, det blir alltså ett fult mellanrum mellan bilden (som visar hur många som röstat procentuellt) och bordern i underkant.

Någon som har en susning om varför?

Tack på förhand!

Medlem sedan nov. 20051 596 inlägg
#2

vild gissning... IE sätter margin på img...

Medlem sedan nov. 20051 596 inlägg
#3

Prova med att lägga in detta i headern för en stund och se vad som händer... Förmodligen händer det mycket, så du kan ju radera det sedan.
Men då försvinner webläsarnas default-inställningar.

<style type="text/css">
<!--
*{
margin:0;
padding:0;
}
-->
</style>
Medlem sedan apr. 200312 679 inlägg
#4

Räcker det inte med att skriva ul, li, img{}? Det är ju ändå bara innehållet i listan som behöver ändras. :)

Medlem sedan juli 20033 147 inlägg
#5

tanten skrev:

vild gissning... IE sätter margin på img...

Nix. :)

tanten skrev:

Prova med att lägga in detta i headern för en stund och se vad som händer... Förmodligen händer det mycket, så du kan ju radera det sedan.
Men då försvinner webläsarnas default-inställningar.

<style type="text/css">
<!--
*{
margin:0;
padding:0;
}
-->
</style>

Det kör jag redan på. :)

silfver skrev:

Räcker det inte med att skriva ul, li, img{}? Det är ju ändå bara innehållet i listan som behöver ändras. :)

Om det nu varit <img>-taggen som hade marginaler på sig så hade det räckt, visst. Men det hjälper inte. :OO

Medlem sedan nov. 20051 596 inlägg
#6

Säkert, men eftersom han bara verkar använda inlinestyle så tänkte jag att han kunde felsöka så.
För IE räknar ju lite märkligt i bland när det gäller margin och padding och ska man räkna på antalet px i li så är de 18 med border och margin .... + eventuellt vad IE har runt bilder default... :-)

Medlem sedan juli 20033 147 inlägg
#7

Såhär ser det ut i Mozilla resp. IE. :)

1.jpg2.jpg
Medlem sedan nov. 20041 740 inlägg
#8

10px + 1px padding top + 1px padding bottom + 3 px margin top + 3 px margin bottom = 18 pixlar.

Medlem sedan juli 20033 147 inlägg
#9

Gislaved skrev:

10px + 1px padding top + 1px padding bottom + 3 px margin top + 3 px margin bottom = 18 pixlar.

Padding 1px gör ju endast så det blir utrymme runt omkring bilden, och margin uppe och nere gör ju endast att utrymmet mellan bordern och texten ovan/under ökar.
Tro mig, jag har testat. :) ;)

Medlem sedan nov. 20051 596 inlägg
#10

Om du sätter height i <li> till auto och tar bort vertical-align: top; på bilden. Vad händer då? Tror de ska bli ungefär lika då i alla fall:-)

Medlem sedan juli 20033 147 inlägg
#11

Där hade vi felet, jag satte font-size: 0; på <li>. Berodde antagligen på att jag hade \n efter <li> och <img>.

Tack för alla svaren i alla fall. :)

Medlem sedan juli 20033 147 inlägg
#12

tanten skrev:

Om du sätter height i <li> till auto och tar bort vertical-align: top; på bilden. Vad händer då? Tror de ska bli ungefär lika då i alla fall:-)

Gjorde ingen annan skillnad än att bilden hamnade i mitten, höjden blev fortfarande 18 pixlar. Men tack för att du la ner tid! :)

263 ms totalt · 4 externa anrop · v20260731065814-full.20824b9f
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)