<?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>Aleksandar Saša Babić - blog &#187; CSS+HTML</title>
	<atom:link href="http://www.salebab.net/teme/csshtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.salebab.net</link>
	<description>Razvoj web aplikacija - PHP, MySQL, Javascript, Ajax, jQuery i druge psovke</description>
	<lastBuildDate>Sat, 29 Oct 2011 15:02:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Odakle početi sa pravljenjem web sajta?</title>
		<link>http://www.salebab.net/odakle-poceti-sa-pravljenjem-web-sajta/</link>
		<comments>http://www.salebab.net/odakle-poceti-sa-pravljenjem-web-sajta/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 21:16:57 +0000</pubDate>
		<dc:creator>Aleksandar Babić</dc:creator>
				<category><![CDATA[CSS+HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Start]]></category>

		<guid isPermaLink="false">http://www.salebab.net/?p=547</guid>
		<description><![CDATA[Jedan moj prijatelj me je zamolio da mu pomognem da uplovi u vode web razvoja, pa smo se dogovorili da to odradimo u stilu pitanja i odgovora. Za početak, on mi je postavio par pitanja, pa evo mojih odgovora. Pitanje 1: Prvo što me je zanimalo u čemu se radi, tj. šta ti koristiš za [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-554" title="Where to start" src="http://www.salebab.net/wp-content/uploads/2011/10/Where-to-start1.jpg" alt="" width="100" height="91" align="left" />Jedan moj prijatelj me je zamolio da mu pomognem da uplovi u vode web razvoja, pa smo se dogovorili da to odradimo u stilu pitanja i odgovora. Za početak, on mi je postavio par pitanja, pa evo mojih odgovora.<span id="more-547"></span></p>
<p><em><strong>Pitanje 1:</strong> Prvo što me je zanimalo u čemu se radi, tj. šta ti koristiš za kucanje koda? Nama je za ispit profa tražio Notepad++, ali sam sada instlirao Dreamweaver, koji mi nije baš legao, pa sada kucam u NetBeans-u, on mi je dobar.</em></p>
<p>U startu si napravio dobar izbor. Kada sam počinjao pre 5-6 godina tu nije bilo mnogo izbora. Dreamweaver 2004 je bio de facto najbolji editor za html i css. Meni je on u početku odgovarao jer sam mogao da splitujem view i da vidim i kod i rezultat kodiranja, onosno kako će izgledati. Nisam ni morao da pišem CSS, već da kroz razne menije stilizujem sajt. Ali, onda sam na Internetu nalazio preporuke da je taj način loš i da ništa neću naučiti, pa sam se trudio da shvatim kako funkcioniše box model, šta su block, a šta inline elementi, učio one sve fore iz CSS-a i krenuo samostalno da pišem kod. Bilo je tu mnogo muke, nisam imao nikog da mi objasni šta je šta i kako funkcioniše, već sam sam istraživao i isprobavao razne tehnike. Kad ukapiraš stvari, shvatiš koliko je to zapravo jednostavno <img src='http://www.salebab.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Kasnije, sa Dw sam prešao na Zend Studio, zato što je imao mnogo bolju podršku za PHP od Dw koji je ranije imao samo syntax hightlighing, bez autocomplete opcije.</p>
<p>Sada koristim nekoliko editora, za razvoj <a title="Netbeans IDE" href="http://www.netbeans.org" target="_blank">Netbeans </a>ili <a title="PhpStorm IDE" href="http://www.jetbrains.com/phpstorm/" target="_blank">PhpStorm</a>, neki projekti su mi u jednom, neki u drugom, nisam se još odlučio koji da mi bude default za razvoj.  Notepad++ mi je default editor u Windowsu, služi mi uglavnom za brzo pregledanje fajlova, možda neke brze izmene (ne bih da čekam 5min da mi se Netbeans digne).</p>
<p>Za bilo kakav ozbiljan razvoj jako je bitno da to bude IDE, a ne običan editor. Debugger, inteligentan autocomplete i mnoge druge pomoćne opcije se više nego korisne.</p>
<p><em><strong>Pitanje 2: </strong>Od čega početi? Prikupiti materijal, napraviti strukutru pa onda index. Ali, koje smernice pratiti? Koliko nivoa u dubinu, koliko i kakvih menija praviti?</em></p>
<p>Nema nekog univerzalnog pravila i uglavnom zavisi od vrste i veličine projekta. Na primer, nekada je dobro  krenuti od dizajna, nekada od definisanja strukture i elemenata, nekada od projektovanja baze podataka, a nekada i od pisanja frejmvorka.</p>
<p>Verovatno se pitanje odnosi na strukturu svih stranica, odnosno sitemap iliti hijerarhiju stranica. Jedno je samo važno &#8211; web razvoj nema konačno stanje, pa ti zato preporučujem da krećeš od jednostavnijih struktura, do prvog nivoa. Kasnije, uvek možeš dorađivati i širiti hijerarhiju, što opet zavisi od tipa projekta, ali uvek vodi računa da to bude što jednostavnije za razumevanje.</p>
<p><em><strong>Pitanje 3:</strong> Horizontalni meni – neko ga uradi kao UL listu, a negde sam video i kao skup „left float“ divova. Šta je bolje?</em></p>
<p>Bolje je da to bude lista linkova (UL LI) i to samo zbog semantike, jer je nekako logično da ti linkovi budu grupisani u neku listu, dok DIV (divizija ili sekcija) element bi trebalo da koristiš za grupisanje i pozicioniranje elemenata na strani (npr header, footer, sidebar, article). U oba slučaja, CSS kod će biti maltene isti.</p>
<p><em><strong>Pitanje 4</strong>: Posle završene index stranice, da li prekopirati kod (tj header, footer, menu divove) pa menjati centralni sadržaj tako dobiti nove html stranice ili se to radi na neki drugi način</em></p>
<p>Ne, nikako. To će ti postati najgora noćna mora kada budeš trebao nešto da promeniš, moraćeš to isto da uradiš na mnogo drugih mesta. Razmisli o tome da uporedo sa HTML i CSS-om učiš i PHP.  Ukratko, vrlo je jednostavno da podeliš HTML na delove i da ih „ubacuješ“ na stranicu po potrebi, pa tako možeš imati više HTML fajlova sa PHP ekstenzijom – header.php, index.php, footer.php i onda ćeš samo u index.php dodati &lt;?php include „header.php“; ?&gt; To je najjednostavan primer, vremenom ćeš videti kako neki paterni (<a title="MVC" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">MVC</a>) i neke biblioteke (<a href="http://www.smarty.net" target="_blank">Smarty</a>) ti mogu dosta olakšati razvoj.</p>
<p>Srećno, javi kada napraviš i postaviš svoj prvi sajt <img src='http://www.salebab.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.salebab.net/odakle-poceti-sa-pravljenjem-web-sajta/&via=salebab&text=Odakle početi sa pravljenjem web sajta?&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.salebab.net/odakle-poceti-sa-pravljenjem-web-sajta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HTTP zahtevi za slikama iz CSS fajla</title>
		<link>http://www.salebab.net/http-zahtevi-za-slikama-iz-css-fajla/</link>
		<comments>http://www.salebab.net/http-zahtevi-za-slikama-iz-css-fajla/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:39:58 +0000</pubDate>
		<dc:creator>Aleksandar Babić</dc:creator>
				<category><![CDATA[CSS+HTML]]></category>
		<category><![CDATA[Optimizacija]]></category>

		<guid isPermaLink="false">http://www.salebab.net/?p=66</guid>
		<description><![CDATA[Nedavno sam primetio jednu čudnu stvar &#8211; ukoliko se link do jedne iste slike nekoliko puta ponavlja u CSS fajlu, Firefox (a verovatno i drugi) neće napraviti jedan HTTP upit do te slike, već onoliko upita, koliko se puta taj isti link ponavlja u tom fajlu. Zvuči neverovatno da se prilikom parsiranja CSS fajla ne [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border: 0pt none;" title="request" src="http://www.salebab.net/wp-content/uploads/2010/01/request.jpg" alt="" width="359" height="157" align="left" />Nedavno sam primetio jednu čudnu stvar &#8211; ukoliko se link do jedne iste slike nekoliko puta ponavlja u CSS fajlu, Firefox (a verovatno i drugi) neće napraviti jedan HTTP upit do te slike, već onoliko upita, koliko se puta taj isti link ponavlja u tom fajlu. Zvuči neverovatno da se prilikom parsiranja CSS fajla ne vodi računa o već poslatim zahtevima, jer takva optimizacija može biti uvedena uz svega par linija koda i sprečiti nepotrebne zahteve i zauzeće resursa. No, kako bilo, ostaje na nama da se potrudimo da ubrzamo naš sajt drugim metodama.<span id="more-66"></span></p>
<p>Ukoliko ste se bavili optimizacijom sajtova, verovatno ste naleteli na dobro poznate <a href="http://developer.yahoo.com/performance/rules.html" target="_blank">savete </a>od Yahoo-a i prvi među njima savet za smanjenje broja HTTP zahteva. Kombinovanje više sličica u jednu i prikazivanje delova te kombinovane slike preko koordinata (background-position u CSS-u) ima svoje ogromne prednosti.</p>
<p>Uzmimo za primer da na stranici imamo tri liste sa tri različite sličice za strelice. Kombinovanjem, tri sličice možemo spojiti u jednu.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-104" title="arrows" src="http://www.salebab.net/wp-content/uploads/2010/01/arrows1.jpg" alt="" width="320" height="157" /></p>
<p style="text-align: left;">U CSS fajlu je takođe veoma jednostavno podesiti putanje do sličice, i koordinate za svaku listu posebno. Ujedno, CSS kod sličan ovome se može videti na mnogim sajtovima širom interneta, recimo <a href="http://www.alistapart.com/articles/sprites">A List Apart &#8211; CSS Sprites</a> ili <a href="http://stylemeltdown.com/2007/10/22/image-sprite-navigation-with-css/">Image Sprite CSS Navigation</a>.</p>
<pre class="brush: css; title: ; notranslate">
ul {
	list-style-type:none;
}
ul li {
	padding-left:15px;
}
ul#black li {
	background: #fff url(&quot;arrows.jpg&quot;) no-repeat left 6px;
}
ul#blue li {
	background: #fff url(&quot;arrows.jpg&quot;) no-repeat left -14px;
}
ul#green li {
	background: #fff url(&quot;arrows.jpg&quot;) no-repeat left -34px;
}
</pre>
<p style="text-align: left;">I ako je to putanja do iste sličice, sa ovakvim kodom možemo samo pogoršati situaciju. Naš browser će poslati tri zahteva za istom sličicom i download-ovaćemo tri iste slike. Pošto je kombinovana slika većih dimenzija i veće težine od svake pojedinačne, jasno je da se ovakvom metodom uvećava protok podataka za 3 puta.</p>
<p style="text-align: left;">Rešenje ovog problema je veoma jednostavno i treba samo jednom &#8220;pozvati&#8221; tu sličicu, a poziciju im podesiti, za svaku listu posebno.</p>
<pre class="brush: css; title: ; notranslate">
ul {
	list-style-type:none;
}
ul li {
	padding-left:15px;
}
ul#black li, ul#blue li, ul#green li  {
	background: #fff url(&quot;arrows.jpg&quot;) no-repeat;
}
ul#black li {
	background-position: left 6px;
}
ul#blue li {
	background-position: left -14px;
}
ul#green li {
	background-position: left -34px;
}
</pre>
<p style="text-align: left;">Možete pogledati i primere <a href="http://www.salebab.net/testiranje/arrows/" target="_blank">neoptimizovanog </a>koda i <a href="http://www.salebab.net/testiranje/arrows/?optimizovan=1" target="_blank">optimizovanog</a>, koji koriste različite CSS fajlove.</p>
<h2 style="text-align: left;">Dodatak: Kako videti i analizirati HTTP zahteve?</h2>
<p>Postoji mnoštvo softvera koji omogućavaju skeniranje protoka na mrežnom adapteru računara. Moguće i najbolji među njima je <a href="http://www.wireshark.org/" target="_blank">Wireshark</a>, koji može da analizira sve protokole.</p>
<p>Web programerima će sigurno dosta zanimljiviji biti plugin za Firefox &#8211; <a href="https://addons.mozilla.org/en-US/firefox/addon/3829" target="_blank">Live HTTP Headers</a>. A evo i rezultata iz njega na kome se više nego jasnije vidi rezultat optimizacije.</p>
<p><a href="http://www.salebab.net/wp-content/uploads/2010/01/live-http1.jpg"><img class="aligncenter size-full wp-image-80" style="border: none;" title="live-http" src="http://www.salebab.net/wp-content/uploads/2010/01/live-http1.jpg" alt="" width="500" height="202" /></a></p>
<p>Na tabu &#8220;Headers&#8221; možete videti kompletne GET I POST zahteve, sa headerom, kao i kompletne odgovore servera. Na tabu &#8220;Generator&#8221; se nalaze samo uprošćeni zahtevi, bez headera. Trebate samo imati u vidu da se sličice keširaju na lokalnom računaru i da ukoliko ste već posetili neku stranu, verovatno je da  zahtevi se neće pojaviti. CTRL+F5 daje realnu sliku.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.salebab.net/http-zahtevi-za-slikama-iz-css-fajla/&via=salebab&text=HTTP zahtevi za slikama iz CSS fajla&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.salebab.net/http-zahtevi-za-slikama-iz-css-fajla/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

