webForumDet fria alternativet

Nu har jag tagit tag i saken | XHTML

HTML & CSS

37 svar · 1 804 visningar · startad av Fredrik.an · sida 2 av 2

Frågan, av Fredrik.an

Jag har länge haft en bok hemma om XHTML för nybörjare, och nu känner jag mig redo för att gå över till ren XHTML. DÄrför började jag nu då och sen har jag bara gjort grunderna, alltså en grund för en vanlig sida. Detta är koden: \[KOD\]\<!DOCTYPE html PUBLIC "\//W3C/DTD XHTML 1.0 transitional/EN" "http://www.w3c.org/TR/xhtml/DTD/xhtml1-trasitional.dtd"\> \<html xmlns="http://www.w3.org/1999/x

Läs frågan i sin helhet →
Medlem sedan mars 20041 505 inlägg
#21

zcorpan, perfekt!
Vet du om man kommer kunna servera som application/xhtml+xml också, utan att få en nerladdningsruta?

Medlem sedan dec. 20042 245 inlägg
#22

Nope. IE7 saknar stöd för den MIME-typen, och saknar även stöd för namnrymden http://www.w3.org/1999/xhtml.

Medlem sedan maj 2001797 inlägg
#23

Äh, jahapp, nån som vet något om mitt problem också? x( :bla
Det jag vill är alltså att länka en H1-rubrik och en text så som jag har skrivit här ovanför. Vid hovring vill jag få en grå border runt hela texten och rubriken som den här siten har: http://www.levandehistoria.org
Fast där dom så klart ingen rubrik innaför <a></a>, det är ju det som spökar för mig. Någon? :)

Medlem sedan dec. 20042 245 inlägg
#24
<a href="link.html"><strong>Rubrik</strong> En massa text</a>
a { display:block; padding:1px; text-decoration:none; }
a:hover { border:1px solid #eee; padding:0; }
a strong { display:block; }
Medlem sedan maj 2001797 inlägg
#25

Okej då, så det är omöjligt att behålla mitt H1-element inom <a>-taggarna antar jag (och få en lyckad validering). Tack!

Medlem sedan aug. 20051 448 inlägg
#26

a är ett inline-element och h är ett blockelement
ett blockelement "kan" inte vara inneslutet i ett inline-element utan det "ska" vara tvärtom

varför inte bara länka h?
<h1><a href="#">foo</a></h1>

eller
<h1><a href="#"><span class="bar">texten</span> foo</a></h1>
h1 {
font:20px/25px Georgia, serif;
background:#ddd;
display:block;
}
.bar {
font:11px/25px Georgia, serif;
background:#fff;
}

nu har jag inte provat det senaste men gör du det och se om det funkar som du tänkt dig...

för övrigt tycker jag att det är lättare att gå xhtml-resan stegvis, först transitional och sen strict.
lycka till :)

Medlem sedan maj 2001797 inlägg
#27

Precis. Men varför går det inte att skriva h1 {display: inline} då och få det att validera?
Ang. strict/transitional, jag gillar att böja huvudet framåt och springa rätt in i väggar ;)

Medlem sedan aug. 20051 448 inlägg
#28

display:inline
hmm
det är onödigt om du vill att det ska ligga bredvid varandra för det gör h rent naturligt. alltså som ett block...

att jag tog upp display:block; var för att då får du en radbrytning
(är jag helt säker på)

ang strict > okej, gör du det, för mig tog resan från transitional till strict ungefär 1 månad så man behöver inte ta så långsamma kliv men ta på störtkruka och spring in på w3schools ;)

Medlem sedan maj 2001797 inlägg
#29

Aha, nja jag tänkte, eftersom du säger att blockelement inte får ligga innanför inline-element, att man kan definiera H1 som ett inline-element och då få lägga H1 innanför <a>. Men det kanske inte är riktigt så det fungerar? (Eller ja, uppenbarligen inte)

Hehe, jag pendlar mellan W3Schools och wF för att smällen ska bli lite lättare :)

Medlem sedan dec. 20042 245 inlägg
#30

web00132 skrev:

Men varför går det inte att skriva h1 {display: inline} då och få det att validera?

Därför HTML4's indelning av elementtyper mellan %inline och %block har noll och ingenting med CSS-egenskapen 'display' att göra. Ett HTML-dokument får inte annan betydelse för att man ändrar utseendet med CSS.

Medlem sedan okt. 200518 inlägg
#31

<raderat -- helt ute och cyklade, kan man inte ta bort inlägg förresten?>

Medlem sedan maj 2001797 inlägg
#32

Ok, som jag tänkte typ. Men vore inte det bästa om man kunde ändra så mycket som möjligt och att elementen hade så få inbyggda egenskaper som möjligt? Är det på g kanske?

Medlem sedan juli 20013 378 inlägg
#33

Nej inte i (X)HTML.
Men om du skippar all inbyggd funktionalitet kan du köra "egen välformad XML" (XML utan <!DOCTYPE eller schema) stylad med CSS - fast räkna då inte med att du enkelt och plattformoberoende kan skapa saker som vi tar för givna i (X)HTML-världen som t.ex. länkar...

Medlem sedan maj 2001797 inlägg
#34

Hmm, mycket med det där. Det sjuka är att jag en gång pluggat en XML-kurs (och fått bra betyg) men utan att få veta hur man använder sig av det rent praktiskt, alltså i vilket sammanhang, bra va? :x
Tack för era svar iaf! :bire

Medlem sedan maj 2005562 inlägg
#35

Ser ingen anledning att använda sig av xhtml när man ändå inte serverar sidan som application/xhtml+xml eftersom webbläsaren då ändå hanterar sidan som html 4

http://hixie.ch/advocacy/xhtml
http://keystonewebsites.com/articles/mime_type.php

Medlem sedan juli 20013 378 inlägg
#36

Hmm..

Ser ingen anledning att *inte* använda sig av bakåtkompatibel XHTML till webbläsare sin inte hanterar application/xhtml+xml när man ändå levererar XHTML till att börja med :)

Kommentar till första länken:
HTML4 är nedlagt och stödet för application/xhtml+xml är bra mycket större än när Hickson skrev sin artikel ;) http://tantek.com/log/2003/01.html#L20030114t1345

Kommentar till den andra:
Att maskinmässigt "översätta bakåt" är ingen garanti att du får "bra kod" (det finns nämligen en del mer eller mindre framträdande skillnader mellan HTML4 och XHTML1 som inte framgår av sammanfattningarna i specen...).

Prova t.ex. att sätta ett id på <html> i syfte att kunna använda det som CSS-selektor (bra och praktisk metod att skilja mellan sidor det där med att generera dem med olika id på html annars) ...
Använder du metoden i "länk 2" kommer du då (oavsett om du kör strict, transitional eller frameset) att få en icke-validerande HTML4-version av din sida...

xhtml 1.0 Strict:

<!ELEMENT html (head, body)>
<!ATTLIST html
  %i18n;
 [b] id          ID             #IMPLIED[/b]
  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  >

HTML4.01 Strict

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Ooops! Inget ID här i HTML 4

Det finns fler skillnader - så den metoden kräver egentligen ingående kunskaper om bägge språken för att slippa riskera att "trilla i fällan"... ;)

Ett språk räcker för mig (gissa vilket :birp )

Medlem sedan maj 2005562 inlägg
#37

jarvklo skrev:

Kommentar till första länken:
HTML4 är nedlagt och stödet för application/xhtml+xml är bra mycket större än när Hickson skrev sin artikel ;) http://tantek.com/log/2003/01.html#L20030114t1345

Det är sant, men IE6 (som tyvärr är den vanligaste webbläsaren) har inget stöd för application/xhtml+xml och inte heller IE7 kommer ha det, inte till att börja med iaf.

jarvklo skrev:

Kommentar till den andra:
Att maskinmässigt "översätta bakåt" är ingen garanti att du får "bra kod" (det finns nämligen en del mer eller mindre framträdande skillnader mellan HTML4 och XHTML1 som inte framgår av sammanfattningarna i specen...).

Prova t.ex. att sätta ett id på <html> i syfte att kunna använda det som CSS-selektor (bra och praktisk metod att skilja mellan sidor det där med att generera dem med olika id på html annars) ...
Använder du metoden i "länk 2" kommer du då (oavsett om du kör strict, transitional eller frameset) att få en icke-validerande HTML4-version av din sida...

xhtml 1.0 Strict:

<!ELEMENT html (head, body)>
<!ATTLIST html
  %i18n;
 [b] id          ID             #IMPLIED[/b]
  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  >

HTML4.01 Strict

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Ooops! Inget ID här i HTML 4

Det finns fler skillnader - så den metoden kräver egentligen ingående kunskaper om bägge språken för att slippa riskera att "trilla i fällan"... ;)

Ett språk räcker för mig (gissa vilket :birp )

får väl erkänna att jag knappt läst den andra länken, mer skummat igenom den snabbt.

Men som d står i första länken, o som jag läst på fler ställen, är att det inte finns några fördelar med att använda xhtml när man ändå inte använder korrekt MIME-type. Snarare nackdelar.

Medlem sedan dec. 20042 245 inlägg
#38

jarvklo skrev:

Ser ingen anledning att *inte* använda sig av bakåtkompatibel XHTML till webbläsare sin inte hanterar application/xhtml+xml när man ändå levererar XHTML till att börja med :)

Inte jag heller (man vinner inget på att göra om Appendix C XHTML till HTML4 mer än att det blir giltig HTML4 istället för ogiltig HTML4), men å andra sidan ser jag ingen anledning till att leverera XHTML istället för HTML4 när det ändå måste fungera som HTML4.

jarvklo skrev:

Kommentar till första länken:
HTML4 är nedlagt [...]

Att HTML WG slutat utveckla HTML4 är ju synd (inte minst med tanke på att det är en rejäl byggsten i XHTML), men som tur är finns det vissa andra som har insett att HTML4 är i behov av en uppdatering.

jarvklo skrev:

Kommentar till den andra:
Att maskinmässigt "översätta bakåt" är ingen garanti att du får "bra kod"

Nej, och inte minst när man använder strängsubstitution; det kan ha "oväntade" konsekvenser (som tex att den ändrar "xml:lang" till "lang" på andra ställen än i taggar).

jarvklo skrev:

(det finns nämligen en del mer eller mindre framträdande skillnader mellan HTML4 och XHTML1 som inte framgår av sammanfattningarna i specen...).

Prova t.ex. att sätta ett id på <html> i syfte att kunna använda det som CSS-selektor (bra och praktisk metod att skilja mellan sidor det där med att generera dem med olika id på html annars) ...
Använder du metoden i "länk 2" kommer du då (oavsett om du kör strict, transitional eller frameset) att få en icke-validerande HTML4-version av din sida...

xhtml 1.0 Strict:

<!ELEMENT html (head, body)>
<!ATTLIST html
  %i18n;
 [b] id          ID             #IMPLIED[/b]
  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  >

HTML4.01 Strict

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Ooops! Inget ID här i HTML 4

Att id="" inte är tillåtet på <html> var ett misstag i specen som fixades till i XHTML 1.0 Second Edition men inte i HTML4 eller XHTML 1.1 (inte ens Second Edition). Det fungerar förstås lika bra att använda i HTML4 som i XHTML 1.0, bara det att det inte är giltigt enligt DTDn.

jarvklo skrev:

Det finns fler skillnader - så den metoden kräver egentligen ingående kunskaper om bägge språken för att slippa riskera att "trilla i fällan"... ;)

Om man vill att XHTML 1.0 ska fungera som både text/html och som XML måste man ändå kunna båda språken eftersom webbläsaren "tror" att den ena är HTML. Tex måste man veta att SCRIPT och STYLE tolkas som #PCDATA i XHTML men som CDATA i HTML, att CDATA-sektioner fungerar i den ena men inte i den andra (åtminstone i praktiken), att namnrymdsmedvetna DOM-funktioner måste användas i den ena men inte i den andra, och så vidare. Från webbläsarens synvinkel är det ingen skillnad på XHTML som text/html och HTML4, så det spelar ingen roll om man gör om Appendix C XHTML till giltig HTML4 innan man serverar det som text/html eller inte.

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)