<?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>JSToolbox - все о JavaScript &#187; Совместимость</title>
	<atom:link href="http://www.jstoolbox.com/category/sovmestimost/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jstoolbox.com</link>
	<description>Блог о программировании вообще и о JavaScript в частности, уроки, статьи, заметки, база знаний.</description>
	<lastBuildDate>Wed, 28 Jul 2010 22:33:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Кратчайший&#8221; способ определить тип браузера</title>
		<link>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/</link>
		<comments>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 21:43:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Совместимость]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=369</guid>
		<description><![CDATA[<p>До тех пор, пока существуют различия в работе JavaScript на разных браузерах, мы пожалуй будем вынуждены определять, с каким именно клиентом мы имеем дело. А поскольку JavaScript должен быть как можно компактней, то и код, выполняющие такое определение также должен быть максимально сжат. Сегодня я не без удовольствия нашел <a href="http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/">статью</a>, в которой описано как это нужно делать очень просто и компактно.</p>]]></description>
			<content:encoded><![CDATA[<p>До тех пор, пока существуют различия в работе JavaScript на разных браузерах, мы пожалуй будем вынуждены определять, с каким именно клиентом мы имеем дело. А поскольку JavaScript должен быть как можно компактней, то и код, выполняющие такое определение также должен быть максимально сжат. Сегодня я не без удовольствия нашел <a href="http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/">статью</a>, в которой описано как это можно сделать очень просто и компактно.</p>
<p><span id="more-369"></span></p>
<p>Итак, по очереди для каждого браузера:</p>
<p><strong>Firefox 2/3:</strong></p>
<pre class="prettyprint">
// Firefox 2/3
FF=/a/[-1]=='a'

// Firefox 3
FF3=(function x(){})[-5]=='x'

// Firefox 2
FF2=(function x(){})[-6]=='x'
</pre>
<p><strong>Internet Explorer 6/7/8:</strong></p>
<pre class="prettyprint">
IE='\v'=='v'
</pre>
<p><strong>Safari:</strong></p>
<pre class="prettyprint">
Saf=/a/.__proto__=='//'
</pre>
<p><strong>Chrome</strong></p>
<pre class="prettyprint">
Chr=/source/.test((/a/.toString+''))
</pre>
<p><strong>Opera</strong></p>
<pre class="prettyprint">
Op=/^function \(/.test([].sort)
</pre>
<p>Ну и конечно же можно сложить все это в одну строку:</p>
<pre class="prettyprint">
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'
</pre>
<div class="postLinks">
<strong>Спонсор статьи:</strong><br/><br />
Интернет Магазин Бытовой Техники &#8211; <a href="http://technosite.com.ua/brands.php?brand=128">pioneer одесса</a><br/>Энергосистемы: когенерационные и энергетические установки, газовые мини электростанции, <a href="http://www.energoalternativa.com/offers.html">купить электростанцию</a><br/>Наркологическая клиника &quot;Полинар&quot; &#8211; <a href="http://polinar.com.ua/">кодирование от алкоголя</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Пишем кроссбраузерный CSS при помощи JavaScript</title>
		<link>http://www.jstoolbox.com/2008/10/25/krossbrauzernij-css/</link>
		<comments>http://www.jstoolbox.com/2008/10/25/krossbrauzernij-css/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 20:13:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Совместимость]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/2008/10/25/krossbrauzernij-css/</guid>
		<description><![CDATA[Для совместимости стилей в разных браузерах, часто приходится использовать разные хаки, вроде этих:

*width: 200px;
_width: 240px;

Таким образом, я указываю ширину для Internet Explorer (первая строка) и конкретно для IE 6 (вторая строка). Совсем недавно я нашел один замечательный скрипт &#8211; CSS Browser Selector, с помощью которого можно писать удобочитаемые хаки практически для всех браузеров и операционных [...]]]></description>
			<content:encoded><![CDATA[<p>Для совместимости стилей в разных браузерах, часто приходится использовать разные хаки, вроде этих:</p>
<pre class="prettyprint">
*width: 200px;
_width: 240px;
</pre>
<p>Таким образом, я указываю ширину для Internet Explorer (первая строка) и конкретно для IE 6 (вторая строка). Совсем недавно я нашел один замечательный скрипт &#8211; <a href="http://rafael.adm.br/css_browser_selector/" title="CSS Browser Selector">CSS Browser Selector</a>, с помощью которого можно писать удобочитаемые хаки практически для всех браузеров и операционных систем. Кроме того, можно также писать стили отдельно для сайтов, где разрешен JavaScript и где он выключен.</p>
<p><span id="more-231"></span></p>
<p>Пример:</p>
<pre class="prettyprint">
&lt;style type="text/css">
.ie .example {
  background-color: yellow
}
.ie7 .example {
  background-color: orange
}
.gecko .example {
  background-color: gray
}
.win.gecko .example {
  background-color: red
}
.linux.gecko .example {
  background-color: pink
}
.opera .example {
  background-color: green
}
.konqueror .example {
  background-color: blue
}
.webkit .example {
  background-color: black
}
.example {
  width: 100px;
  height: 100px;
}
.no_js { display: block }
.has_js { display: none }
.js .no_js { display: none }
.js .has_js { display: block }
&lt;/style>
</pre>
<p>Согласитесь, такие стили гораздо понятней, чем упомянутые мною в первом примере. В общем виде правило выглядит следующим образом:</p>
<pre class="prettyprint">
.[os].[browser] .mylink { font-weight: bold; }
</pre>
<p>В начале идет класс с названием операционной системы, за ним класс броузера без пробела, а потом уже ваш селектор.</p>
<p>Полный список классов операционных систем:</p>
<ul>
<li>win &#8211; Microsoft Windows</li>
<li>linux &#8211; Linux</li>
<li>mac &#8211; Mac OS</li>
</ul>
<p>Полный список поддерживаемых браузеров:</p>
<ul>
<li>ie &#8211; Internet Explorer (все версии)</li>
<li>ie8 &#8211; Internet Explorer 8.x</li>
<li>ie7 &#8211; Internet Explorer 7.x</li>
<li>ie6 &#8211; Internet Explorer 6.x</li>
<li>ie5 &#8211; Internet Explorer 5.x</li>
<li>gecko &#8211; Mozilla, Firefox (все версии), Camino</li>
<li>ff2 &#8211; Firefox 2</li>
<li>ff3 &#8211; Firefox 3</li>
<li>opera &#8211; Opera (все версии)</li>
<li>opera8 &#8211; Opera 8.x</li>
<li>opera9 &#8211; Opera 9.x</li>
<li>konqueror &#8211; Konqueror</li>
<li>webkit или safari &#8211; Safari, NetNewsWire, OmniWeb, Shiira, Google Chrome</li>
<li>chrome &#8211; Google Chrome</li>
</ul>
<p>Кроме того есть екстра класс <strong>.js</strong> &#8211; для указания отдельных стилей при включенном JavaScript.</p>
<p>Ну и конечно же, чтоб все это заработало, нужно подключить сам скрипт (весит меньше 1 килобайта):</p>
<pre class="prettyprint">
&lt;script src="css_browser_selector.js" type="text/javascript">&lt;/script>
</pre>
<p><a href="http://rafael.adm.br/css_browser_selector/" title="CSS Browser Selector" class="external">Страница проекта</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2008/10/25/krossbrauzernij-css/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
