Názory k článku
Udržovatelný stylopis: CSS kód, ze kterého nerozbolí hlava
RE: Udržovatelný stylopis: CSS kód, ze kterého nerozbolí hlava
celé vláknoRE: Udržovatelný stylopis: CSS kód, ze kterého nerozbolí hlava
celé vláknoRE: Udržovatelný stylopis: CSS kód, ze kterého nerozbolí hlava
celé vláknoDíky za upozornění.
Špatný příklad
celé vlákno#footer{margin-left:10.5em;background:rgb(213,234,183);font-family:Verdana,'Geneva CE',lucida,sans-serif !important;}
#footer h6{margin:0;font-size:0.55em;}
Pro někoho špatný příklad, pro někoho ideální zápis. S dobře nastaveným zvýrazňovačem a vypnutým automatickým zalamováním je takový zápis perfektně čitelný, člověk se v něm rychle orientuje a nemusí pak ani šaškovat s nějakou minimalizací kódu, stylopis se může rovnou deployovat na server.
Re: Špatný příklad
celé vláknonavíc stále více lcd panelů se vyrábí v wide provedení, což je optimální pro "inline" zápis, při "roztahaném" budu mít 85% pracovní plochy nevyužité
jen bych za názvem prvku a za každým pravidlem (středníkem) dal jednu mezeru), ale ne za dvojtečku, tím se znesnadňuje čtení
(píšu ve GVIm, téma dark blue na windows)
Re: Špatný příklad
celé vláknoV poslední době, když musím pracovat s cizími stylopisy, tak jenom šílím, protože používají inline zápis bez mezer za dvojtečkami. Pokud si chci přečíst nějakou definici celou, musím scrollovat do stran. Na vertikální scrollování mám kolečko na myši, můžu si přidat zarážky a skákat jedním kliknutím na definice, se kterými práve pracuju.
Re: Špatný příklad
celé vláknoČtyři prvky, když kóduju portlet, na který se jich vztahuje třeba 15, je hodně málo. Naopak při inline zápisu vidím všechny.
> protože používají inline zápis bez mezer za dvojtečkami.
Mezery za středníky ještě pochopím, ale za dvojtečkami? Probůh proč? Zkoušel jste si nastavit zvýrazňovač?
> Pokud si chci přečíst nějakou definici celou, musím scrollovat do stran.
17" wide a do stran posouvám kvůli cca 2% definicí. Zkusil jste dědičnost? ;-)
Re: Špatný příklad
celé vláknoProgramuji na 15" notebooku a nemám s tím sebemenší problém.
Nevím, co by mělo komukoliv vadit na scrollování stránky, to co bych musel složitě hledat v inline zápisu očima, hledám (dle mého názoru rychleji) jen scrolováním stránky dolů, kde si hledaného hned všimnu...
Zvírazňovače jsou fajn, ale tak jako pomáhají v inline zápisu, tak pomáhají i v odetnrovaným zápisu...
Mimoto že inline zápis se špatně komentuje... tak aby bylo vše jasné a nemuselo se scrollovat do stran (když je scrollování tolik někomu proti mysli...).
Re: Špatný příklad
celé vláknoPrávě to, že když kóduju něco, na co se bude vztahovat víc definic, chci je vidět najednou. Nechci neustále scrollovat nahoru a dolů, s inline zápisem mi stačí jen přejet očima na jiný řádek a hned můžu pokračovat v psaní.
> Mimoto že inline zápis se špatně komentuje...
I když se hodně snažím, nepamatuju si, kdy jsem naposledy v CSS potřeboval něco komentovat
;-) Význam jakýchkoli komentářů v tak primitivním a sebepopisném značkovacím jazyku mi opravdu uniká.
Re: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoA pokud jde o podobné funkce v různých editorech - pokud byste svou práci udržoval třeba v SVN, tak byste toho moc neudělal.
Re: Špatný příklad
celé vláknoAle to je ostatně fuk, celé tohle téma je ryze subjektivní a každý kodér má své vymakané a oblíbené postupy, jak si práci zefektivnit. V tomto případě navíc než kdy jindy platí okřídlené rčeni - "každému, co jeho jest".
SVN tak dalece neznám a počítám, že v ničem podobném nikdy pracovat nebudu.
Osobně mi vyhovuje styl v článku pojmenovaný jako "velkorysý" s pravidlem na každém řádku. Honza Bien zase preferuje řádkový stylopis (všechny definice na jednom řádku) a když jsme spolu pracovali na příkladech ke knize o CSS, neměli jsme problém se ve vlastních stylopisech zorientovat.
Tolik subjektivně k subjektivnímu článku na závěr mého subjektivního komentáře.
Re: Špatný příklad
celé vláknoMimochodem, pokud jsem měl kdy problém s cizími styly, nebylo to nikdy ve způsobu formátování, ale vždy jen v samotné logice zápisu. Např. v článku zmiňovaný selektor "#content #hlavicka2 p#menu li a" má příliš vysokou specificitu, které se v praxi snažím spíš vyhýbat.
Re: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoZávidím vám! Vstřebáváte kód lépe než leckterý prohlížeč :-)
Zdrojem inspirace proč psát stylopis velkoryse a ne "počítačově" může být typografie nebo třeba Karel Kryl :-)
Srovnejte komprimovaný zápis:
Z rozmláceného kostela v krabici s kusem mýdla přinesl jsem si anděla Polámali mu křídla
Díval se na mě oddaně já měl jsem trochu trému tak vtiskl jsem mu do dlaně lahvičku od parfému
S velkorysým
Z rozmláceného kostela
v krabici s kusem mýdla
přinesl jsem si anděla
Polámali mu křídla
Díval se na mě oddaně
já měl jsem trochu trému
tak vtiskl jsem mu do dlaně
lahvičku od parfému
Re: Špatný příklad
celé vláknoA syntax-highlighting také? Parser dělá v podstatě něco jako větný rozbor, zkuste si automaticky vyznačit třeba podmět a přísudek jinou barvou...
Re: Špatný příklad
celé vláknoMartin chcel len ukazat, ze cela basen je lepsie citatelna a pochopitelna vtedy, pokial sa upravi do kratkych vystiznych viet. Nie do dlhej stracajucej sa podoby.
A ano, nepouzil tam ciarky. Ale ked uz na nic ine neviete poukazat, tak je to s vami zle.
Re: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoJinak já CSS nekóduji, zato píšu zdrojáky. A mám také raději velkorysý styl, než všechno na jedné řádce. Velkorysý styl mi mnohem lépe zajistí, že nepřehlédnu nějakou chybku (ano já vím, moderní nástroje obarví, opraví chyby a automaticky verzují), a že se ve svém i cizím kódu lépe vyznám.
Pak jsou tu starobylá typografická pravidla z dob našich moudrých předků, a ty jsou pro mě zajímavější, než vaše robotí vnímání světa.
Jak bylo řečeno, každému co jeho jest.
Re: Špatný příklad
celé vláknoa když se tu oháníte těma básničkama - co definice, to sloka - tak já taky raději prózu - co definice, to věta.
a hlavně - jako u spousty jiných věcí, jde hlavně o zvyk.
Re: Špatný příklad
celé vláknoRe: Špatný příklad
celé vláknoA co se týká rychlosti zpracování inline zápisu, tak věřte nebo nevěřte, je to pravda. Doporučuji nastudovat, proč existují různé packery a minifiery. Nebo mi budete tvrdit, že všichni jejich autoři jsou neznalí srandisti? Včetně např. Deana Edwardse? :-D
Re: Špatný příklad
celé vláknoOn argumentoval tym, ze vas argument o tom, ze inline zapis pocitace spracuju rychlejsie a preto tak pisete je mylny. Ked clovek pise inline zapisom tak ma k tomu ine argumenty. Rychlost je vzdy minimalne na druhom mieste.
Re: Špatný příklad
celé vláknoCopak interpunkce, i ten Kryl
Z rozmlacenyho kostela
v krabici s kusem mydla
prinesl sem si andela
Polamali mu kridla
Dival se na mne oddane
ja mel jsem trochu tremu
tak vtiskl jsem mu do dlane
lahvicku od parfemu
se da zapsat jako one-liner:
Z rozmlacenyho kostela / v krabici s kusem mydla / prinesl sem si andela / Polamali mu kridla / Dival se na mne oddane / ja mel jsem trochu tremu / tak vtiskl jsem mu do dlane / lahvicku od parfemu
U Kryla už jsme k tomu slepi, ale treba u Isaca Wattse se zrusenim pretty-printingu ztrati to nejpodstatnejsi -- srovnej:
Our God, our help in ages past, / Our hope for years to come, / Our shelter from the stormy blast, / And our eternal home.
versus
Our God, our help in ages past,
Our hope for years to come,
Our shelter from the stormy blast,
And our eternal home.
Viz optický rým.
Webdeveloper, Firebug
celé vlákno/*footer*/
p{color: #000; font-size: .9em; width: 100%; text-align: center}
Přehledný, jasný. A když už něco jasný není, nebo po roce nebude, máme tu firebug či webdeveloper, který nám už předpisy pro konkrétní prvek dohledá nejen na více místech jednoho CSS ale i ve více CSSkách, když už jsme si to takhle roztahali.
Re: Webdeveloper, Firebug
celé vlákno
/*footer*/
p{color: #000; font-size: .9em; width: 500px; text-align: center; clear: both; margin: 10px 0px; padding: 5px 5px 0px 5px;}
Osobně, kdybych takový kód po vás převzal, musel bych jít za nějakým CSSTidy a požádat jej o převod do velkorysé podoby.
Ano, Firebug je skvělý a i neuvěřitelně zkomprimovaný kód převede do čitelnější podoby.
Proč by ale za nás měl počítač (Firebug) naši práci převádět do čitelné podoby? To bychom měli dělat sami, my jsme lidé a pro nás je čitelnost důležitá.
Od počítače chci přesně opačný proces - komprimaci a tedy převod do nečitelné podoby.
Re: Webdeveloper, Firebug
celé vláknoRe: Webdeveloper, Firebug
celé vláknoAle vážně - vy tvrdíte, že komprimovat by měl člověk a dekomprimovat počítač. Já tvrdím opak.
Člověk potřebuje komunikovat srozumitelným způsobem. Kodér je člověk a proto často předává kód jiným lidem. Vždyť kód je také jazyk. Je to prostředník mezi člověkem a počítaček. A také člověkem a člověkem. Proto by člověk měl dbát na to, aby jeho jazyk byl srozumitelný lidem.
Re: Webdeveloper, Firebug
celé vláknoO syntax-highlighting jsem slyšel poprvé včera vnoci
Pak ovšem váš článek a obhajobu "velkorysého" zápisu naprosto chápu. Leč jsou lidé, kteří tuto funkci používají a proto nemají potřebu používat "velkorysý" zápis.
Ale vážně - vy tvrdíte, že komprimovat by měl člověk a dekomprimovat počítač. Já tvrdím opak.
Probůh, kde? Stroj nic nedekomprimuje. Stroj zpracuje to, co mu přijde na vstup. Komprimovaný vstup zpracovává rychleji. Stačí vám to takhle?
Proto by člověk měl dbát na to, aby jeho jazyk byl srozumitelný lidem.
Ale inline zápis evidentně srozumitelný je, když ho řada lidí používá. Co na tom nechápete?
Re: Webdeveloper, Firebug
celé vláknoO syntax-highlighting jsem slyšel poprvé včera vnoci..
Pak ovšem váš článek a obhajobu "velkorysého" zápisu naprosto chápu.
Ó, pardon, větu jsem zřejmě nedostatečně označil jako ironii.
Ale inline zápis evidentně srozumitelný je, když ho řada lidí používá. Co na tom nechápete?
Řada lidí také lže a krade. Pardon, to považujete za argument hodný svého jména? :-)
Re: Webdeveloper, Firebug
celé vláknoZ mojich skusenosti viem, ze zapis do riadku je dobry pokial nepresiahne dlzku 4-5 definicii. Potom sa stava necitatelnym a velmi jednotvarnym.
Naopak pokial treba zapisat viac direktiv, tak je dobre vyuzit odriadkovanie, pretoze pre oko je jednoduchsie citat kratke dlzky riadkov nez dlhe.
Inak suhlasim s tebou v tom, ze preco by mal pocitac previest nasi hnusnu pracu do pouzitelnej podoby. Prave to ma robit opacne, my mame urobit peknu pracu, a o optimalizacie sa ma postarat pocitac. Na to tu predsa je.
Re: Webdeveloper, Firebug
celé vláknoOsobne posledni dobou ale pouzivam prevazne 'vim' a pouzivam trosku kompromis - mezery za dvojteckami ne, neco nechavam na jednom radku (napr. celou definici pisma) a neco davam na radek dalsi (zvlast barvy, zvlast pismo, zvlast okraje):
.ukazka {
color:#000; backgroud-color:#fff;
font-size:.9em; font-weight:bold;
width:500px; height:200px;
text-align:center; clear:both;
margin:10px 0px; padding:5px 5px 0px 5px;
}
Co se tyce zvetseni kodu, tak ten se prilis nezvetsi (misto jedne mezery za strednikem je konec radku a tabulator = jeden znak navic) a je to o neco prehlednejsi nez vse na jednom radku a navic to neni ani prilis dlouhe (takze se neuroluji k smrti).
Re: Webdeveloper, Firebug
celé vláknoRe: Webdeveloper, Firebug
celé vláknoJednoriadkovy zapis pravidiel
celé vláknoTiez pouzivam jednoriadkovy zapis pravidiel, ale s medzerami:
/* Secondary navigation */
#sec-nav a { text-decoration: none; color: #a47463; }
#sec-nav a:hover { color: #c86130; }
#sec-nav a.current { font-weight: bold; }
Dlhe roky som bol zastancom viacriadkoveho zapisu, ale potom som prisiel na to, ze jednoriadkovy ma viacero vyhod. Okrem zjavnych ako je mensia velkost vysledneho suboru, je to hlavne mensi pocet riadkov (3 - 4 krat menej), cim odpada nutnost neustaleho rolovania hore dole. Skuste pracovat s 200-riadkovym kodom a potom s 800-riadkovym.
No a napokon dalsia velka vyhoda (ak nie najvacsia) je, ze dobre vidite vztahy a dedenie medzi selektormi pokial ich zapisujete pod seba. Jasne vidite (na jednej obrazovke), co vsetko ovplyvnuje vysledny dizajn urciteho prvku. Ako je to konkretne ovplyvnovane, teda pravidla, je dolezite az sekundarne, preto pravidla mozu byt na jednom riadku, kde si uz lahko dohladate ci tam je float: left; alebo float: right;
Re: Jednoriadkovy zapis pravidiel
celé vláknoTo pak ale svědčí o tom, že stylesheet není rozdělen do separátních souborů. Pracovat s CSS v jednom souboru s 800 řádky může být hezký masakr.
Re: Jednoriadkovy zapis pravidiel
celé vláknoRe: Jednoriadkovy zapis pravidiel
celé vláknoa) Čitelnost a udržovatelnost kódu je důležitější vlastnost než (mnohdy fiktivní) výkonnost. "Far better to trade a few cycles and a few kilobytes of memory for the overhead of a scripting language's memory manager and economize on far more valuable human time." Eric Raymond, Why Python?, http://www.linuxjournal.com/article/3882
b) Od optimalizace, minimalizace a manipulace kódu jsou tu dobré nástroje a stroje, ne lidé. Například v Ruby on Rails: http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#M001687
Re: Jednoriadkovy zapis pravidiel
celé vláknoAd a) inline kód je pro mě čitelný a udržovatelný, nevidím důvod ho psát jinak. A co se týká výkonnosti, kterou označujete za fiktivní - zkuste méně číst a více dělat. Opět tady poučuje někdo, kolem koho praxe ani neproběhla. Zkuste si to někdy změřit a spočítat, jaký traffic které řešení produkuje a kolik požadavků jde na server. A od své osobní stránečky to přepočítejte na portál se stovkami tisíc pageviews denně. A pokud mi chcete tvrdit, že počet požadavků na server není důležitý, tak se s vámi opravdu nemám o čem bavit.
Ad b) viz výše, optimalizaci CSS kódu dělám už tím, jak jej píšu. Nepotřebuju na to nástroje. Na JS samozřejmě Edwardsůw packer používám.
Re: Jednoriadkovy zapis pravidiel
celé vláknoRe: Jednoriadkovy zapis pravidiel
celé vláknoAno, jsou dva přístupy k práci. Buď zaměstnavatel najme lemply programátory a radši koupí silnější železo, nebo bude zaměstnávat profíky, kteří nebudou mít se čtením kódu takové problémy, a pak se mu ta investice vrátí v mnohem více věcech, než jen na ušetřeném železe.
Re: Jednoriadkovy zapis pravidiel
celé vláknoNo nejako zabudate na fakt, ze existuje taka pekna vec co sa vola CACHE. A pri casto navstevovanych strankach, pocitam ze tam ti ludia chodia kazdy den, zapracuje velmi dobre prehliadac.
Re: Jednoriadkovy zapis pravidiel
celé vláknoCache funguje na regulaci samotného trafficu, ale požadavek jako takový se posílá vždy.
Re: Jednoriadkovy zapis pravidiel
celé vláknoAno poziadavok sa posiela stale. Toho som si vedomi. Kedysi som bol podobne na tom ako vy. Setrit, setrit, setrit. Lenze praca vyvojara je drahsia ako to zelezo na ktorom to bezi.
Re: Jednoriadkovy zapis pravidiel
celé vláknoRe: Jednoriadkovy zapis pravidiel
celé vláknoRe: Jednoriadkovy zapis pravidiel
celé vláknoAle teď k celému článku - subjektivní článek o ničem (o tom ale asi rubrika je). Jediné co podle mého názoru je dobré dodržovat je pasáž o používání zkrácených zápisů. Zkratek je moc a jeden pak neví, zda původní autor "nedohlédl" všech dopadů zkratky, nebo v tom byl naopak záměr. Jestli jsou vlastnosti na jedné řádce nebo na více je v době syntax highlighting opravdu jedno.
Re: Jednoriadkovy zapis pravidiel
celé vláknoAch jo. Proč používat hlavu, když to všechno můžu dát stroji. ... viz výše, optimalizaci CSS kódu dělám už tím, jak jej píšu
Komprimujete kód hlavou a šetříte tím svůj software a hardware? :-) To je příkladně ekologické!
Zároveň tím ale zvyšujete pravděpodobnost, že člověk, který kód bude chtít převzít po vás, sáhne po zcela neekologickém řešení - použije software, aby stylopis rozšifroval.
A pokud mi chcete tvrdit, že počet požadavků na server není důležitý..
Počet požadavků je samozřejmě důležitý, více se mu bude věnovat druhý díl článku.
Re: Jednoriadkovy zapis pravidiel
celé vláknoRe: Jednoriadkovy zapis pravidiel
celé vláknocim odpada nutnost neustaleho rolovania hore dole.
Zastánci "lidmi komprimovaného kódu" často vychází z premisy, že rolování je zlo. Tvrdím, že rolování žádné zlo není. Je to činnost, o které lidé (nerozumím proč) často mluví s despektem, ale v reálném užívání jim dělá stejné "problémy" jako zapnutí počítače. :-)
...dobre vidite vztahy a dedenie medzi selektormi pokial ich zapisujete pod seba.
Podobné selektory máte správně za sebou a souvislosti byste viděl i v případě velkorysého zápisu. Dokonce i na malém displeji:
/* Secondary navigation */
#sec-nav a
{
text-decoration: none;
color: #a47463;
}
#sec-nav a:hover
{
color: #c86130;
}
#sec-nav a.current
{
font-weight: bold;
}
Re: Jednoriadkovy zapis pravidiel
celé vláknoMoje pravidla
celé vláknoJinak moje další pravidla jsou: Mezery za středníky (aby byla rychlejší orientace mezi vlastnostmi na řádku), ale za dvojtečkou ne (tam to imho není potřeba - hledám margin, pomocí mezer ho rychle najdu a sotva najdu margin, tak už znám jeho hodnotu). Mezery za dvojtečkou by byly dobré, kdybych hledal podle hodnot :-).
Jak psal nějaký kolega nade mnou řádkový zápis, ale s mezerami za otevírací složenou závorkou a před uzavírací, tak tento způsob se mi nelíbí - ty mezery mi přijdou takové matoucí a zbytečně roztahují řádek. Komentáře píšu pouze u celých sekcí kde označuji místo že tady styluju hlavní menu, tady levé menu, tady stránkování, tady univerzální styly atp.
Re: Moje pravidla
celé vláknoNejvětší CSS soubor se kterým jsem dělal měl 4960 řádků (styl byl jak je uveden v článku). V takovém souboru se opravdu mizerně orientuje.
Myslím, že ve vaší druhé verzi souboru o 1122 řádcích v inline verzi to nebude o mnoho lepší :-).
Možná by pro někoho bylo zajímavé jak se v takto velkých souborech orientuji:
Soubor mám rozdělený do sekcí a subsekcí, kde každá nemá více než 10-15 selektorů a vlastní unikátní pojmenování ("Stránka Kontakt", "Stránkování", "Patička"). Mezi jednotlivými sekcemi se pohybuji pomocí vyhledávání (ctrl+f). V rámci sekcí pak očima.
Na to ctrl+f nejsem příliš pyšný :-) Chtěl bych, aby můj PSPad uměl totéž, co CSSEdit - automaticky zobrazovat strukturu stylopisu: http://macrabbit.com/cssedit/screenshots/Reindent.jpg
Re: Moje pravidla
celé vláknoinline?
celé vláknoJe mnohem jednodussi cist diff, kdyz presne vidim ktery radek byl odebran a ktery smazan.
Posudte sami:
- #content #hlavicka2 p#menu li a { width: 130px; padding: 10px 4px 10px 6px; display: block; float: left; text-transform: uppercase; background-color: #4DBEE9; color: #292929; }
+ #content #hlavicka2 p#menu li a { width: 180px; padding: 10px 4px 10px 6px; display: block; float: left; text-transform: uppercase; background-color: #4DBEE9; color: #292929; }
vs.
#content #hlavicka2 p#menu li a {
...
- width: 130px;
+ width: 180px;
...
}
V kterem z dvou vyse uvedenych zapisu zjistite jaka byla opravdu zmena rychleji?
Jinak toto samozrejme plati i pro jine jazyky.
Pokud vam vadi prilis zobrazeneho kodu naraz, tak na to pouzivam folding..
PS: omlouvam se ze u druheho prikladu jsem umazal ostatni vlastnosti, ale mistni system chtel prispevek oznacit jako SPAM, berte to prosim tedy orientacne..
Re: inline?
celé vláknoRe: inline?
celé vláknoNavic kdyz ovladam SVN z terminalu, tak si nebudu zapinat zelvu nebo neco podobnyho.
Re: inline?
celé vláknoVíc si říkám zda by nebylo záhodny mistry kódery taky naučit kódovat. Když po nich následně provádím implementaci a zjistím že tenhle box není roztahovací, tohle je úplně blbě a ve výsledku si 40% musím nastylovat sám tak by mě z toho "jeblo". Uvedu příklad který mě vážně rozesmál: koder mi nastyloval počasí jako obrázek na pozadí, který v sobě obsahoval ikonu počasí a danou teplotu. (a ted co ja s tim, mam pro kazždý stupeň generovat obráízek, nebo si to nastylovat sám? :-D)
tip na web
celé vláknoabeceda
celé vláknoPríklad:
.objekt {
border:1px solid black;
border-bottom: 2px solid black;
display:block;
float:left;
font-size:1.2em;
height:100px;
width:100px;
}
Re: abeceda
celé vláknoRe: abeceda
celé vláknoMůj styl
celé vlákno
div#menu4 {}
div#menu4 ul {margin: 0; padding: 0;}
div#menu4 li {float: left;}
div#menu4 a {}
Oblíbil jsem si ho z těchto důvodů:
- vejde se více na obrazovku
- jelikož pracuji na širokoúhlém displayi, lépe ho využiji
- deklarace začínají od stejného místa
- a celkově mi to osobně příjde přehlednější
Re: Můj styl
celé vlákno- pozicování
- float & display
- rozměry
- margin & padding
- color/font/line-height/text-align...
- border
- background
- zbytek
Re: Můj styl
celé vláknoRe: Můj styl
celé vláknovýhody inline zápisu + pár odkazů do světa
celé vláknoPředně děkuji autorovi za otevření tohoto tématu zde na Zdrojáku. O tom, jakým způsobem psát stylopis tak, aby se v něm vyznal i někdo jiný (popřípadě i sám autor po delší době) a aby byl snadno udržitelný, bychom měli mluvit stále dokola.
Osobně jsem zastánce inline zápisu. Proč?
- Jako uživatel širokoúhlé obrazovky mám přeci jen více místa do strany, než do výšky
- Jsem šťastný uživatel Macbooku. Pokud jste někdy pracovali s jeho touchpadem zjistíte, že mezi scrolováním dolů a jakýkoli jiným směrem není rozdíl. Pokud ovšem pracuji s myší uznávám, že scrollování do strany jde maličko hůře.
- Inline zápis mi umožňuje odsadit jednotlivé definice dle toho, jak jsou zanořeny ve struktuře stránky. Např:
.article {margin: 1em; overflow: hidden}
.article h2 {border-bottom: 0}
Takto se mi lépe orientuje v kódu, nejvíc na levé straně je nadřazený element, věci, které jsou uvnitř něj nastylovány specificky jsou poté odsazeny.
Několikrát jsem řešil to, zda bych měl jednotlivé definice nějak řadit. Někteří lidé to dělají abecedně, jiní na to kašlou a další mají nějaký svůj způsob. Osobně to nikterak neřadím z důvodu toho, že jsem příliš pohodlný takovou strukturu dodržovat a přemýšlet, kam danou definici napsat. Máte někdo zkušenosti s abecedním řazením? Pokud po vás někdo převezme kód, je to pro něj pohodlnější, když ví přesně kde má definici hledat?
Ještě mě zaujal systém Erica Meyera. Ten píše některé definice na jeden řádek a jiné odsazuje na nový. Má v tom určitý systém, kdysi o tom psal, ale nedaří se mi ten článek dohledat.. (pro ilustraci mrkněte na jeho CSS).
Nebo třeba Chris Coyier, ten píše css taky inline zápisem, ovšem rozděluje opticky stylopis na dvě poloviny. V jedné jsou selektory a v druhé definice (viz např. stylopis CSS-tricks.com). Taky zajímavé a opticky to nevypadá špatně...
Prostě možností je mnoho, škoda že se článek jimi aspoň trošku nezabýval a rovnou šel stylem co řádek, to definice. Určitě to může spoustě lidem sedět, další spousta lidí ale raději vidí více selektorů najednou a má větší přehled nad dědičností (imho je to z inline zápisu lépe vidět - tedy alespoň já to tam lépe vidím. To je důvod, proč ho používám. S čímž je částečně spojené to zanořování o kterém jsem mluvil.
Co vy na to? Používáte některou z uvedených věcí, nebo máte svůj vlastní styl? Řadíte jednotlivé definice, nebo je necháváte ležet?
Re: výhody inline zápisu + pár odkazů do světa
celé vlákno#nav li a pod tym #nav a odsadis ako?
Re: výhody inline zápisu + pár odkazů do světa
celé vláknoRe: výhody inline zápisu + pár odkazů do světa
celé vláknoSuper, Honzo. Díky za komentář.
K odsazování...
Nedávno jsem s ním experimentoval, ale odradila mě od toho právě Natalie Downe, která IMHO správně říká, že tím vytváříš zpětnou závislost formátování stylů na struktuře HTML. Ta když se ti změní, musíš jít ještě do stylů a upravit odsazování.
K E. Meyerovi a tomu, že "píše některé definice na jeden řádek a jiné odsazuje na nový"
Super, že ho zmiňuješ. Vlastně to občas dělám taky - u jednodušších stylopisů ten způsob používám pro definice skupin selektorů, které se od sebe liší jen jednou vlastností - třeba obrázkem na pozadí:
.calendar-date.day-1 { background-image: url("/images/days/1.png") }
.calendar-date.day-2 { background-image: url("/images/days/2.png") }
Prostě možností je mnoho, škoda že se článek jimi aspoň trošku nezabýval..
Jsem přesvědčený, že varianta, kterou popisuji v článku, je správná. Proč bych tedy v rubrice Subjektivně popisoval jiné? K tomu jsou komentáře a v té souvislosti jsem moc rád za odvážlivce, kteří zde svůj kód odhalili a obhajují. :-)
Re: výhody inline zápisu + pár odkazů do světa
celé vláknoMáš pravdu, v subjektivním článku se asi má obhajovat jeden postup. :)
K Natalii a vytváření zpětné vazby
Ona má nepochybně pravdu, vytvářím tím určitou vazbu. Ale vem si modelový příklad. Mám z html5 element article a v něm nějaký nadpis, jméno autora etc. Mě osobně dává smysl to, že tyto dva prvky budou v tomto elementu nastylovány vždy stejně. Pokud tedy změním html strukturu třeba tak, že přesunu jméno autora na konec článku, tak se mi v CSS žádné odsazení nezmění (v CSS si naznačuji závislost, že prvek address se vyskytuje v prvku article). Pokud bych prvek address vyndal z elementu article, tak se najednou vztahuje zcela k jiné části obsahu a nemá se na něj co vztahovat jakákoli definice pro prvek address v article. Bude pravděpodobně vypadat zcela rozdílně a bude třeba napsat jinou/původní přepsat. A pokud už to přepisuji, zmáčknout ctrl+x a ctrl+v na správném místě stylu, mi přijde jako minimální cena za to, že člověk po mě přijde a koukne: jo, tady je článek, v něm je prvek address a ani se nemusí koukat do html...
Je to možná trošku zmatené, ale snad je z toho vidět ta myšlenka..
Re: výhody inline zápisu + pár odkazů do světa
celé vláknoHonzo, na příklad s článkem a jeho dceřinnými prvky velmi pravděpodobně nebudeš tou závislostí odsazování ve stylopisu na struktuře kódu omezován.
"Velmi pravděpodobně" pro mě ale není dost a hlavně v jiných případech nebude platit. Vezmi si třeba definici layoutu - tam se vnořování může měnit nejen z pohledu času a vývoje projektu, ale také z pohledu různých šablon projektu.
Dávám přednost pravidlům, která lze používat obecně, a u tohoto to neplatí.
quqwbaq
celé vlákno88GqOH ewutvbkkoynp, [url=http://quqeksacoeiw.com/]quqeksacoeiw[/url], [link=http://gcgovlrutrcc.com/]gcgovlrutrcc[/link], http://snlpsysspgcy.com/
pod seba a tabulatorovat
celé vlákno#header
#header h1
#header h1 a
potom netreba ani komentare a vsetko sa da lahko najst
OMG
celé vláknodiskusia
celé vláknoMůj styl
celé vláknohttp://img516.imageshack.us/img516/7707/styl.png (screen z rozpracovaného realitního projektu)
Výhody zarážek jsou obrovské:
- ihned vím co je nad čím a co pod čím, orientuji se v řádkách velmi rychle - bloky mi rovnou říkají co patří pod co.
prosím o oponeturu