Et mindre webdesigner problem

kaj
Antal: 468
Tilmeldt:
14-03-2004
User is offline
Et mindre webdesigner problem

Jeg har lavet en mindre hjemmeside, der hedder: http://www.forstanderkredsen.dk
Det fungerer sådan set OK, men der er et mindre problem, når man vil se siden i nogle bestemte browsere, d.v.s. Seamonkey, Firefox 2 og Mozilla (Windows).

På nogle af siderne vises seks billeder i 2 rækker á 3 stk. Men åbner jeg systemet i en af de nævnte browsere, vises alle 6 billeder i en lodret søjle, men hvis jeg klikker opdater, kommer billederne på plads, hvor de skal være.

Jeg har gransket koden nøje, og kan ikke se, at der skulle være noget galt.
Jeg har lavet det i en tabel. Jeg forsøgte først med en , men så kunne jeg ikke få billederne til at stå i to rækker á tre. Uanset, hvor meget jeg gav ny linie eller nyt afsnit, blev billederne på een række, bare lidt forskudt i højden.

Men jeg er såmænd også tilfreds med, at de står i en tabel, og problemet er jo til at overse, da der næppe er nogen af sidens brugere, der anvender de pågældende browsere. Jeg kunne dog alligevel godt tænke mig at høre, om nogen af jer har en ide om, hvori fejlen består. De af jer, der eventuelt kan bedømme det, kan sikkert også finde den bagvedliggende kode.

Og nej, jeg har ikke valideret det på w3c.

Kaj


Kresten Kjaer
Kresten Kjaer's picture
Antal: 342
Tilmeldt:
16-09-1991
User is offline
Re: Et mindre webdesigner problem

Det er fordi tabellens bredde varierer. For at tvinge siden til at vise billederne som du beskriver skal tabellen se således ud:

<table id="show">
<tr><td><img src="img/img-24b.jpg" border="0" hspace="2" align="left"></td><td><img src="img/img-26b.jpg" border="0" hspace="2" align="left"></td><td><img src="img/img-29.jpg" border="0" hspace="2" align="left"></td></tr>
<tr><td><img src="img/img-25b.jpg" border="0" hspace="2" align="left"></td><td><img src="img/img-28.jpg" border="0" hspace="2" align="left"></td><td><img src="img/img-21b.jpg" border="0" hspace="2" align="left"></td></tr>
</table>

Noget andet er, at du egentlig bør fjerne tabellen og sætte billederne i to tags i stedet. Alternativt kan du rode med noget css og spans.

---
Miracle.dk - we dare, share & care.


kaj
kaj's picture
Antal: 468
Tilmeldt:
14-03-2004
User is offline
Hej kjaerTak for dit

Hej kjaer
Tak for dit forslag. Det varede lidt, inden jeg så forskellen, men du har en td /td til hvert billede. Det passer nu ikke, at tabellens bredde varierer, da alle billeder er lige store. Venstre margin er bestemt af mit stylesheet.
Jeg har dog fundet en anden måde at lave det på:

<div style="width:619px"><img src="img/coast.jpg" border="0" hspace="2" vspace="2" align="right"><img src="img/rock.jpg" border="0" hspace="2" vspace="2" align="right"><img src="img/swans.jpg" border="0" hspace="2" vspace="2" align="right"></div>
<div style="width:619px"><img src="img/bug4.jpg" border="0" hspace="2" vspace="2" align="right"><img src="img/bug3.jpg" border="0" hspace="2" vspace="2" align="right"><img src="img/bug2.jpg" border="0" hspace="2" vspace="2" align="right"></div>

Ved at lave en div til hver række og give billederne align=right fik jeg dem til at være på to rækker.
Jeg har en lokal style for at få den ønskede margin, og har tilføjet vspace=2 for at få de 4 px afstand mellem billederne, som min kone forlanger.

Kaj


kjoller
kjoller's picture
Antal: 125
Tilmeldt:
13-10-2005
User is offline
Hej Kaj Godt at du fik det

Hej Kaj

Godt at du fik det til at virke. Du skriver at tabellens bredde ikke varierer, da billederne er lige store. Men det ved browseren vel ikke, da du ikke definerer deres størrelse i koden. Det er sandsynligvis derfor at de kommer på plads ved et tryk på opdatér; nu har browseren set billederne før, og kender nu deres størrelse.

Det er længe siden jeg har arbejdet med tabeller, så jeg har jeg ikke rigtigt noget at have det i.


larskhansen
Antal: 119
Tilmeldt:
25-08-2005
User is offline
<div>

Hej Kaj,

Prøv og skift <table> ud med <div>. Det giver meget mere frihed.

<div style="overflow:hidden; width:400px;">
<div style="float:left; width:96px; border:1px solid #000; padding:1px;">1. left</div>
<div style="float:left; width:296px; border:1px solid #000; padding:1px;">1. right</div>
<div style="float:left; width:296px; border:1px solid #DDD; padding:1px;">1. left</div>
<div style="float:left; width:96px; border:1px solid #DDD; padding:1px;">1. right</div>
</div>

kaj
kaj's picture
Antal: 468
Tilmeldt:
14-03-2004
User is offline
Re.

Hej larskhansen

Mange tak for dit forslag.
Webdesign har udviklet sig en del siden jeg så småt begyndte med det i forrige årtusinde, og det er lidt svært at følge med alt det nye. Jeg har været vant til at betragte div'er som store boxe, men jeg er ved at finde ud af, at man nærmest skal strø om sig med dem i stedet for tabeller.
Som du kan se i #2, er jeg så småt ved at finde ud af noget, og jeg betrgter dette problem som løst, men jeg vil kigge nærmere på din kode, den kan måske hjælpe mig på et senere tidspunkt.

Kaj


divineant
divineant's picture
Antal: 666
Tilmeldt:
26-06-2007
User is offline
Re: Et mindre webdesigner problem

#5 Som en tommelfinger regel skal du benytte div og css til layout, og tabeller skal benyttes til at fremstille data i tabelform.

Jeg vil dog erkende mig selv skyldig i en gang imellem at benytte tabeller til layout, idet forskellige browsere har en meget forskellig opfattelse af hvordan css skal fortolkes.


larskhansen
Antal: 119
Tilmeldt:
25-08-2005
User is offline
webdesign og udviklingen

Hej Kaj,

Jeg startede selv tilbage i '95 og kan godt huske hvordan det så ud dengang *gys* :)

Jeg gik over til for mange år siden, selv til at vise data... Du er ikke låst fast i bredden osv som du er i tabellerne. Når man først har sat en bredde til sin <td> er man låst hele vejen ned. Med <div> kan du variere bredden hele vejen ned. Man skal bare huske at en "række" skal have samme bredde som "container" div'en. (Som i mit forslag).

Div er vejen frem og tabeller høre til fortiden. "end of discussion" :)


marx
marx's picture
Antal: 1799
Tilmeldt:
24-04-2006
User is offline
#7 CSS-layout er helt

#7
CSS-layout er helt sikkert at foretrække i langt de fleste situationer, men vi må erkende at browserne endnu ikke implementerer hverken CSS eller W3-anbefalingerne fornuftigt nok til at vi helt og aldeles kan skrotte de dårlige vaner og gå over til den ideelle opdeling af markup og layout.


larskhansen
Antal: 119
Tilmeldt:
25-08-2005
User is offline
#8

Det virker fint i de browsere jeg tester. Firefox, IE7-8, Opera og Safari.