webForumDet fria alternativet

Body=div

3 svar · 301 visningar · startad av aron

aronMedlem sedan mars 2004487 inlägg
#1

Hej,
Jag skriver tillfällig mina XHTML - sidor som HTML. Alltså med content-type: text/html. (utan xml-prolog)
I framtiden när jag ska göra om min sida till: application/xhtml+xml
(med xml-prolog)(vilket jag inte gör i dag eftesom det inte funkar så jätte bra än). Men grejen är att det inte känns rätt att göra som jag gör nu. (egentligen skulle man väll kunna lite PHP eller nått för att fixat)

Läs:

http://webstandardsgroup.org/features/anne-van-kesteren.cfm

Om jag har fattat det rätt så kommer bland annat "body" tolkas som en div när man gör om till application/xhtml+xml, alltså så skulle inte marginalerna få någon bakrundsfärg om man skriver t.ex.

body {
margin: 2% 11%;
background-color: #FFCC00;
}

kanske bättre att använda padding?
är det så?

jarvkloMedlem sedan juli 20013 295 inlägg
#2

Hmm...

När du får upp en webbläsare i "standards mode" med din xhtml-sida (har inget med om sidan sänds med MIME-typen application/xhtml+xml eller text/html att göra - bara med vilken <!DOCTYPE du kör, och i MSIE:s fall dessutom om du har <?xml?>-prologen med eller ej) så får helt plötsligt <html> (dvs rotelementet för sidan) en lite annorlunda roll mot vad man är van vid från HTML4 (eftersom det är <body> som är det "visuella rotelementet" i HTML4 och <html> som är det i xhtml så skiljer det sig lite) - speciellt som rotelementet har vissa egenskaper som "slår igenom" till webbsidan...

... och i "standards mode" fungerar <body> som ett block som ligger i rotelementet (dvs ungefär som en <div> som du säger).

Några av de egenskaper som <html>-elementet (rotelementet) styr, är bakgrundsfärgen i "viewporten" (dvs webbläsarens visningsarea) - och eftersom det inte är säkert att <body> täcker hela visningsarean, så är det rekommendabelt att sätta bakgrundsfärg även på <html>-elementet...

För om du anger margin: på <body> i "standards mode" så visas bakgrundsfärgen från rotelementet <html> i marginalen.
Denna är vanligen vit som default - så vill du ha en färg under en margin på <body> så får du ställa in den bakgrundfärg du vill ha som background-color: för <html>-elementet.

... och om du vill använda padding på <body>, så går det naturligtvis också bra - om du vill ha samma färg i "marginalen" som under texten i <body> ;)

Hoppas det klarnade lite nu ;)

dectgapMedlem sedan sep. 20021 542 inlägg
#3

jarvklo skrev:

När du får upp en webbläsare i "standards mode" med din xhtml-sida (har inget med om sidan sänds med MIME-typen application/xhtml+xml eller text/html att göra - bara med vilken <!DOCTYPE du kör, och i MSIE:s fall dessutom om du har <?xml?>-prologen med eller ej)

Fast Mozilla verkar, som aron skriver, tolka elementen olika beroende på vilken MIME-type man använder.

Titta t ex här:
http://www.fosie.scoutkar.se/index_text.php (skickas som text/html)
http://www.fosie.scoutkar.se/index_application.php (skickas som application/xhtml+xml)

Båda två sägs ha "Standards compliance mode" som "Render mode", men tydligen tolkas de olika även om xhtml-koden är densamma.

jarvkloMedlem sedan juli 20013 295 inlägg
#4

Ja jäsiken - det har du sannerligen rätt i!

Kan dock bara konstatera att ingendera av sidorna har bakgrundsfärgen / bakgrundsbilden instoppad på <html>-taggen, utan på <body> och att det verkar som om text/html-fallet applicerar bakgrundsbilden på "viewport top left", medan application/xhtml+xml för det på "<body> top left" (vilket ju stämmer med en del av det Anne van Kesteren beskriver i arons länk) - Får skylla på att jag rutinmässigt lägger bakgrunder på <html> nuförtiden (vilket tydligen gjort mig ignorant om just det här problemet)

Tack dectgap för att du rättar mig när jag stoppar foten i munnen sådär!

aron - ledsen att jag ställde till det - Du har rätt - det verkar vara säkrare med padding på body :bire

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb