<?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; framework</title>
	<atom:link href="http://code42.pl/tag/framework/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>
	</channel>
</rss>

