webForumDet fria alternativet

Hjälp till nybörjare i XHTML - attributen inkorrekta?

HTML & CSS

11 svar · 395 visningar · startad av Moonwolf

Medlem sedan nov. 2003129 inlägg
Frågan#1

Har börjat gå över till XHTML och just försökt validera en sida (W3C). Men något fel gör jag, för den tycker att en massa av mina attribut inte existerar!!
Attribut som background, border och alt får inte ges till VISSA <td>, attribut som cellspacing och cellpadding får inte ges till ANDRA <td>.:q

Nån som känner igen något och kan ge en hint om vad det handlar om?

Medlem sedan juni 20034 013 inlägg
#2

Background och border har med utseendet att göra och sådant hör hemma i CSS-koden.

Medlem sedan jan. 2000978 inlägg
#3

Här har du en bra referens till XHTML med lista över alla element och vilka attribut som hör till.
http://www.zvon.org/xxl/xhtmlBasicReference/Output/index.html

Medlem sedan nov. 2003129 inlägg
#4

Tack - precis en sån lista jag letat efter!

Då återstår ett antal knepiga bekymmer:

Om man vill ha en tabell där man anger absoluta värden för cellerna och även vill ha en bakgrundsbild/färg i tabellen och i varje cell, hur gör man då i XHTML? Height, widht, background och bgcolor finns ju inte som attribut till td.
Det går ju utmärkt i HTML...

Och hur bör man i en cell skriva <h1> korrekt för att hänvisa till sitt CSS, ska #PCDATA in någon stans?

Fö, ledsen att jag inte kan hänvisa till exemplet, det är en kursuppgift som bara får finnas på skolans intranät.

Medlem sedan juni 20034 013 inlägg
#5

Typ...

<style type="text/css">
td
{
height: 30px;
width: 20px;
background-color: #54938f;
}
</style>

Man gör det inte i xhtml utan man gör det i CSS.

Medlem sedan nov. 2003129 inlägg
#6

Jag har ett länkat stylesheet, så klart.
Men jag är inte tillräckligt bra på CSS för att göra conteinrar av allt.
Så, ska jag styra bakgrunsfärger och dito bilder enbart i CSS behöver jag göra en <div> för varje tabell, känns som om det måste finnas ett enklare sätt.

:(

Medlem sedan juni 2004533 inlägg
#7

Ifall du verkligen vill använda xhtml så ska du glömma tabeller för layouten. Tabeller används för att göra tabeller, ingenting annat, och då behöver du inte sätta bredd och höjd på enskilda celler, de anpassar sig automatiskt efter innehållet. Därmed hör knappast en h1-tagg hemma i en cell heller.

För layouten använder du mest div-taggar, ofta flytande.

Medlem sedan jan. 2000978 inlägg
#8

Jag förstår inte varför du måste göra en <div> för varje tabell. Det gör att sätta bakgrundsbilder och färger på tabeller också.

Det tar ett tag att komma in i tekniken för hur man använder enbart CSS för design, så du kanske lika gärna kan använda dina tabeller för layouten. Däremot kan du försöka eftersträva kod som validerar.

Medlem sedan dec. 20042 245 inlägg
#9

Moonwolf skrev:

Om man vill ha en tabell där man anger absoluta värden för cellerna och även vill ha en bakgrundsbild/färg i tabellen och i varje cell, hur gör man då i XHTML? Height, widht, background och bgcolor finns ju inte som attribut till td.
Det går ju utmärkt i HTML...

Det går väl lika utmärkt i XHTML, eller? Funkar det? Ja. Validerar det? Nej. ;)

Guffa skrev:

Ifall du verkligen vill använda xhtml så ska du glömma tabeller för layouten.

...samma gäller för HTML. :)

XHTML 1.0 har samma semantik som HTML4. XHTML lägger inte till nånting, det drar inte ifrån nånting. Det är bara syntaxen som skiljer dem åt (den ena är baserad på SGML och den andra är baserad på XML). För att webbläsare ska tolka koden som XHTML behöver du ändra filändelsen till ".xht" eller ".xhtml", vilket gör att servern skickar filen som application/xhtml+xml. Använder man filändelserna ".htm" eller ".html" så skickas filen som text/html, och webbläsaren tolkar koden som HTML. Enligt XHTML 1.0 specifikationen är det tillåtet att använda text/html för XHTML 1.0 som följer HTML-kompabilitetsriktlinjerna. Det kan vara bra om man vill att IE och Google ska kunna tolka koden. :)

Exempel på hur hur vi flyttar attribut på BODY till CSS

<body background="foo.png" bgcolor="white" text="black" link="blue" vlink="purple">
<body>
...
html { background:white url(foo.png); color:black; }
a:link { color:blue; background:transparent; }
a:visited { color:purple; background:transparent; }

Exempel på hur vi flyttar border="0" på bildlänkar till CSS

<a href="#"><img alt="foo" src="bar" border="0"></a>
<a href="#"><img alt="foo" src="bar"></a>
...
a img { border:none; }

Exempel på hur vi flyttar width och height på TD till CSS

<td width="100" height="100">
<td class="minklass">
...
td.minklass { width:100px; height:100px; }

Du får berätta vilka valideringsfel du får så kan vi se om vi kan lösa det med CSS. :)

Medlem sedan nov. 2003129 inlägg
#10

Det löste sig, utan CSS. Visade sig att samma validerings-felmeddelanden uppstod i HTML 4.01 också.
Validatorn (W3Cs) anser tydligen inte att background är ett giltigt attribut i <td> trots att man konstaterar att det än så länge ska stödjas av browsers. Man har tom med det som exempel på hur man skapar en bakgrundsbild i en tabellcell....
Därmed konstaterade vi att det fungerar, men inte validerar :-)

Medlem sedan dec. 20042 245 inlägg
#11

Är det en bra "lösning"? Problemet kvarstår väl, även om det är ogiltigt i både HTML4 och XHTML...

"background"-attributet finns med i HTML3.2 för BODY-elementet, men det verkar som att det aldrig varit ett giltigt attribut för TD.

Vem konstaterar att det ska stödjas av webbläsare? Kan du peka på exemplet du pratar om? :)

Medlem sedan mars 20041 505 inlägg
#12

Jag föreslår att du lär dig en del CSS och läser på om hur man kodar semantisk HTML-kod innan du ger dig på XHTML.

Ska man börja koda XHTML istället för HTML bör man veta varför man gör det och vad det egentligen innebär.

276 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)