<?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>&#60;?blog &#187; CSS/XHTML</title>
	<atom:link href="http://blog.visionsoftware.pl/kategoria/css-xhtml/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.visionsoftware.pl</link>
	<description>...nie tylko o programowaniu</description>
	<lastBuildDate>Sun, 23 Mar 2014 19:23:43 +0000</lastBuildDate>
	<language>pl-PL</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>@font-face czyli niestandardowe czcionki na stronie www</title>
		<link>http://blog.visionsoftware.pl/css-xhtml/font-face-czyli-niestandardowe-czcionki-na-stronie-www.html</link>
		<comments>http://blog.visionsoftware.pl/css-xhtml/font-face-czyli-niestandardowe-czcionki-na-stronie-www.html#comments</comments>
		<pubDate>Mon, 31 Oct 2011 20:57:12 +0000</pubDate>
		<dc:creator><![CDATA[Marcin Fliszta]]></dc:creator>
				<category><![CDATA[CSS/XHTML]]></category>
		<category><![CDATA[@font-face]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[czcionki]]></category>
		<category><![CDATA[Font Squirrel]]></category>
		<category><![CDATA[fonty]]></category>
		<category><![CDATA[Google Web Fonts]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.visionsoftware.pl/?p=393</guid>
		<description><![CDATA[Podczas projektowania strony internetowej nie mamy zbyt dużego wyboru jeśli chodzi o dostępne czcionki. Korzystając z HTML oraz CSS możemy standardowo wykorzystać raptem kilka fontów, które poprawnie wyświetlą się na większości urządzeń i przeglądarek. Osoby, które mają bardziej artystyczne zachcianki, muszą niestety skorzystać z elementów graficznych lub Flasha, co sprawia  pewne problemy. Istnieje jednak dobre rozwiązanie problemu &#8211; deklaracja własnych czcionek w CSS przez @font-face. Niestandardowe czcionki jako grafika Jak już wspomniałem we wstępie, umieszczanie [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Podczas projektowania strony internetowej nie mamy zbyt dużego wyboru jeśli chodzi o dostępne czcionki. Korzystając z HTML oraz CSS możemy standardowo wykorzystać raptem kilka fontów, które poprawnie wyświetlą się na większości urządzeń i przeglądarek. Osoby, które mają bardziej artystyczne zachcianki, muszą niestety skorzystać z elementów graficznych lub Flasha, co sprawia  pewne problemy. Istnieje jednak dobre rozwiązanie problemu &#8211; deklaracja własnych czcionek w CSS przez <code>@font-face</code>.<span id="more-393"></span></p>
<h3>Niestandardowe czcionki jako grafika</h3>
<p>Jak już wspomniałem we wstępie, umieszczanie &#8222;graficznych tekstów&#8221; nie jest najlepszym rozwiązaniem, po pierwsze ze względu na pozycjonowanie. Dla Google bardzo ważna jest treść na naszej stronie, a w przypadku takiego podejścia nie będzie ona odczytana. Dodatkowo utrudnione będzie wprowadzanie zmian na stronie, gdyż za każdym razem będziemy musieli generować na nowo grafiki i wstawiać je na stronie. Podobne problemy może sprawiać strona przygotowana we Flashu.</p>
<p>Aby to zautomatyzować, możemy wykorzystać bibliotekę JavaScript Cufon. Generuje ona sama potrzebne grafiki do wprowadzonych przez nas tekstów, jednak pozostanie drugi z problemów &#8211; odczytanie ich przez wyszukiwarki internetowe.</p>
<p>Jeśli w graficzny sposób tworzymy tylko niewielkie części strony, menu lub nagłówek, nie będzie to problem. Co jednak zrobić w przypadku normalnych tekstów?</p>
<h3>Wstawianie czcionek przez <code>@font-face</code></h3>
<p>Istnieje bardzo proste rozwiązanie powyższych problemów. W CSS możemy dodawać własne, niestandardowe czcionki przy pomocy <code>@font-face</code>. Pewną niedogodnością jest to, że poszczególne przeglądarki internetowe wykorzystują różne standardy (EOT, SVG,  WOFF, TTF). Możemy jednak w jednej definicji zawrzeć różne warianty, dzięki czemu w praktycznie w każdej wygląd będzie taki, jak zamierzaliśmy (nawet w Internet Explorer 6).</p>
<p>Najprościej stworzyć wymagane definicje za pośrednictwem serwisu <a href="http://www.fontsquirrel.com/" title="Font Squirrel" target="_blank">Font Squirrel</a>. Możemy tam wybrać z całkiem pokaźnego zbioru interesującą nas czcionkę i pobrać paczkę zawierającą pliki źródłowe w różnych formatach oraz wymagany kod CSS.</p>
<p>Jeśli nie znajdziemy w zasobach serwisu interesującego fonta, możemy stworzyć własną definicję. Trzeba w tym celu posiadać plik <code>TTF</code>, z którego dostępny generator utworzy dla nas indywidualną paczkę z definicją czcionki.</p>
<p>Gdy posiadamy już definicję wybranej przez nasz czcionki w plikach EOT, SVG,  WOFF oraz TTF należy je wgrać na serwer, a następnie określić nową czcionkę w CSS podając odpowiednie ścieżki:</p>
<pre class="brush: css; light: true; title: ; notranslate">
@font-face {
font-family: 'KingthingsSpikelessRegular';
src: url('Kingthings_Spikeless-webfont.eot');
src: url('Kingthings_Spikeless-webfont.eot?#iefix') format('embedded-opentype'),
url('Kingthings_Spikeless-webfont.woff') format('woff'),
url('Kingthings_Spikeless-webfont.ttf') format('truetype'),
url('Kingthings_Spikeless-webfont.svg#KingthingsSpikelessRegular') format('svg');
font-weight: normal;
font-style: normal;
}
</pre>
<p>Następnie wystarczy tak zdefiniowaną czcionkę przypisać standardowo do odpowiedniego obiektu poprzez <code>font-family</code>:</p>
<pre class="brush: css; light: true; title: ; notranslate">
p {font-family: KingthingsSpikelessRegular, Arial, sans-serif}
</pre>
<h3>Niestandardowe czcionki z Google Web Fonts</h3>
<p>Jeśli nie chcemy sami przygotowywać definicji czcionek i wgrywać ich na nasz serwer, możemy skorzystać z usługi <a href="http://www.google.com/webfonts#HomePlace:home" title="Googe Web Fonts" target="_blank">Google Web Fonts</a>. Po wyborze interesującej nas czcionki możemy ją dodać na trzy różne sposoby:</p>
<ul>
<li>standardowe dołączenie dokumentu CSS
<pre class="brush: xml; light: true; title: ; notranslate">
&lt;link href='http://fonts.googleapis.com/css?family=Nosifer+Caps' rel='stylesheet' type='text/css'&gt;
</pre>
</li>
<li>
polecenie <code>@import</code> w CSS</p>
<pre class="brush: css; light: true; title: ; notranslate">
@import url(http://fonts.googleapis.com/css?family=Nosifer+Caps);
</pre>
</li>
<li>
kod Java Script
</li>
</ul>
<p>Usługa Google sama rozpozna z jakiej przeglądarki korzystamy i prześle jej odpowiednie definicje. Szybkość działania jest bardzo dobra, czcionki pojawiają się w wybranym formacie praktycznie od razu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visionsoftware.pl/css-xhtml/font-face-czyli-niestandardowe-czcionki-na-stronie-www.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sprawdź wygląd strony pod każdym Internet Explorerem &#8211; IE Tester</title>
		<link>http://blog.visionsoftware.pl/css-xhtml/sprawdz-wyglad-strony-pod-kazdym-internet-explorerem-ie-tester.html</link>
		<comments>http://blog.visionsoftware.pl/css-xhtml/sprawdz-wyglad-strony-pod-kazdym-internet-explorerem-ie-tester.html#comments</comments>
		<pubDate>Mon, 13 Dec 2010 21:51:29 +0000</pubDate>
		<dc:creator><![CDATA[Marcin Fliszta]]></dc:creator>
				<category><![CDATA[CSS/XHTML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie tester]]></category>
		<category><![CDATA[interet explorer]]></category>

		<guid isPermaLink="false">http://blog.visionsoftware.pl/?p=63</guid>
		<description><![CDATA[Każdej osobie zajmującej się tworzeniem stron internetowych sen z oka spędza niezgodność przeglądarek z obowiązującymi standardami. Jeśli mamy na uwadze wybór użytkowników, nasze strony powinny się poprawnie wyświetlać pod Internet Explorerem, Firefoxem, Operą, Gogle Chrome, Safari… Największym problemem jest jednak IE, który jest używany w wielu wersjach, a każda może wyświetlać naszą witrynę inaczej. Dzięki różnym upodobaniom użytkowników musimy mieć więc zainstalowanych w systemie kilka przeglądarek internetowych. Tylko wtedy stestujemy dobrze wygląd tworzonego serwisu WWW. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Każdej osobie zajmującej się tworzeniem stron internetowych sen z oka spędza niezgodność przeglądarek z obowiązującymi standardami. Jeśli mamy na uwadze wybór użytkowników, nasze strony powinny się poprawnie wyświetlać pod Internet Explorerem, Firefoxem, Operą, Gogle Chrome, Safari… Największym problemem jest jednak IE, który jest używany w wielu wersjach, a każda może wyświetlać naszą witrynę inaczej.<span id="more-63"></span></p>
<p>Dzięki różnym upodobaniom użytkowników musimy mieć więc zainstalowanych w systemie kilka przeglądarek internetowych. Tylko wtedy stestujemy dobrze wygląd tworzonego serwisu WWW. Jeśli chodzi o Internet Explorer, możemy sobie pomóc świetną aplikacją o nazwie IE Tester.</p>
<p>Dzięki niej mamy możliwość wyświetlenia strony w wielu wersjach przeglądarki, tj. IE 5.5, 6, 7, 8 oraz 9 (w momencie pisania tego artykułu). Wyświetlenie strony w ostatniej wersji IE jest możliwe tylko pod Windows 7 z zainstalowaną w systemie wersją tej przeglądarki. Program można pobrać ze strony <a href="http://www.my-debugbar.com" target="_blank">http://www.my-debugbar.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visionsoftware.pl/css-xhtml/sprawdz-wyglad-strony-pod-kazdym-internet-explorerem-ie-tester.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Osadzanie grafiki za pomocą Data URI</title>
		<link>http://blog.visionsoftware.pl/css-xhtml/osadzanie-grafiki-za-pomoca-data-uri.html</link>
		<comments>http://blog.visionsoftware.pl/css-xhtml/osadzanie-grafiki-za-pomoca-data-uri.html#comments</comments>
		<pubDate>Sun, 12 Dec 2010 22:20:37 +0000</pubDate>
		<dc:creator><![CDATA[Marcin Fliszta]]></dc:creator>
				<category><![CDATA[CSS/XHTML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[data uri]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[optymalizacja]]></category>

		<guid isPermaLink="false">http://blog.visionsoftware.pl/?p=47</guid>
		<description><![CDATA[Optymalizacja tworzonych serwisów internetowych jest niezwykle ważna. Zwiększająca się liczba użytkowników wymusza wprowadzanie mechanizmów, które umożliwią normalne działanie serwisu. Spowoduje ona także, że nie będziemy zużywali w zastraszającym tempie limitów transferu. Dla użytkownika optymalizacja oznacza szybkie działanie serwisu, a więc możliwość korzystania z niego w normalny sposób.Szybkość ładowania naszego serwisu zależy jednak nie tylko od kodu PHP (lub innego języka). Bardzo ważnym elementem, wpływającym na czas pojawienia się strony na ekranie, jest liczba zapytań HTTP. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Optymalizacja tworzonych serwisów internetowych jest niezwykle ważna. Zwiększająca się liczba użytkowników wymusza wprowadzanie mechanizmów, które umożliwią normalne działanie serwisu. Spowoduje ona także, że nie będziemy zużywali w zastraszającym tempie limitów transferu. Dla użytkownika optymalizacja oznacza szybkie działanie serwisu, a więc możliwość korzystania z niego w normalny sposób.<span id="more-47"></span>Szybkość ładowania naszego serwisu zależy jednak nie tylko od kodu PHP (lub innego języka). Bardzo ważnym elementem, wpływającym na czas pojawienia się strony na ekranie, jest liczba zapytań HTTP. Każdy dodatkowo otwarty dokument CSS, Java Script lub obrazek wydłuża czas oczekiwania.</p>
<p>W tym tekście zamierzam się zająć ostatnim z tych elementów, czyli elementami graficznymi naszego serwisu. Każdy wie, że nie powinno ich być za dużo, oraz  że powinny mieć jak najmniejszy rozmiar. Istnieje także sposób na zmniejszenie liczby odwołań do nich.</p>
<p>Wystarczy w tym celu skorzystać z dobrodziejstw Data URI, czyli możliwości przechowywania obrazka w postaci binarnej, zakodowanej przy pomocy base64,  bezpośrednio w dokumencie CSS.  Dzięki temu zmniejszamy ilość odwołań HTTP, wielkość pliku CSS możemy natomiast zmniejszyć poprzez kompresję. Wystarczy skorzystać z gzipa, dane zapisane w base64 kompresują się bardzo dobrze.</p>
<p>Przykładowy kod dodający obrazek, może wyglądać w następujący sposób:</p>
<pre class="brush: xml; title: ; notranslate">&lt;img src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAA
AAMAgMAAAArG7R0AAAADFBMVEX/////mQD/ZgDMMwAfZILpAAAAJUlEQVQImWNgAALW
0BAGqVWrIVgDiLu0GaQWdUNojdVwOf7/fwACPA009gxCxwAAAABJRU5ErkJggg==&quot;
alt=&quot;My image&quot; /&gt;</pre>
<p>Definicja elementu listy w CSS może natomiatst wyglądać tak:</p>
<pre class="brush: css; title: ; notranslate">ul li { margin-left: 20px; background: url(' data:image/png;
base64,iVBORw0KGgoAAAANSUhEUgAAAAwAA AAMAgMAAAArG7R0AAAADFBMVEX//
///mQD/ZgDMMwAfZILpAAAAJUlEQVQImWNgAALW0BAGqVWrIVgDiLu0GaQWdUNojd
VwOf7/fwACPA009gxCxwAAAABJRU5ErkJggg==') top left no-repeat;}</pre>
<p>Aby zakodować obrazek pod systemami linuksowymi, wystarczy skorzystać z polecania base64. Innym sposobem może być skorzystanie z <a href="http://www.dailycoding.com/Utils/Converter/ImageToBase64.aspx" target="_blank">darmowego konwertera</a>.</p>
<p>Jeśli korzystamy z PHP, możemy wygenerować potrzeby kod przy użyciu poniższej funkcji:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function data_uri($file, $mime)
{
 $contents = file_get_contents($file);
 $base64   = base64_encode($contents);
 return ('data:' . $mime . ';base64,' . $base64);
}
?&gt;
</pre>
<p>A nastepnie wykorzystać go na naszej stronie:</p>
<pre class="brush: xml; title: ; notranslate">&lt;img src=&quot;&lt;?php echo data_uri('image.png','image/png');?&gt;&quot; alt=&quot;My image&quot; /&gt;</pre>
<p>Niestety, nie ma róży bez kolców. Mimo ogromnych zalet jakie stwarza Data URI, napotkamy na ogromny problem związany z przeglądarkami. IE potrafi wyświetlać zakodowane w ten sposób obrazki od wersji 8, o ile nie przekraczają one 32 KB. Starsze wersje przeglądarki Microsoftu w ogóle nie obsługują tej technologii.</p>
<p>Jeśli jednak optymalizujemy serwis będący pod dużym obciążeniem, warto skorzystać z tego mechanizmu dla użytkowników używających przeglądarek, które go wspierają.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visionsoftware.pl/css-xhtml/osadzanie-grafiki-za-pomoca-data-uri.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
