Miért engedélyezett a style attribútum a strict doctype-okban?
A svéd Roger Johansson Why is the style attribute allowed in strict doctypes? címmel írt elgondolkodtató blogbejegyzést. Gondolatmenetét azzal kezdi, hogy a strict doctype-ok egyik alapja a szemantika és a megjelenés szétválasztása, ezért nem része a szabványnak sok megjelenést befolyásoló elem (példaként:
Emil Stenström is hasonló gondolatokat fogalmazott meg Inline CSS should not be allowed in strict doctypes című cikkében. Ő egy szemléletes példát is mellékelt:Az első a csúnya, régi, »pfuj« transitional megoldás. A második pedig ugyanaz, csak valid. Fel lehet tenni a kérdést: jobb ez?
A hivatkozott blogbejegyzésekre zsepi is felhívta a figyelmünk, köszönjük.
■ center
, font
, strike
tagek és align
, bgcolor
illetve border
attribútumok). Ő ebbe a kategóriába sorolja a style
-t is. Emellett megjegyzi, hogy egyes esetekben csak nehezen kerülhető el a style
használata, főleg CMS-ek használatánál. Az attribútumot az onclick
közvetlen használatához és a javascript:
pszeudoprotokollhoz hasonlítja.Emil Stenström is hasonló gondolatokat fogalmazott meg Inline CSS should not be allowed in strict doctypes című cikkében. Ő egy szemléletes példát is mellékelt:
<body bgcolor="blue">
<center>
<body style="background: blue">
<div style="text-align: center">
A hivatkozott blogbejegyzésekre zsepi is felhívta a figyelmünk, köszönjük.
tyúk vagy a tojás
jogos
Igaza van
JS
Oda tartozzanak megváltoztathatatlanul
Ezek a szabályok nem azért vannak az adott elemhez a HTML-ben kötve mert "szemantikusak" lennének, hanem mert ahhoz az elemhez kell, hogy tartozzanak megváltoztathatatlanul.
Bármennyire is szép elmélet a HTML és CSS nyelvek segítségével a szerkezet(és nem a tartalom) valamint a kinézet teljes szétválasztása ez nem jelenti azt, hogy ezt 2 külön fájlba kell tenni. Hatékonysági okokból sokkal egszerűbb ha bizonyos egyszerű stílus megadások ott helyben a HTML elemhez közvetlenűl kapcsolva kerülnek megadásra.
Képzeljük el, hogyha minden egyes kis szöveg formázási dolgot csak úgy tudnánk az adott elemhez kapcsolni, ha annak egy egyedi azonósítot generálunk és gondoskodunk róla, hogy ehhez az azonósítohoz tartozó szabály a dokumentumhoz csatolt CSS fájlban benne legyen.
Ugyanilyen logikával egy olyan class bejegyzésnek aminek az az értéke, hogy "zöld" semmi keresnivalója a strict HTML-ben. Pedig a validátor attribútum értékre és főleg annak jelentésére végkép nem ellenőriz. Tehát nem az kérdés, hogy van-e létjogosultsága a style tulajdonságnak, hanem az, hogy mikor.
zöld
példa
CSS-ben külön a betűszíneket.
Vagy trükkösen kihasználhatod a kiválasztókat és egy befoglaló spannal aminek a cég neve classt adod és :first-child, :last-child vagy nth child, vagy '+' trükközéssel, a belső class neveket elhagyhatod stb. De vajon ez "szemantikusabb" lesz?
Egy konkrét példa
Objektumként
Az akkor lesz ha ACRONYM elembe teszed :-)
Nem acronym, kép width vs style
A képek felhozása pedig nagyon jó. A képeknél a width, height attributum értéke vagy százalékban adható meg, vagy pixelben. Más mértékegység nem használható. Ha te nyomtatáshoz készítesz egy dokumentumot ahol mondjuk mm-ben szeretnéd a képek méretét megadni akkor azt mégis csak szerencsésebb az inline style segítségével.
És akkor ha valaki a style tulajdonságot támadja, miért nem a képek width, height vagy a táblázatok cellspacing, cellpadding tulajdonságával kezdi a tisztogatást?
ABC
Ugyan az
Mert ugye ő ismeri ezt a vállalatot, és lehet, hogy a név csak hasraütésre született, és az ég világon nem jelent semmit, csak esetleg ezzel a névvel a vállalat különböző listákon az első helyen szerepelhet.
Az igaz
azaz: táblázatok cellspacing, cellpadding-je
em
Így együtt változik a szöveggel:
valahol torz lesz
Példa
Nekem nincs bajom az inline style-lal, CSS-ben is hasznosnak tartom az IE-only expression megoldást.
(Hsz. javítva 21:53-kor)
Zoom?
A másik meg: A képekkel sérül az any browser kitétel: Ha cél az any browser megjelenés, akkor pl. a konzolos böngészők csak kihagyják a szöveget, amivel csak magad alatt végod a fát. Az inline CSS-nél ugyanis csak ott van a szöveg szövegként. Abba meg nem lehet bízni, hogy a browser helyette az alt tagot írja ki, mert mi van ha nem teszi?
Én például rengeteget bosszankodom emiatt...
Javítás
Mármint a képet...
Zoom, ALT
Melyik szöveges böngésző nem írja ki az
ALT
-ot? Lynx, Links, Elinks, w3m, netrik kiírja.De én egyiket se tartom jó megoldásnak, írtam a #11-ben hogy ez se jobb, de a sok
SPAN
se szép.színvak
De egyébként szerintem is az a lényeg, hogy mikor használjuk a style-t. És amire van külön tag, arra fölösleges (itt a kiemelésre gondolok).
ugyanmár
De ha már valahogyan ezt le kéne kezelni akkor a böngészőben kell egy olyan funkció, hogy "inline style figyelmen kívűl hagyása sajár CSS alkalmazása esetén". (Bár nem accessibilty okok miatt, de ilyen funkció van a Firefox WebDeveloper eszköztárában.)
Kérdés
szerk.: Hoppá, bocsi ezt egyel lejjebb akartam írni, Máténak. Egyébként nem azt mondtam, hogy külön css van. Csak hogy miért kapcsolná ki.
van
(az elnevezés attól függ, h hány féle csap müxik hibásan/nem)
tudsz erről bővebben írni?
Engem is érdekelnének a tapasztalataid...
Cikk
Szemantikus web és fejlesztési előnyök optimuma
Kicsit közhelyesen: az alapvető szemléletnek "korrektnek" kell lennie, de a konkrét megközelítés esetenként más és más lehet.
Enyhén hanyagul fejeztem ki magam, de remélem, érthető, mire gondolok.
HTML és szemantikusság
Másrészt a HTML nyelvben is nagyon korlátozott típusú szerepre van jelölő, vagyis csak egy bizonyos szintig tudunk mindent helyesen megjelölni.
Azért érdemes erről beszélni, mert pl. a "tabless layout" kifejezést is sokan félreérteeték és átesve a ló túloldalára a table elemet mint messze elkerülendő dolgot kapcsolták a CSS-hez. Nem kell átesni a ló túloldalára.
Szem - antik - us
Egy időszakban én is elkezdtem ezt az egész felesleges haccacárét, és nekiálltam szemantikus dolgokat gyártani.
Aztán megnéztem az oldalakat a különböző böngészőkben.
Nagyon gyorsan elkezdtem magasról fütyülni arra, hogy mi a szemantikus és mi nem az.
Az XHTML strict még oké. Kiizzadom magamból azt a rahedli hekket, amit el kell követni a különböző böngészők inkompatibilitása miatt.
De sajnos pl. ha a fehértől eléggé elütő színű hátteren kell dolgoznom, azonnal bevágom a <body bgcolor="<szín>" link="<szín>"[etc...]> definíciót a HTML-be.
Hogy miért?
Látta már vki ezeket a dolgokat pl. Safariban?
Én sajnos láttam. Gányul néz ki az egész oldalváltáskor.
A megrendelőim meg nem azért fizetnek, hogy szemantikus legyen a lap, hanem azért, hogy ne villajon be egy nyomorék fehér háttér a történetesen fekete alapszínű oldalak között még Safariban se!
Ez a szomorú valóság.
Én jegeltem a szemantikuságossági erőfeszítéseket addig, amíg megfelelőképpen meg nem változik a böngészőpiac. Gyanítom mindig más lesz a hasfájás tárgya, de hasfájás mindig lesz.
Úgyhogy a szemantikus bigyó egy jókora lufi, amit elviekben támogatok, és elviekben jónak is tartok, de a gyakorlatban felejtős.
Jó pap holtig tanul
Ezt a vitaszálat kéretik a Szemantikus és egyben helyesen megjelenő oldal kivitelezhetetlen fórumtémában folytatni.
Csatlakozom
Mondjuk, ha valaki most téreget át HTML4-ről annak nem feltétlen XHTML Strict-tel kell kezdenie. Ezzel együtt az XHTML és a CSS megfelelő alkalmazásával igenis nagyon szép oldalakat lehet előállítani. Nem mondom, hogy pl. IE3-ba Win3.11 alatt jól fog kinézni, de azért olyan nagyon nem kell gánhyolni a böngészők közötti kompatibilitással. Nyilván ha vmi speciálist akar az ember azért meg kell izzadni. De ha nem akarsz füzfán fütyülő rigót kirakni, egész jóllehet dolgozni vele.
A bevillanó fehér hátteret meg nem igazán értem. A böngészők töltés előtt mindenképp fehéret villantanak, hiszen gőzük nincs a következő oldalról. Ha pedig az oldalon bukkan elő a fehér háttér, az egyértelműen az oldal kódjának (vagy CSS-ének) hibája.
Én nem érzem magamat még csak a témát ismerőnek se, de dolgoztam már XHTML-be, és bizony oda kell figyelni.
PS: Török Gábor: Utólag láttam a figyelmeztetést, sorry...
Údó
Ez tetszik.. :)
Dustin Diaz véleménye
http://www.dustindiaz.com/style-with-strict/
Szavazások grafikonjai
<div style="width: 50%;"></div>
Az a helyzet, hogy vannak más szempontok is
Amint rávilágított itt az előző hozzászóló egy kiváló példával, előfordul, nem is ritkán, hogy a css-tulajdonság inkább a tartalmi oldalhoz sorolandó, mint a stílushoz.
Azonkívül az inline style és a kihelyezett közt van egy igen lényeges különbség, nevezetesen hogy az előbbi anonim. Könnyen belátható, hogy a külön névadás adott esetben csak fölöslegesen terheli a kódot, és a kód egyszerűsége és karbantarthatósága mindenek fölött áll. A névleges szemantika/stílus dichotóm megfogalmazás is csak addig érvényes, amíg a kód tisztaságát segíti, de van egy pont, ami után már nem segíti.
Csak egy egyszerű példa: kétoszlopos elrendezéskor a két floatolt div után szükség van egy lezáró <div style="clear: both"></div> kódra, mert a float elemek nem bővítik a konténert. Namost erre minek külön osztály?
Elég nagy szigor már az is, hogy a style taget a head karanténjába száműzték, többszörös php include-os template-rendszerekben nagyon kényelmes volna, ha az adott aloldal saját stílusjegyeket tudna magára alkalmazni (fejléc háttérszíne stb.), maximálisan kimerítve a css nevében is rejlő filozófiát, erre föl most meg külön változókkal meg miegyébbel kell sz*rozni, mert egy beágyazott aloldal-template nem tud stilizálni. Sztem már ez a lépés is szűk látókörűségre vall, egy magasztos idea nevében.
egyetértek, és ezt egy ember jobban tudja
Hogy miért engedélyezett a style? Miért ne lehetne? Miért kéne ezen a ponton egy szabványnak kényszerítenie a programozót, hogy valamit tegyen, vagy ne?
Szerintem a felesleges korlátozások maga a szabvány ellen dolgoznak, csökkentik a felhasználó eszköztárát. Egy gép nem fogja jól eldönteni, hogy mely elem tekinthető logikus, szeparálható stíluselemnek, és mely jobb beágyazva. Esetleg majd ha a programot is a gép írja...