En snabb fråga ang. xhtml
20 svar · 486 visningar · startad av shun
Det kan se ut på båda sätten. Båda är tillåtna!
Okej, undrade bara, för har gjort en ordlista med ca 150 ord, hade varit jobbigt att ändra:P
... men levererar du den som "text/html" (dvs genom att inte aktivt ändra MIME-typen på filen till "application/xhtml+xml") är det
<a name="ankare"></a>
som gäller av bakåtkompatibilitetsskäl ;) och kör du xhtml 1.0 strict är det
<a [b]id[/b]="ankare"></a>
som gäller av samma skäl :birp
Går det inte att köra både xhtml 1.0 strict och text/html? Fasen, det skulle ju inte bli diskussion av detta egentligen=)
edit- En sak till, jarvklo: om man nu använde id istället för name, hur använder man då id i css-sammanhanget? (låtsas att du förstår vad jag menar iaf)
shun skrev:
Går det inte att köra både xhtml 1.0 strict och text/html?
Såklart det gör - det är det som kallas "bakåtkompatibel xhtml" - men hur man bör och inte bör utnyttja XML-finesser (som t.ex. just "minimering av <a></a> till <a / > ) i det läget framgår av xhtml-rekommendationens appendix C: http://www.w3.org/TR/html/#guidelines .
Orsak att undvika <a ... /> :
Om du skickar sidan som text/html, innebär det att en del webbläsare skulle kunna börja tolka det du skickar som HTML "med lite skräp man skall strunta i" (enligt krav i HTML4-specen på feltolerans vid tolkning av koden), och det är i det läget inte garanterat att kortformen <a ... /> blir rätt tolkad då eftersom det skulle kunna vara ett "<a> med lite skräp i" (pss avråder W3C från kortformen <p /> istället för <p></p> i appendix C, punkt C3 - länk enligt ovan)
edit- En sak till, jarvklo: om man nu använde id istället för name, hur använder man då id i css-sammanhanget? (låtsas att du förstår vad jag menar iaf)
NP - Du använder det ID:s som alla andra ID:n i dokumentet
<a id="foo"></a>
stylas av CSS:en
#foo {...}
och id="foo" får bara förekomma i exakt en tagg, oavsett vilken, i varje enskilt dokument
:birp
Men hur gör man i så fall om man vill sätta ett css-id på länken?
<a id="litenlank" id="Klicka här för att komma vidare" .. />Det verkar konstigt.
Brrrrrrr - Vad är det *egentligen* du vill göra ?
<a id="litenlank" href="ensida.html">Klicka här för att komma vidare</a>
hoppas jag - eller kanske
<a href="#foo">Hoppa till läget foo längre ner</a>
...
...
...
...
<a id="foo"></a> Det här är text efter läget "foo"
Man får bara ha ett id-attribut per element ;)
Man får bara ha ett id-attribut per element
...och per dokument. :) nej, fel... man får bara ha samma ID en gång per dokument. ;)
Antingen är klockan för mkt, eller så används id både för att styra css (som class) och som namn på länken (som name, innan xhtml tydligen).
Det är exakt så. id har dubbla funktioner.
Framöver kommer du att kunna länka till vilken tagg som helst som har ett id pss som du idag länkar till ett <a name=".."></a> - men den funktionen finns inte införd i alla webbläsare idag
I tidiga dagar (av HTML) användes name-attributet för att identifiera element.
Idag används ID istället, och name-attributet är borttaget iom "modularisation of XHTML" (XHTML 1.1 och Basic).
Du kan dock ange både name och ID i XHTML 1.0 (och HTML4).
zcorpan skrev:
...och per dokument. :) nej, fel... man får bara ha samma ID en gång per dokument. ;)
Hmm..
jarvklo skrev:
och id="foo" får bara förekomma i exakt en tagg, oavsett vilken, i varje enskilt dokument
:birp
jarvklo skrev:
Det är exakt så. id har dubbla funktioner.
Framöver kommer du att kunna länka till vilken tagg som helst som har ett id pss som du idag länkar till ett <a name=".."></a> - men den funktionen finns inte införd i alla webbläsare idag
Attans vad smart.. :)
Man kan för övrigt sniffa fram vilket attribut och attributvärde som helst med CSS. # och . är egentligen "shorthands"
#foo {}
.bar {}
är samma sak som
[id=foo] {}
[class=bar] {}
Och du kan på samma sätt använda tex
[name=ankare] {}
om du vill.
Just ja, det fungerar inte med IE...
jarvklo skrev:
Det är exakt så. id har dubbla funktioner.
Framöver kommer du att kunna länka till vilken tagg som helst som har ett id pss som du idag länkar till ett <a name=".."></a> - men den funktionen finns inte införd i alla webbläsare idag
Nån som vet vilka det funkar/inte funkar i?
Funkar med alla webbläsare jag testat förutom Netscape 4.
zcorpan skrev:
Funkar med alla webbläsare jag testat förutom Netscape 4.
Då kan man alltså med säkerhet använda sig av metoden?
Enligt mig, ja.
Netscape 4 har problem med det mesta. Om man vill att allt ska fungera med så gamla webbläsare så är det HTML 3.2 som gäller, i princip. Som tur är är det inte så många som använder gamla webbläsare längre. ;)
Man kan lägga ett ID på body om man vill.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Test</title>
<body id="top">
<h1>Test</h1>
<hr style="margin: 20em 0">
<p><a href="#top">Upp</a>.
zcorpan skrev:
Enligt mig, ja.
Netscape 4 har problem med det mesta. Om man vill att allt ska fungera med så gamla webbläsare så är det HTML 3.2 som gäller, i princip. Som tur är är det inte så många som använder gamla webbläsare längre. ;)
Man kan lägga ett ID på body om man vill.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>Test</title> <body id="top"> <h1>Test</h1> <hr style="margin: 20em 0"> <p><a href="#top">Upp</a>.
Nu är jag inte säker, men går det inte lika bra att i ditt exempel skippa id i body-taggen, och bara ha href="#" i a-taggen? Då kommer man väl alltid till toppen av sidan?