<?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>MGdevelop &#187; HTML i CSS</title>
	<atom:link href="http://mgdevelop.pl/index.php/kategoria/webdeveloping/html-i-css/feed/" rel="self" type="application/rss+xml" />
	<link>http://mgdevelop.pl</link>
	<description>Programming is an art form that fights back</description>
	<lastBuildDate>Thu, 07 Jul 2011 16:59:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Rozmowa z wujkiem Marcinem cz.2</title>
		<link>http://mgdevelop.pl/index.php/2010/08/rozmowa-z-wujkiem-marcinem-cz-2/</link>
		<comments>http://mgdevelop.pl/index.php/2010/08/rozmowa-z-wujkiem-marcinem-cz-2/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 09:46:11 +0000</pubDate>
		<dc:creator>Elektryk</dc:creator>
				<category><![CDATA[HTML i CSS]]></category>
		<category><![CDATA[frame]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[standardy]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://mgdevelop.pl/?p=488</guid>
		<description><![CDATA[O, to znowu Ty, mój początkujący miłośniku tworzenia stron internetowych. Pewnie znowu przyszedłeś o coś zapytać. Nie ma problemu. Wejdź... <a href="http://mgdevelop.pl/index.php/2010/08/rozmowa-z-wujkiem-marcinem-cz-2/">Czytaj dalej&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>O, to znowu Ty, mój początkujący miłośniku tworzenia stron internetowych. Pewnie znowu przyszedłeś o coś zapytać. Nie ma problemu. Wejdź i usiądź. Opowiedz z czym masz problem. Zaparzyć Ci herbaty?<span id="more-488"></span></p>
<p><strong>Nie, dziękuję. Chodzi to, że niedawno przerzuciłem się z tabelek na divy bo wszyscy mówią, że to jest lepsze. Ale ostatnio zaglądałem do kodu phpBB3 i tam wszystko stoi na tabelkach. Wydawało mi się, że twórcy tego skryptu znają się na swojej pracy a jednak korzystają z starych rozwiązań. To jak to w końcu jest? Co jest lepsze? Tabelki czy divy?</strong></p>
<p>Obydwa rozwiązania są dobre w zależności do czego je używasz. Mówiąc krótko divy powinny być używane do budowy kontrukcji wyglądu strony. Na przykład umieszczenia loga na górze, sidebara z boku i stopki na dole. Tabelki zaś należy stosować tylko gdy chcemy wyświetlić jakieś dane tabelaryczne. Podchodzą pod to między innymi dane statystyczne oraz wielokolumnowe listy jak na np. interfejsy na forach. Tabelek nie powinno zaś się używać gdy chcemy dla przykładu stworzyć trzy kolumnową stronę i w tym celu tworzyć tabeli z trzema kolumnami. Takie rozwiązanie to nieporozumienie gdyż zwiększa czas jaki przeglądarki potrzebują do wyświetlenia witryny. Da się zauważyć to opóźnienie gdy np. środkowa kolumna zawiera dużo grafik. Wtedy na wyświetlenie komórki po prawej możemy musieć trochę poczekać.</p>
<p><strong>Ok. A jak wygląda sprawa z ramkami?</strong></p>
<p>Zwykłe ramki wyszły już całkiem z użycia. Chodzi mi tu o elementy <em>frame</em> i <em>frameset</em>. Nie powinno się ich używać gdyż obecnie istnieją o wiele lepsze rozwiązania jak na przykład php lub ajax. Co zaś się tyczy ramek pływających, to znaczy elementów <em>iframe</em> to są one wciąż w użyciu ale radzi się ich już wystrzegać. Inaczej mówiąc skorzystanie z nich to nic złego ale jeśli tylko jest możliwość to powinno skorzystać się z innej techniki.</p>
<p><strong>Ciekawe. A są jeszcze jakieś nowe standardy o których powinien wiedzieć każdy początkujący?</strong></p>
<p>Długo by tu wymieniać ale pokrótce mogę wymienić parę punktów. Po pierwsze aktualnie jedyne kodowanie znaków jakiego powinno się używać to UTF-8. I od tego nie ma odstępstw. Używając tego kodowania pozbędziesz się problemów na stronach wielojęzykowych oraz przy korzystaniu z zewnętrznych interfejsów np. przycisków Facebooka. Ponadto wycofano wszystkie dziwne znaczniki typu <em>&lt;font&gt;</em>, <em>&lt;big&gt;</em> itd dotyczących wyglądu tekstu. Zamiast nich należy stosować znacznika <em>&lt;span&gt;</em> i odpowiednie style CSS. Nawet zamiast <em>&lt;b&gt;</em> radzi się korzystać z <em>&lt;strong&gt;</em> chociaż ten pierwszy wciąż oficjalnie jest w użyciu.</p>
<p><strong>Dobrze, przestańmy już mówić o tym htmlu. Ostatnio chciałem poszerzyć swoje horyzonty i pouczyć się JavaScriptu. Ale mam mały dylemat. Czego radzisz się uczyć? JavaScriptu czy może tej słynnej biblioteki jQuery.</strong></p>
<p>Na początek może wyjaśnię, że jQuery to zestaw funkcji napisanych w języku  JavaScript. Ale jeśli dopiero zaczynasz swoją przygodę z językami skryptowymi to radzę ci zacząć uczyć się samego JS. Dlaczego? Ponieważ umiejąc korzystać z jQ ale nie znając dobrze niektórych możliwości JavaScriptu będziesz mocno ograniczony. Mam tu na myśli wszystkie funkcję odpowiedzialne za przetwarzanie tekstu, dokonywanie obliczeń czy obsługę zdarzeń. Gdy to już opanujesz możesz śmiało ruszać do nauki JQuery. Pisanie skryptów stanie się dla Ciebie o wiele łatwiejsze i ponadto będziesz miał wiedzę potrzebną do pisania zaawansowanych aplikacji internetowych.</p>
<p><strong>A istnieją jakieś alternatywy do jQuery?</strong></p>
<p>Tak, np. Prototype i Moo Tools. Te biblioteki są jednak mniej popularne od jQuery i możesz przy nich liczyć na mniejsze wsparcie społeczności.</p>
<p><strong>Dobrze wiedzieć. Ok, to chyba dziś już na tyle.</strong></p>
<p>W porządku. Wracaj jak tylko nazbierają Ci się znowu jakieś problemy.</p>
<p><strong>Na pewno przyjdę Cię pomęczyć, cześć.</strong></p>
<p>Trzymaj się.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgdevelop.pl/index.php/2010/08/rozmowa-z-wujkiem-marcinem-cz-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Zaokrąglony przycisk o nieustalonej szerokości</title>
		<link>http://mgdevelop.pl/index.php/2010/08/zaokraglony-przycisk-o-nieustalonej-szerokosci/</link>
		<comments>http://mgdevelop.pl/index.php/2010/08/zaokraglony-przycisk-o-nieustalonej-szerokosci/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 15:23:57 +0000</pubDate>
		<dc:creator>Elektryk</dc:creator>
				<category><![CDATA[HTML i CSS]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[cięcie]]></category>
		<category><![CDATA[przycisk]]></category>

		<guid isPermaLink="false">http://mgdevelop.pl/?p=472</guid>
		<description><![CDATA[W tym poradniku postaram się wyjaśnić jak koduje się obrazkowe przyciski z zaokrąglonymi rogami jeśli nie wiemy ile będzie w... <a href="http://mgdevelop.pl/index.php/2010/08/zaokraglony-przycisk-o-nieustalonej-szerokosci/">Czytaj dalej&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>W tym poradniku postaram się wyjaśnić jak koduje się obrazkowe przyciski z zaokrąglonymi rogami jeśli nie wiemy ile będzie w nich tekstu, a co za tym idzie nie ma on konkretnej szerokości. Taki przypadek może się zdarzyć np. przy budowie CMSa gdzie nie możemy przewidzieć jakie napisy umieści użytkownik w menu.</p>
<h1><span id="more-472"></span> Grafika</h1>
<p>Finalnie nasza praca ma wyglądać tak:</p>
<p><a href="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/button.png"><img class="alignnone size-full wp-image-475" title="button" src="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/button.png" alt="" width="200" height="30" /></a></p>
<p>Jak widać przy większej ilości tekstu grafika musi się się rozszerzać. Aby tak było trzeba to sprytnie zakodować. Najpierw jednak musimy przygotować dwie grafiki. Jedną która będzie się składała tylko z prawych zaokrągleń i druga która będzie bardzo szeroką wersją buttonu ale bez zaokrągleń po prawej. Dokładniej to potrzebujemy takich obrazków:</p>
<p><a href="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/right.png"><img class="alignnone size-full wp-image-477" title="right" src="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/right.png" alt="" width="22" height="30" /></a></p>
<p><a href="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/right.png"></a><a href="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/left.png"><img class="alignnone size-full wp-image-476" title="left" src="http://mgdevelop.pl/mgdevelop/wp-content/uploads/2010/08/left.png" alt="" width="500" height="30" /></a></p>
<p>Ważne jest to aby obrazki miały jednolite lub prawie jednolite tło. W tym przypadku jest ono białe.</p>
<h1>Kod</h1>
<p>Przy kodowaniu użyjemy pewnej sztuczki. Krótszy obrazek wstawimy jako tło linku przycisku a sam link wstawimy do diva któremu jako tło nadamy dłuższy obrazek. Dzięki temu krótsza grafika odpowiednio zasłoni tą dłuższą. Oto kod html:</p>
<pre class="brush: html">&lt;div class="przycisk"&gt;&lt;a href="#"&gt;Przejdź do galerii zdjęć&lt;/a&gt;&lt;/div&gt;</pre>
<p>A poniżej kod CSS:</p>
<pre class="brush: css"> .przycisk{
    height: 30px;
    background: url('left.png') no-repeat;
    display: block;
    float: left;
 }
 .przycisk a{
    height: 30px;
    background: url('right.png') right no-repeat;
    display: block;
    padding: 0 15px 0 15px;
    font: italic normal bolder 14px Georgia;
    text-decoration: none;
    color: #dadada;
    line-height: 30px;
 }</pre>
<p>Jak widać obrazek <em>right.png</em> dosunęliśmy do prawej strony aby pojawił się w odpowiednim miejscu. Musieliśmy także użyć <em>float: left</em> aby wszystko przyjmowało możliwie najmniejszą szerokość. Kod w działaniu można zobaczyć <a title="zaokrąglony przycisk" href="http://example.mgdevelop.pl/zaokraglonyprzycisk/">pod tym linkiem</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgdevelop.pl/index.php/2010/08/zaokraglony-przycisk-o-nieustalonej-szerokosci/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rozmowa z wujkiem Marcinem cz1</title>
		<link>http://mgdevelop.pl/index.php/2010/07/rozmowa-z-wujkiem-marcinem-cz1/</link>
		<comments>http://mgdevelop.pl/index.php/2010/07/rozmowa-z-wujkiem-marcinem-cz1/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 18:38:02 +0000</pubDate>
		<dc:creator>Elektryk</dc:creator>
				<category><![CDATA[HTML i CSS]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[position]]></category>

		<guid isPermaLink="false">http://mgdevelop.pl/?p=317</guid>
		<description><![CDATA[Witaj! Jesteś początkującym webmasterem? I jeszcze nie ogarniasz tego wszystkiego i co chwilę masz problemy? Spokojnie, wejdź, usiądź, po prostu... <a href="http://mgdevelop.pl/index.php/2010/07/rozmowa-z-wujkiem-marcinem-cz1/">Czytaj dalej&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Witaj! Jesteś początkującym webmasterem? I jeszcze nie ogarniasz tego wszystkiego i co chwilę masz problemy? Spokojnie, wejdź, usiądź, po prostu się rozgość. Zaraz spróbujemy Ci pomóc. Herbaty? Nie? To sam się napiję&#8230;a więc z czym przychodzisz? Jakie masz problemy? Szybko, pytaj!<span id="more-317"></span><strong> </strong></p>
<p><strong>Eee&#8230; ostatnio przerzuciłem się z tabel na divy i mam kłopot. Nie wiem jak wyśrodkować diva. Wiesz jak to zrobić?</strong></p>
<p>Oczywiście. Wystarczy mu nadać stałą szerokość oraz <em>margin: auto</em>. Nic trudnego.</p>
<p><strong>No dobrze, a w takim razie w jaki sposób ustawić dwa divy obok siebie? Żeby utworzyły się dwie kolumny. </strong></p>
<p>Ponownie musisz obu blokom ustawić stałą szerokość a ponadto każdemu nadać  <em>float: left</em>. Ewentualnie obu <em>float: right</em> lub też jednemu <em>float: left</em> a temu drugiemu <em>float: right</em>. Jeśli tylko suma szerokości tych bloków będzie wystarczająco mała aby zmieściły się obok siebie to wszystko powinno działać tak jak chcesz.</p>
<p><strong>Kiedyś tak próbowałem ale mimo, że rozmiary się zgadzały to jednak te dwa bloki nie mieściły się obok siebie!</strong></p>
<p>Pamiętaj, że szerokość diva to suma jego wartości width, grubości obramowania po obu stronach a także, uwaga: wielkość odstępu wewnętrznego czyli paddingu, także po obu stronach.</p>
<p><strong>A faktycznie, miałem tak ustawione! To pewnie dlatego. A już kiedyś bawiłem się wartościami float ale był przy tym same problemy. W momencie jeśli w divie był inny pływający obiekt to ten blok się zsuwał, miał zły rozmiar. Przez to float wszystkie elementy będące poniżej podnosiły się w górę. Dlaczego?</strong></p>
<p>To typowe. Jeśli w jakimś elemencie jest obiekt z ustawionym float to nie będzie on przyjmował prawidłowej wysokości. Będzie zachowywał się tak jakby tego pływającego elementu wcale tam nie było. Ale naprawienie tego jest proste. Wystarczy temu elementowi który się zsuwa nadać wartość CSS<em> overflow: hidden</em>. Wszystko powinno być od tego momentu dobrze.</p>
<p><strong>Ok, zostawmy już te divy. Mam jeszcze inny kłopot. Niedawno temu próbowałem stworzyć menu i  chciałem aby przestrzeń do kliknięcia była konkretnych rozmiarów. Próbowałem nadać elementowi a wysokość i szerokość ale nic nie działało. To błąd przeglądarki?</strong></p>
<p>Nie, Twój. Element a to obiekt liniowy więc nie można mu nadawać wymiarów. Ale w CSS istnieje atrybut <em>display</em> dzięki czemu można sprawić by każdy element zachowywał się tak jak chcemy. I żeby odnośnik zachowywał się jak blok i miał wymiary najzwyczajniej nadajemy mu wartość <em>display: block</em>.</p>
<p><strong>Dobra cwaniaku. To teraz mi powiedz w jaki sposób zrobić taki pasek na dole strony z na przykład newsami by nie ruszał się podczas przewijania strony. </strong></p>
<p>CCSem. Nadajesz paskowi <em>position: fixed</em> oraz <em>bottom: Ypx</em> gdzie Y to wysokość tego paska i wszystko będzie chodzić jak w szwajcarskim zegarku.</p>
<p><strong>No dobra, a w takim razie jak&#8230;</strong></p>
<p>Herbata mi się skończyła.</p>
<p><strong>I?</strong></p>
<p>Na dzisiaj już skończmy. Wrócimy do naszej rozmowy w przyszłości.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgdevelop.pl/index.php/2010/07/rozmowa-z-wujkiem-marcinem-cz1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zakładkowe menu w CSS</title>
		<link>http://mgdevelop.pl/index.php/2010/06/zakladkowe-menu-w-css/</link>
		<comments>http://mgdevelop.pl/index.php/2010/06/zakladkowe-menu-w-css/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:06:12 +0000</pubDate>
		<dc:creator>Elektryk</dc:creator>
				<category><![CDATA[HTML i CSS]]></category>

		<guid isPermaLink="false">http://mgdevelop.pl/?p=231</guid>
		<description><![CDATA[W tym krótki poradniku postaram się pokazać jak łatwo wykonać modne menu w kształcie zakładek bez potrzeby uruchamiania programu graficznego.... <a href="http://mgdevelop.pl/index.php/2010/06/zakladkowe-menu-w-css/">Czytaj dalej&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>W tym krótki poradniku postaram się pokazać jak łatwo wykonać modne menu w kształcie zakładek bez potrzeby uruchamiania programu graficznego. Efekt działa w Firefoxie, Chrome, Safari i Konquerorze3. Pozdrowienia z tego miejsca dla twórców Opery i Internet Explorera.<span id="more-231"></span></p>
<h1>Na początek HTML</h1>
<p>Nasze menu jak nakazuje dobry webdeveloperski obyczaj będzie opierało się na odpowiednio ostylowanej liście.</p>
<pre class="brush:html">&lt;ul class="menu"&gt;
  &lt;li&gt;&lt;a href="#"&gt;Homepage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;Artykuly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#" class="menu-active"&gt;Galeria&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;Download&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;O mnie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#"&gt;Kontakt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Jak widać jednemu z elementów nadaliśmy dodatkową klasę <em>menu-active</em>. Za jej pomocą oznaczamy aktualnie aktywny element, to znaczy link do strony, na której jesteśmy. Całe menu oznaczyliśmy klasą <em>menu, </em> za pomocą której będziemy się odwoływać w arkuszu styli.</p>
<h1>Meritum czyli CSS</h1>
<p>Teraz zajmijmy się pisaniem opisu CSS. Po pierwsze zerujemy wszystkie odstępy w elemencie UL i usuwamy kropki sprzed elementów listy:</p>
<pre class="brush:css">.menu{
  margin: 0px;
  padding: 0px;
  list-style: none;
}</pre>
<p>Dalej ustawiamy elementy LI w jednym rzędzie i nadajemy ujemny prawy margines by zakładki na siebie nachodziły:</p>
<pre class="brush:css">.menu li{
  float: left;
  display: block;
  height: 30px;
  width: 100px;
  margin-right: -5px;
}</pre>
<p>Pora na ustawienie linków. Ważne jest aby wyświetlały się jako bloki (<em>display: block;</em>) i miały ustalone rozmiary i pozycję w wymiarze Z (<em>z-index: 1;</em>). Aby jednak nasze menu przybrało &#8222;zakładkowy&#8221; wygląd trzeba dodać na przykład zaokrąglone rogi. Ostatnie cztery wartości ustawiają zaokrąglenie dla prawego górnego rogu kolejno w:  Chromie/Safari, Konquerorze, Firefoxie i przeglądarkach zgodnych z CSS3. Dla przejrzystości kod pozbawiony jest opisów czcionek i kolorów</p>
<pre class="brush:css">.menu li a{
  display: block;
  height: 30px;
  width: 100px;
  position: relative;
  z-index: 1;
  -webkit-border-top-right-radius: 20px;
  -khtml-border-radius-topright: 20px;
  -moz-border-radius-topright: 20px;
   border-top-right-radius: 20px
}</pre>
<p>Teraz pozostaje jeszcze tylko opisać naszą dodatkową klasę menu-active. Jak już pisałem zakładka z taką klasą musi wystawać ponad pozostałe. Inaczej mówiąc musi być na wyższej pozycji w wymiarze Z. Normalnie zakładki mają pozycję 1, więc ta aktywna musi mieć większą:</p>
<pre class="brush:css">.menu a.menu-active{
  z-index: 2;
}</pre>
<p>I to wszystko. Zero grafiki, a efekt co najmniej ciekawy. Gotowy przykład można zobaczyć pod <a title="przykład na żywo" href="http://example.mgdevelop.pl/menucss.html">tym linkiem</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgdevelop.pl/index.php/2010/06/zakladkowe-menu-w-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

