<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code42 &#187; HTML + CSS</title>
	<atom:link href="http://code42.pl/tag/html-css/feed/" rel="self" type="application/rss+xml" />
	<link>http://code42.pl</link>
	<description>Wielkie Pytanie o Życie, Kod i całą resztę</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:16:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Dlaczego frameworki CSS ssą?</title>
		<link>http://code42.pl/2010/01/29/dlaczego-frameworki-css-ssa/</link>
		<comments>http://code42.pl/2010/01/29/dlaczego-frameworki-css-ssa/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:07:16 +0000</pubDate>
		<dc:creator>Piotrek Reinmar Koszuliński</dc:creator>
				<category><![CDATA[HTML + CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=453</guid>
		<description><![CDATA[Sesja się już dla mnie skończyła, można więc coś napisać. Dzisiaj będzie jednak krótko, bo i temat prosty. Cóż to takiego framework CSS? No właśnie. Każdy wie co to są frameworki programistyczne, ale CSSowy? Według wiki: A CSS framework, also known as a web design framework is a pre-prepared library that is meant to allow [...]


Podobne wpisy:<ol><li><a href='http://code42.pl/2009/11/23/zen-coding-snippety-do-kosza/' rel='bookmark' title='Zen Coding &#8211; snippety do kosza'>Zen Coding &#8211; snippety do kosza</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Sesja się już dla mnie skończyła, można więc coś napisać. Dzisiaj będzie jednak krótko, bo i temat prosty.</p>
<h2>Cóż to takiego framework CSS?</h2>
<p>No właśnie. Każdy wie co to są frameworki programistyczne, ale CSSowy? Według <a href="http://en.wikipedia.org/wiki/CSS_framework">wiki</a>:</p>
<blockquote><p>A CSS framework, also known as a web design framework is a pre-prepared library that is meant to allow for easier, more standards-compliant styling of a webpage using the Cascading Style Sheets language. Just like programming and scripting language libraries, CSS frameworks (usually packaged as external .css sheets inserted into the header) package a number of ready-made options for designing and outlaying a webpage.</p>
</blockquote>
<p>Czyli, tak jak w językach programowania, framework jest biblioteką (w tym wypadku grupą reguł CSS) która ułatwia implementowanie jakichś standardowych, często powtarzających się funkcjonalności (w tym wypadku pewnych schematów w layoutcie).</p>
<p><span id="more-453"></span></p>
<p>Co, według mnie, frameworkiem CSS nie jest? Pisałem w listopadzie o <a href="http://blog.koszulinski.pl/2009/11/26/write-less-do-more-czyli-pimp-my-css/">parserze/kompilatorze/procesorze CSS &#8211; LESS</a>, który rozszerza składnię CSS o kilka świetnych rzeczy. Między innymi &#8211; zmienne, zagnieżdżone reguły, obliczenia, wielokrotne wykorzystywanie reguł. Jakby nie było &#8211; nie podchodzi to pod definicję z <a href="http://en.wikipedia.org/wiki/CSS_framework">Wikipedii</a>, ale niestety znajduje się w linkach do przykładowych frameworków. Dla ustalenia uwagi &#8211; <a href="http://lesscss.org/">LESS</a> nie jest frameworkiem.</p>
<h2>Czemuż ssie?</h2>
<p>Pod mą lupę wziąłem pierwsze linki zwrócone przez Google. Przyjrzałem się chwilkę frameworkom: <a href="http://www.blueprintcss.org/">Blueprint</a>, <a href="http://elasticss.com/">Elastic CSS</a>, <a href="http://developer.yahoo.com/yui/grids/">YUI 2 Grids</a>. Prawdopodobnie są lepsze rozwiązania od tych i z chęcią się im przyjrzę jeśli linki pojawią się w komciach :).</p>
<h3>Słówko o nieudanym porodzie</h3>
<p>Wypada jeszcze wtrącić, dla niezorientowanych, co to za poroniony pomysł ten <a href="http://960.gs/">Grid system</a>. Otóż wpadł ktoś na pomysł, że wygodnie będzie wszystkim (grafikom, programistom) jak ustalimy sobie, że strona składa się z X kolumn po Ypx szerokości każda, między którymi są marginesy po Zpx. Przyznam, że obaj z grafikiem byliśmy zachwyceni, aż do&#8230; pierwszego projektu. Życzę np. sporo zabawy z cieniami wychodzącymi poza granice kolumn, w przypadku kiedy nie możemy użyć <code>box-shadow</code>. Szlag trafia wszystkie piękne, okrągłe wartości.</p>
<h3>Koniec wtrącenia</h3>
<p>Najpierw kawałek kodu z <a href="http://developer.yahoo.com/yui/examples/grids/grids-gg.html">YUI 2 Grids</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;yui-main&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-b&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-g&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-g first&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-u first&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-u&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-g&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-u first&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;yui-u&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Tyle się kiedyś mówiło o semantyce kodu i oddzieleniu wyglądu od treści. Ponad pięć lat temu, kiedy zaczynałem naukę HTMLa i CSSa, trwała walka o to aby programiści zaczęli pisać porządny kod. Wydawało mi się, że teraz już nie powinno być z tym problemów, a tu zonk. Patrzę na ten przykład i co widzę?</p>
<ul>
<li>Prezentacja zbita razem z HTMLem &#8211; żeby zmienić układ strony zmieniamy HTMLa, a nie CSS,</li>
<li>Kompletnie bezznaczeniowe nazwy klas i identyfikatorów &#8211;  jedno wielkie semantyczne szambo. Wybrałem akurat framework od YUI, bo jest w tym najgorszy (choć Blueprint mu nie ustępuje). Elastic CSS wygląda trochę lepiej,</li>
<li>Divitis. W przypadku YUI można chyba akurat dowolnie zmieniać użyte tagi, bo framework resetuje marginesy i paddingi dla wszystkich elementów (co też, tak na marginesie, uważam za kiepską praktykę). Kiedy jednak używając Blueprinta postanowimy zawrzeć którąś kolumnę w listę, to wszystko szlag trafia, bo uwaga&#8230; niektóre selektory zawierają nazwę tagu :O</li>
<li>Narzucona struktura i kolejność elementów w kodzie HTML. Ja akurat poświęcam sporo uwagi temu aby każdy element nawigacyjny był w sensownym miejscu, aby nie używać niepotrzebnych tagów, a wykorzystując framework nie mam tej elastyczności,</li>
<li>I wreszcie &#8211; przecież to wszystko co oferuje framework można w czasie, który jest bez znaczenia w stosunku do całego projektu, napisać ręcznie. To jest kilka reguł, które doświadczona osoba pisze na raz i to od razu z ewentualnym hackiem dla IE6. Tak, wiem, że nie wszyscy mają taką wiedzę, ale wykorzystując framework nigdy jej nie pogłębią.</li>
</ul>
<p>Tak więc w żadnym wypadku nie widzę sensu w używaniu frameworków do budowy układu strony. Żeby jednak nie było, że w ogóle nie umiem wykorzystywać zewnętrznego kodu &#8211; uważam, że przydatne są frameworki poprawiające typografię, bądź też pod niektórymi względami formularze. Muszą jednak bazować na selektorach używających tagów, a nie klas, czy nie daj Boże identyfikatorów.</p>


<p>Podobne wpisy:<ol><li><a href='http://code42.pl/2009/11/23/zen-coding-snippety-do-kosza/' rel='bookmark' title='Zen Coding &#8211; snippety do kosza'>Zen Coding &#8211; snippety do kosza</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2010/01/29/dlaczego-frameworki-css-ssa/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zen Coding &#8211; snippety do kosza</title>
		<link>http://code42.pl/2009/11/23/zen-coding-snippety-do-kosza/</link>
		<comments>http://code42.pl/2009/11/23/zen-coding-snippety-do-kosza/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:15:57 +0000</pubDate>
		<dc:creator>Piotrek Reinmar Koszuliński</dc:creator>
				<category><![CDATA[HTML + CSS]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[zen]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=430</guid>
		<description><![CDATA[Snippety do htmla? Nieeee. Zobaczcie Zen Coding. W skrócie działa to tak. Wpisuję w edytorze CSSową składnią: div#content&#38;gt;h1+p Wciskam jakąś kombinację klawiszy i dostaję: &#60;div id=&#34;content&#34;&#62; &#60;h1&#62;&#60;/h1&#62; &#60;p&#62;&#60;/p&#62; &#60;/div&#62; Sprytne, nie? :) Ale to jeszcze mało. Spróbujcie tego: div#top&#62;h1&#62;a&#91;title=Do strony głównej&#93;&#123;Moja strona&#125;&#60;ul#menu&#62;li.pos$*3&#62;a &#60;div id=&#34;top&#34;&#62; &#60;h1&#62; &#60;a href=&#34;&#34; title=&#34;Do strony głównej&#34;&#62;Moja strona&#60;/a&#62; &#60;/h1&#62; &#160; &#60;ul id=&#34;menu&#34;&#62; [...]


Podobne wpisy:<ol><li><a href='http://code42.pl/2010/01/29/dlaczego-frameworki-css-ssa/' rel='bookmark' title='Dlaczego frameworki CSS ssą?'>Dlaczego frameworki CSS ssą?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Snippety do htmla? Nieeee. Zobaczcie <a href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/">Zen Coding</a>. W skrócie działa to tak. Wpisuję w edytorze CSSową składnią:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #cc00cc;">#content</span>&amp;gt<span style="color: #00AA00;">;</span>h1<span style="color: #00AA00;">+</span>p</pre></div></div>

<p>Wciskam jakąś kombinację klawiszy i dostaję:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h1<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/h1<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/p<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Sprytne, nie? :) Ale to jeszcze mało. Spróbujcie tego:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #cc00cc;">#top</span><span style="color: #00AA00;">&gt;</span>h1<span style="color: #00AA00;">&gt;</span>a<span style="color: #00AA00;">&#91;</span>title<span style="color: #00AA00;">=</span>Do strony głównej<span style="color: #00AA00;">&#93;</span><span style="color: #00AA00;">&#123;</span>Moja strona<span style="color: #00AA00;">&#125;</span>&lt;ul<span style="color: #cc00cc;">#menu</span><span style="color: #00AA00;">&gt;</span>li.pos$<span style="color: #00AA00;">*</span><span style="color: #cc66cc;">3</span><span style="color: #00AA00;">&gt;</span>a</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h1<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">&quot;Do strony głównej&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Moja strona<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h1<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ul</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;menu&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;pos1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;pos2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;pos3&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ul<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Chyba nie muszę mówić jak bardzo taka pomoc przyspiesza pracę. Napisanie z palca kodu z drugiego przykładu zajęłoby mi przypuszczalnie więcej niż 2 minuty. Gdybym użył snippetów (do których przy HTMLu nie mogę się przyzwyczaić) może skróciłbym ten czas dwukrotnie. Zaś używając wynalazku Zen Coding całość naklepałem w 20s (i to nie mając wprawy). Tak więc gorąco polecam.</p>
<p>Gdyby ktoś szukał wtyczki do VIMa, to powstał <a href="http://github.com/rstacruz/sparkup" title="VIM zen coding plugin">plugin</a>, którego twórca zainspirował się Zen Codingiem.</p>
<p>Wpis ten opublikowałem też na <a href="http://reinmar.jogger.pl" title="Zapiski na koszulce - html, css, usability i nowe technologie">swoim prywatnym blogu</a>.</p>


<p>Podobne wpisy:<ol><li><a href='http://code42.pl/2010/01/29/dlaczego-frameworki-css-ssa/' rel='bookmark' title='Dlaczego frameworki CSS ssą?'>Dlaczego frameworki CSS ssą?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2009/11/23/zen-coding-snippety-do-kosza/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

