<?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>markup-javascript.com &#187; Верстка</title>
	<atom:link href="http://markup-javascript.com/category/verstka/feed/" rel="self" type="application/rss+xml" />
	<link>http://markup-javascript.com</link>
	<description>Блог web-технолога</description>
	<lastBuildDate>Thu, 03 Jun 2010 19:13:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Masonry &#8211; динамический layout</title>
		<link>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/</link>
		<comments>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 13:10:51 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Верстка]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=700</guid>
		<description><![CDATA[
В нескольких последних проектах столкнулся с плагином под названием masonry, который замечательно помогает экономить место на сайте в котором блоки с контентом идут по порядку, а с моими правками вообще превращается в клевый эффект, который произведет впечатление на любого пользователя.


На скрине наглядно видно эффект плагина. До применения все блоки обтекают друг друга из-за чего получается [...]]]></description>
			<content:encoded><![CDATA[<p>
В нескольких последних проектах столкнулся с плагином под названием <strong><a href="http://desandro.com/resources/jquery-masonry/">masonry</a></strong>, который замечательно помогает экономить место на сайте в котором блоки с контентом идут по порядку, а с моими правками вообще превращается в клевый эффект, который произведет впечатление на любого пользователя.
</p>
<p>
На скрине наглядно видно эффект плагина. До применения все блоки обтекают друг друга из-за чего получается некрасивые строки и много свободного места, а после блоки расставлены наиболее оптимальным образом.
</p>
<p><a href="http://markup-javascript.com/wp-content/uploads/2010/03/masonry.gif"><img src="http://markup-javascript.com/wp-content/uploads/2010/03/masonry.gif" alt="" title="masonry" width="630" height="617" class="alignleft size-full wp-image-702" /></a><br />
<span id="more-700"></span></p>
<p>
Я упоминал выше о моей модификации, теперь подробнее :), я изменил всего-лишь одну строчку, и на мой взгляд плагин от этого только выиграл. Для наглядности эффекта поресайзете окно браузера.
</p>
<p>
<strong><a href="http://markup-javascript.com/examples/example020/index.html">Моя модификация</a></strong>, а вот еще <a href="http://desandro.com/demo/masonry/tumblelog.html">страничка с живым примером</a>.
</p>
<p>
Параметры плагина для инициализации:
</p>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">masonry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; singleMode<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Этот параметр ставится в true, если все ваши блоки имеют одинаковую ширину</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; columnWidth<span style="color: #339933;">:</span> <span style="color: #CC0000;">240</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Ширина колонки в вашей сетке, параметр по умолчанию - ширина первого блока</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; itemSelector<span style="color: #339933;">:</span> <span style="color: #3366CC;">'.box:visible'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Селектор блоков</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; resizeable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Перестройка сетки блоков при ресайзе окна</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; appendedContent<span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.new_content'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Объект элемента который вставляется в сетку динамически</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; saveOptions<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Этот параметр сохраняет параметры инициализации первого вызова</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> &nbsp;<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// callback.</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<h3 class="download"><a href="http://markup-javascript.com/examples/example020/js/jquery.masonry.js">Моя версия скрипта</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>@font-face вместо Cufon</title>
		<link>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/</link>
		<comments>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 13:39:46 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Верстка]]></category>
		<category><![CDATA[Методики]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=629</guid>
		<description><![CDATA[
Использование красивых шрифтов на сайте перестало быть редкостью, на помощь верстальщикам пришли такие JS библиотеки как sIFR , typeface и Cufon. В них есть как множество плюсов так и минусов&#8230; также можно задаться вопросом, что из этого списка лучше использовать для своего проекта, и я вам скажу, что лучше использовать @font-face и отображать шрифт как [...]]]></description>
			<content:encoded><![CDATA[<p>
Использование красивых шрифтов на сайте перестало быть редкостью, на помощь верстальщикам пришли такие JS библиотеки как <a href="http://ru.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement">sIFR </a>, <a href="http://typeface.neocracy.org/">typeface</a> и <a href="http://wiki.github.com/sorccu/cufon/about">Cufon</a>. В них есть как множество плюсов так и минусов&#8230; также можно задаться вопросом, что из этого списка лучше использовать для своего проекта, и я вам скажу, что лучше использовать <strong>@font-face</strong> и отображать шрифт как обычный текст.
</p>
<p>
Но как всегда есть браузеры ;) которые это свойство не поддерживают и нечего не остаётся как использовать вышеперечисленные библиотеки. Сегодня я хочу познакомить вас с методикой как, используя нестандартный шрифт, разграничить методы отображения шрифтов между этими браузерами.
</p>
<p><span id="more-629"></span></p>
<p>
Для этой цели я воспользуюсь <a href="http://code.google.com/p/jquery-fontavailable/"><strong>jquery-fontavailable</strong></a>. Данный плагин позволяет определить поддержку нестандартного фонта браузером, даже если он подключен с помощью @font-face. Итак сразу покажу пример, в старых браузерах у вас отобразится шрифт сгенерированный cufon_ом, а в тех где поддерживается @font-face &#8211; будет текст.
</p>
<h3>Пример работы скрипта:</h3>
<p><iframe frameborder="0" width="100%" height="50px" src="http://markup-javascript.com/examples/example018/index.html"></iframe></p>
<p>
Стандартный плагин jquery-fontavailable работает иногда не корректно, поэтому я его немного усовершенствовал. Моя версия этого плагина выглядит так (копирайты я оставил, т.к. изменил всего две строчки):
</p>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">/* fontAvailable jQuery Plugin, v1.1<br />
&nbsp;*<br />
&nbsp;* Copyright (c) 2009, Howard Rauscher<br />
&nbsp;* Licensed under the MIT License<br />
&nbsp;*/</span><br />
&nbsp;<br />
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> element<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $.<span style="color: #660066;">fontAvailable</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fontName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> width<span style="color: #339933;">,</span> height<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// prepare element, and append to DOM</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>element<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; element <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'span'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'visibility'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'hidden'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'position'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'absolute'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'-10000px'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'-10000px'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'abcdefghijklmnopqrstuvwxyz'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span> document.<span style="color: #660066;">body</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// get the width/height of element after applying a fake font</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> __FAKEFONT__ <span style="color: #339933;">=</span> element.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; width <span style="color: #339933;">=</span> element<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #339933;">,</span> __FAKEFONT__<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; height <span style="color: #339933;">=</span> element.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// set test font</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; element.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #339933;">,</span> fontName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>width <span style="color: #339933;">!==</span> element.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> height <span style="color: #339933;">!==</span> element.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> navigator.<span style="color: #660066;">appVersion</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Chrome'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>
Удивительно, но Google Chrome не поддерживает свойство @font-face из-за соображений безопасности. Но это можно обойти выключив в командной строке <em>&#8211;enable-remote-fonts</em>. Но все же, я сделал что бы в модифицированной версии шрифт в Chrome куфонился.
</p>
<h3>Что нужно для работы данного метода.</h3>
<h4>CSS код:</h4>
<div class="codecolorer-container css twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a1a100;">@font-face {</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;KB Zero&quot;</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; src<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;../fonts/zero.ttf&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
html<span style="color: #00AA00;">,</span> body<span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #3333ff;">:Arial</span><span style="color: #00AA00;">,</span> Helvetica<span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
p <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span> <span style="color: #933;">16px</span> <span style="color: #ff0000;">&quot;KB Zero&quot;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
<p>
В css коде мы с помощью @font-face объявляем font-family и указываем путь к файлу шрифта. Для body указывается стандарный web шрифт, это нужно для работы скрипта. Ну и применяем шрифт к тегу P. HTML код я показывать не буду т.к. там у меня находится только одно предложение завернутое в тег P.
</p>
<h4>JavaScript код:</h4>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>$.<span style="color: #660066;">fontAvailable</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'KB Zero'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Cufon.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>fontFamily<span style="color: #339933;">:</span> <span style="color: #3366CC;">'KB Zero'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>
Исходя из того, что пример был построен на базе Cufon, я не буду рассказывать как его подключить, это можно посмотреть <a href="http://markup-javascript.com/2009/05/10/cufon-implementaciya-nestandartnyx-shriftov/">сдесь</a>.
</p>
<p>
Логика подключения fontAvailable выглядит элементарно&#8230;<br />
<strong>$.fontAvailable(&#8216;KB Zero&#8217;)</strong>- возвращает булеву переменную после проверки на поддержку браузером данного шрифта, а значит нам нужно инициализировать плагин в условии, и если шрифт не поддерживается &#8211; будет отрабатывать Cufon
</p>
<p>
Вместе с этим плагином можно использовать и <a href="http://ru.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement">sIFR </a> с <a href="http://typeface.neocracy.org/">typeface</a>, достаточно лишь инициализировать их в данном условии.
</p>
<h3 class="download"><a href="http://markup-javascript.com/examples/example018/example.7z">Скачать пример</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
