hur gör man ett extra mellanrum "space" i xhtml då ej verkar finnas med i definitionen...
/J
10 svar · 871 visningar · startad av jake
hur gör man ett extra mellanrum "space" i xhtml då ej verkar finnas med i definitionen...
/J
jo det funkar säkert (nu iaf) men verkar inte som den är med i w3c definitionen...
Jodå, det är med - men man måste kunna lite XML-trix för att hitta dem...
I DTD:n (DokumentTypDefinitionen) för t.ex. xhtml1.0 Strict. (finns på http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ) definieras alldeles i början några externa entiteter (vilket ungefär motsvarar include-filer).
Dessa anropas också samband med definitionerna:
<!--================ Character mnemonic entities =========================-->
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
"xhtml-lat1.ent">
%HTMLlat1;
<!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent">
%HTMLsymbol;
<!ENTITY % HTMLspecial PUBLIC
"-//W3C//ENTITIES Special for XHTML//EN"
"xhtml-special.ent">
%HTMLspecial;
Den externa entiteten (alltså ungefär "include-filen") "xhtml-lat1.ent" (alltså i praktiken http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent ) innehåller definitioner av ett gäng specialtecken, däribland
<!ENTITY nbsp "&#160;"> <!-- no-break space = non-breaking space,
U+00A0 ISOnum -->
Motsvarande finns i övriga xhtml-DTD:er också.
Verkar det knöligt kan jag trösta er med att XML i alla är fall mycket lättare att förstå sig på än SGML (som "icke-x"HTML är byggt på) :e
hm... betyder det att man ska skriva " " i koden för att infoga ett nbsp ?
Kan man på något sätt lägga det i css om man har en liknande struktur på flera ställen i dokumentet.
(i detta fallet ett tecken som ska komma på samma rad som föregående ord med ett space emellan...
hmm dum fråga kanske...
tack iaf järvklo för det omfattande svaret...
hm... betyder det att man ska skriva " " i koden för att infoga ett nbsp ?
Njae- Det betyder att det är tillåtet att välja att antingen skriva   eller när man vill ha in ett tecken med teckenkod 160 (alltså tecknet "non-breaking space") i texten på en xhtml-sida.
Man kan (och får!) alltså använda på precis samma sätt i xhtml som man kan och får i HTML.
Kan man på något sätt lägga det i css om man har en liknande struktur på flera ställen i dokumentet.
(i detta fallet ett tecken som ska komma på samma rad som föregående ord med ett space emellan...
Hmm...
Skulle vara med :after {content:' Ditt_tecken'} i så fall, men hur man får till det innehållet har jag inte lyckats klura ut.
:after funkar förresten inte i MSIE5.5.-, och entiteten skrivs in som den står med &-tecken och allt i NN6.2... Kanske någon i CSS-forumet vet mer om detta ?
Lite mer om :after och content: finns annars t.ex. på http://www.blooberry.com/indexdot/css/syntax/pseudo/pelemafter.htm och http://www.blooberry.com/indexdot/css/properties/generate/content.htm
Skulle du vilja ha det i before/after i CSS borde ( :OO ) det funka med content: '\A0' om du använder MZ/NS6/Opera 6.
Testat och klart i NN6.2 iaf ;) och det funkar - vågen spango! :birp
vad står '\A0' för?
Backslashen betyder att det som kommer härnäst är någonting magiskt (som \n betyder ny rad i C-baserade språk) och A0 är 160 skrivet hexadecimalt.
Det är CSS-escapning av tecknet med kod 160!
Läs mer om detta i CSS-specifikationen på: http://www.w3.org/TR/REC-CSS2/syndata.html#q4 - där står bl.a.
...
Third, backslash escapes allow authors to refer to characters they can't easily put in a document. In this case, the backslash is followed by at most six hexadecimal digits (0..9A..F), which stand for the ISO 10646 ([ISO10646]) character with that number. If a digit or letter follows the hexadecimal number, the end of the number needs to be made clear. There are two ways to do that:* with a space (or other whitespace character): "\26 B" ("&B")
* by providing exactly 6 hexadecimal digits: "\000026B" ("&B")
In fact, these two methods may be combined. Only one whitespace character is ignored after a hexadecimal escape. Note that this means that a "real" space after the escape sequence must itself either be escaped or doubled.