<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:olmokhov</id>
  <title>Олежжжжжжжж</title>
  <subtitle>olmokhov</subtitle>
  <author>
    <name>olmokhov</name>
  </author>
  <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom"/>
  <updated>2010-01-06T17:44:50Z</updated>
  <lj:journal userid="16723049" username="olmokhov" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://olmokhov.livejournal.com/data/atom" title="Олежжжжжжжж"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:53584</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/53584.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=53584"/>
    <title>Aptana Studio</title>
    <published>2010-01-06T17:44:50Z</published>
    <updated>2010-01-06T17:44:50Z</updated>
    <content type="html">Я думал это Эклипс с уже встроенным плагином Аптана.&amp;nbsp;Оказалось что вот ну нихера не так, т.к убрали кучу лишнего (из критически важного Ant, на всё остальное на самом деле похер), а как поставить я таки не нашёл =( Эх, а я только думал что почти всё настроил на Маке...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:53494</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/53494.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=53494"/>
    <title>Лапшун</title>
    <published>2010-01-06T17:31:06Z</published>
    <updated>2010-01-06T17:31:06Z</updated>
    <content type="html">Вряд ли этот отзыв опубликуют на сайте, поэтому пишу в ЖЖ.&lt;br /&gt;&lt;br /&gt;Где-то месяца полтора назад мы в ДжетСтайле открыли с лёгкой руки Алекса лапшу от Лапшуна (&lt;a href="http://lapshun.ru"&gt;http://lapshun.ru&lt;/a&gt;). Всем эта лапша очень понравилась, получалось достаточно дёшево и сытно. Видимо сервис начал расти, и, как следствие, у них стало падать качество товара, потому что вчера мы этой самой лапшой отравились. При том я ещё когда нам привезли обратил внимание на несколько перемен:&amp;nbsp;доставка осуществляется гораздо дольше чем раньше (если раньше в течение полутора часов означало что через час максимум полтора ты будешь есть свою лапшу, то теперь в течение двух часов (!!!) означает через два и более), в моей любимой лапше с креветками и кальмарами собственно креветок и кальмаров стало гораздо меньше, а яичного омлета гораздо больше, ну и при этом от лапши воняло рыбой ну просто таки максимально сильно насколько это может быть...&lt;br /&gt;&lt;br /&gt;В общем, не сервис а сплошное разочарование =( А ведь начиналось всё даже очень неплохо!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:53218</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/53218.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=53218"/>
    <title>Итоги года</title>
    <published>2009-12-29T19:18:06Z</published>
    <updated>2009-12-29T19:18:06Z</updated>
    <content type="html">Подведу итоги года сейчас, потому что завтра выйду в инет на работе, а потом забуду про то что это такое дня на 2-3.&lt;br /&gt;&lt;br /&gt;Я считаю, что этот год стал переломным в моей жизни, именно в этот год я создал фундамент своего будущего. Я нашёл достойную работу, получил высшее образование (пока бакалавр), и, самое главное, получил представление о своём будущем,&amp;nbsp;о том чем хочу заниматься и чего вообще хочу.&lt;br /&gt;&lt;br /&gt;Одним из наивысших своих достижений я считаю продолжение подтверждения делом, а не словами, моего отношения к алкоголю. Каюсь, я выпил один раз, и этот раз лишний раз дал понять, что алкоголь это плохо. Я выпил немного, а вот плохо потом мне было много...&lt;br /&gt;&lt;br /&gt;Ещё в этом году была приятная поездка в Москву и матч Лиги Чемпионов вживую, мечты сбываются, если захотеть!&lt;br /&gt;&lt;br /&gt;В общем-то писать особо больше нечего, приятных мелочей и других вещей было предостаточно...&lt;br /&gt;&lt;br /&gt;Ну а в будущем году меня ждёт увлекательное продолжение работы в новой должности, свадьба и, наверное, переезд от родителей...&amp;nbsp;Поживём увидим.&lt;br /&gt;&lt;br /&gt;Спасибо Катюшику за то что была рядом, спасибо маме за крики и наставления, спасибо&amp;nbsp;Алексею Кулакову за шанс и спасибо всем, кто был со мной.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:52838</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/52838.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=52838"/>
    <title>Мой первый</title>
    <published>2009-12-24T21:54:35Z</published>
    <updated>2009-12-24T22:02:26Z</updated>
    <content type="html">Как говорится беда не приходит одна, недели две назад у меня треснула крышка на монике (та к которой моник привинчен), и буквально за неделю трещина полностью разошлась и разломила крышку на две части возле крепления. Фактически крышка с монитором и поворотный механизм теперь отдельно вообще живут отдельными жизнями. Это означает, что чтобы повернуть монитор к себе, или просто закрыть крышку моника, нужно прилагать ацкие усилия (и при этом ещё стараться всё это дело не сломать), т.к нужно исхитряться поворачивать уголок и крышку одновременно. Ноут я всё равно хотел менять, правда ближе к февралю... ну, блин, не судьба...&lt;br /&gt;&lt;br /&gt;В общем, знакомьтесь: мой новый рабочий станок:&lt;br /&gt;&lt;br /&gt;&lt;img style="position: relative; margin-left: -140px" alt="" src="http://www.mixwebshop.co.za/~mixshop/images/manufacturers/MacBook-MC240.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;P.S. Не жалею, очарован и безумно доволен!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:52728</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/52728.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=52728"/>
    <title>А на следующий день</title>
    <published>2009-12-16T15:24:24Z</published>
    <updated>2009-12-16T15:28:15Z</updated>
    <content type="html">Я вчера ночью писал, что у нас в офисе всё плохо и нет отопления... Так вот, это были цветочки, потому что днём отключили ещё и электричество. Работать стало в принципе невозможно. В ближайшие дни JetStyle переезжает в другой офис, т.к в этом, даже если и включат тепло, и электричество, то трубы наверняка прорвёт, морозы то были ого-го.&lt;br /&gt;&lt;br /&gt;Самое, сука, обидное, что я только сегодня вспомнил, что у меня там &lt;a href="http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D1%81%D1%82%D0%B5%D1%80%D0%B0"&gt;Монстерка&lt;/a&gt; и завтра она, наверное, уже дохлая будет =( Похер на всё остальное, а цветочку жалка! =(</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:52337</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/52337.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=52337"/>
    <title>Ахтунг! Как работать?</title>
    <published>2009-12-14T20:36:22Z</published>
    <updated>2009-12-14T20:36:22Z</updated>
    <content type="html">У нас в Джете уже неделю нет отопления. А нет его, потому что Управляющая компания сп**дила все деньги и съ**алась, а нас отключили за «долги». До сегодня нас грели обогреватели, заботливо купленные Кулаковым. Но вот сегодня мы пришли в офис, после его почти двухсуточного непрогрева, а в нём ужасно холодно. Мы еле-еле разогрели две комнаты (все кто знают нашу планировку поймут, что это нелегко сделать, т.к у нас нет дверей), закрыв все остальные проходы пупырчатыми полиэтиленками (теперь зато на меня никто не будет из-за них рычать =)))) и это при том, что половина народа свалила домой. А завтра будет ещё страшнее, т.к ночью обещают -30 и так ближайшую неделю-две...&lt;br /&gt;&lt;br /&gt;Я не хочу работать дома, тут очень много отвлекающих факторов, поэтому, собственно, сабж: как работать?!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:52026</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/52026.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=52026"/>
    <title>Немного о фрилансе</title>
    <published>2009-12-14T18:58:36Z</published>
    <updated>2009-12-14T18:58:36Z</updated>
    <content type="html">Я не претендую на донесение единственно верной правды, я лишь хочу рассказать как с фрилансом сложилось у меня.&lt;br /&gt;&lt;br /&gt;Я трижды честно пытался фрилансить, и все три раза завершились полными провалами: один раз я отказывался продолжать работать; один раз я заебался, потому что очень честный; один раз меня кинули.&lt;br /&gt;&lt;br /&gt;Я не хочу подробно описывать каждый из случаев, я просто хочу читающим эту статью рассказать несколько рецептов:&lt;br /&gt;1. Всегда требуйте предоплату в размере 50%, не начинайте работу на доверии, что заплатят потом или что деньги уже отправлены (здесь я позволю всё-таки перейти на личности — вот &lt;a href="http://www.r00.ru"&gt;эти&lt;/a&gt; друзья меня кинули, хотя их работу я сделал максимально быстро, пожертвовав даже немного своей основной работой).&lt;br /&gt;2. Никогда, нет НИКОГДА не пытайтесь заводить дружеские отношения с вашим заказчиком, иначе некоторые нужные грани стираются.&lt;br /&gt;3. Всегда обозначайте сумму работы и её объёмы, избегайте фраз типа: «Ну в общем вот пара макетов, потом ещё пару дошлю, но они похожи, за всё n рублей» и вообще избегайте доделок после начала работы. «Ещё» не должно быть только со стороны заказчика: ещё макеты = ещё деньги!&lt;br /&gt;4. Оговаривайте браузеры под которые вы верстаете, на это уйдёт 2 минуты (а скопировать отсюда «IE6-8, FF3.5, Opera 10, Google Chrome 3» ещё быстрее). Вёрстка под остальные версии браузеров избыточна и каждый браузер = дополнительные деньги. Иначе заебётесь верстать под Сафари 3, только потому что заказчик, гад, под Маком.&lt;br /&gt;5. Оговаривайте время, в которое вы работаете (это актуально если у вас есть постоянная работа), иначе срочный проект и срочные баги могут застигнуть вас в 1 час ночи или в разгар рабочего дня.&lt;br /&gt;&lt;br /&gt;Самое главное, если у вас есть устраивающая вас основная работа, то лучше не фрилансьте (в этом отношении мне совсем недавно стала понятна позиция Студии Лебедева в этом вопросе). Потерять то, что вы имеете гораздо легче, чем приобрести, разрываясь между двух огней. Работайте на текущей работе лучше и интенсивнее и желаемое повышение не заставит себя ждать, если ваш работодатель не идиот, а иначе нужно делать выводы.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:51729</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/51729.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=51729"/>
    <title>Opacity и AlphaImageLoader в IE</title>
    <published>2009-12-14T04:21:42Z</published>
    <updated>2009-12-14T04:21:42Z</updated>
    <category term="баг"/>
    <category term="ie8"/>
    <category term="ie7"/>
    <category term="alphaimageloader"/>
    <category term="opacity"/>
    <content type="html">Очень долго пререкаясь с заказчиком по поводу opacity и AlphaImageLoader'а (я полгода назад пытался эту проблему решить и не смог, потом, придя в ДжетСтайл, мне все сказали, что тоже пытались и не решили, и посему я был уверен что она не решаема!) методом наглядной демонстрации и статьи Чикуёнка (&lt;a href="http://chikuyonok.ru/2009/02/ie-filters/"&gt;http://chikuyonok.ru/2009/02/ie-filters/&lt;/a&gt;) я изменил своё мнение и даже было обрадовался открывающимся возможностям, но не тут то было.&lt;br /&gt;&lt;br /&gt;Есть ещё одно замечание к вышеописанному методу Сергея: нужно сменить нативную поддержку IE7 и IE8 полупрозрачных png на фильтры, иначе, решившись в 6-ке, баг появится в более старших версиях!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:51462</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/51462.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=51462"/>
    <title>Списки и поясняющий текст</title>
    <published>2009-12-12T07:28:36Z</published>
    <updated>2009-12-12T07:33:14Z</updated>
    <category term="вёрстка"/>
    <category term="html"/>
    <category term="семантика"/>
    <content type="html">Очень часто на сайтах бывает примерно такой текст:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Сегодня у нас скидки на следующие товары:&lt;br /&gt;&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Холодильник&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Пылесос&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Стиральная машина&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Лично я, каждый раз встречая это, задаюсь вопросом: &amp;laquo;Как более семантично заверстать такое?&amp;raquo;. Т.е как связать пояснительный текст к списку со списком. Раньше я либо забивал, либо обёртывал это каким-нибудь div'ом. А сегодня, подумав, решил что для таких целей, также как и для &amp;laquo;Адрес: ул. Крестинского 53Б&amp;raquo;, как никак лучше подойдёт &lt;code&gt;dl+ (&amp;lt;dl&amp;gt;&amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;)&lt;/code&gt;. Т.е теперь код такой&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dt&amp;gt;Сегодня у нас скидки на следующие товары:&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;Холодильник&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;Пылесос&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;Стиральная машина&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;lt;/dl&amp;gt;&lt;/code&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:51291</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/51291.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=51291"/>
    <title>День ролевых игр</title>
    <published>2009-12-05T18:40:33Z</published>
    <updated>2009-12-05T18:40:33Z</updated>
    <content type="html">Отыграли в Джете партию в BSG, 5 часов резались, правда в конце все уже немного устали, ну и я подгадил пару раз так, пока не вскрылся что сайлон, что просто выиграть шансы были достаточно смутные. В смысле у людей... а в итоге мы победили =)&lt;br /&gt;&lt;br /&gt;Вечером опробовали с Катюшиком пиратский манчкин на чистом англише, ничего так =) Я, как честный джентельмен.... Ну ладно, она меня сделала =)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:51097</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/51097.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=51097"/>
    <title>Элементы уличной магии</title>
    <published>2009-12-03T18:39:34Z</published>
    <updated>2009-12-03T18:40:48Z</updated>
    <content type="html">Порой в макетах встречается нереальная уличная магия, понять которую мне не по силам, вот пара примеров:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;!--[if lte IE 6.5]&amp;gt;&amp;lt;iframe&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var myVar = (thatVar % 2 == 0 ? &amp;quot;2px&amp;quot; : &amp;quot;2px&amp;quot;);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;У вас есть похожие примеры?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:50934</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/50934.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=50934"/>
    <title>И снова о PNG</title>
    <published>2009-11-30T20:15:29Z</published>
    <updated>2009-11-30T20:15:29Z</updated>
    <content type="html">Я три раза перерабатывал своё решение для фикса PNG и на этом не успокоился, в выложенное &lt;a href="http://olmokhov.livejournal.com/47529.html"&gt;третье решение&lt;/a&gt; закралась ошибка, которая помогла мне понять как это работает и почему удалось обойтись без z.gif (однопиксельного прозрачного gif'а).&lt;br /&gt;&lt;br /&gt;Дело в том, что у фильтра AlphaImageLoader есть атрибут sizingMethod и у этого атрибута, как я раньше думал, есть два возможных значения: crop и scale. Работа каждого из них мне была понятна, сrop работает как backgroundImage в точке 0 0, а scale растягивает картинку до размеров контейнера. Оказалось что есть ещё и третье значение атрибута sizingMethod — это image (которое используется по умолчанию). image работает как crop, если размеров контейнера хватает чтобы вместить картинку, а вот если контейнер меньше, тот тут начинается волшебство: картинка всё равно покажется полностью, а контейнер не будет при этом растянут. Именно поэтому сработал мой метод с шириной и высотой в 1 пиксель и пустым src, я просто забыл указать в фильтре sizingMethod и применился image.&lt;br /&gt;&lt;br /&gt;Конечно же я исправил свою оплошность (после 3-го раза у меня не работал scale) и в этот раз я не буду сюда копировать код, а просто дам вам &lt;a href="http://www.microsoft.com/rus/learning/career/css/g-png24.ie.css"&gt;ссылку на одну из последних версий&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;К сожалению полностью побороть проблему !important так и не получилось, потому что если есть селектор:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#my_id {background-image: url('my-image.png') !important;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;то моим:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;* html .g-png-fixed {background-image: none !important;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;этот селектор не переопределить из-за того что специфичность первого селектора выше.&lt;br /&gt;&lt;br /&gt;Мы с Русланом родили такой метод решения этой проблемы: нужно определить элемент которому не удаётся переопределить бэкграунд (сделать это очень просто: нужно задать background-image и посмотреть тут же изменился ли?), если такое есть, то мы бежим вверх по дереву и у всех элементов с id запоминаем id, а у которых нет — создаём id и запоминаем. Потом в html'е создаём css-правило (делать это я научился &lt;a href="http://olmokhov.livejournal.com/46674.html"&gt;во-второй раз&lt;/a&gt;) составленное из всех id'шников запомненных нами и получаем самое длинное правило, которое в 99% нас спасёт (а 1% это сверхэкзотический !important внутри атрибута style элемента). Реализация этого решения будет в следующий раз =)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:50631</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/50631.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=50631"/>
    <title>Opera 10 и баг с картинками</title>
    <published>2009-11-29T19:29:49Z</published>
    <updated>2009-11-29T19:31:35Z</updated>
    <category term="баг"/>
    <category term="opera"/>
    <content type="html">Недавно обнаружил баг, который попил мне кровушки и ещё раз подтвердил, что ИЕ6 не самый ёбнутый браузер в мире, т.к под него хотя бы все баги известны и есть возможность писать хаки не повреждая другим.&lt;br /&gt;&lt;br /&gt;Итак, имеется страница, на ней есть картинки, скроллишь вниз страницы, нажимаешь F5 и часть картинок, которые при скролле вышли из области видимости, пропадает. На поиск причины ушёл час: оказалось что Опере очень не нравятся картинки в inline блоках. Подчеркну, что касается это всех картинок, т.е и вставленных с помощью тега img и правилом background-image! Лечится, как уже можно догадаться, заданием тем же блокам display: inline-block и &lt;span style="text-decoration: line-through"&gt;танцами с бубном&lt;/span&gt; хаком для ИЕ6 (для него пишем display: inline).&lt;br /&gt;&lt;br /&gt;Но всё-таки один вопрос: а какого вообще хрена? Не даёт мне понять почему этот баг возникает? И кстати, это уже не первый баг Оперы 10-й. Есть мнение (моё) что ребята из Opera Software глядят не в ту сторону, вместо поддержки CSS3 селекторов, прикольных режимов Turbo, и новых охуенных дизайнов лучше бы движок свой отладили, а то от версии к версии баги множатся и не ровен час весь мир верстальщиков будет ругать уже не ИЕ6, а Оперу 10 или какая там будет?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:50185</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/50185.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=50185"/>
    <title>Песня</title>
    <published>2009-11-23T12:02:32Z</published>
    <updated>2009-11-23T12:02:32Z</updated>
    <content type="html">Очень задела песня Максима Леонидова «Письмо», давно так ни одна песня ни цепляла, а вот эта прям задела за живое. &lt;a href="http://www.moskva.fm/stations/FM_101.7/programs/%D1%87%D0%B0%D1%80%D1%82%D0%BE%D0%B2%D0%B0_%D0%B4%D1%8E%D0%B6%D0%B8%D0%BD%D0%B0/2009-11-21_13:18"&gt;Послушайте&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:49936</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/49936.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=49936"/>
    <title>WebIde</title>
    <published>2009-11-20T20:21:51Z</published>
    <updated>2009-11-20T20:21:51Z</updated>
    <content type="html">Во-второй раз попытался перелезть на IntelliJIDEA (а точнее WebIde), которую юзают Яндексовские верстаки и второй раз облом. Самое главное требование к IDE вообще у меня очень простое: должна работать большая часть того к чему я привык (Ant, JIRA Connector, Zen Coding). &lt;br /&gt;&lt;br /&gt;Ant даже поставился но чего то просит JDK (Eclipse'овский не просил), для JIRA нашёл два плагина: «Jira Browser» и «Atlassian JIRA connector». Первый тупо не работает, т.е делаешь Apply сисема говорит: надо перезагрузиться — и вылетает. Запускаешь заново и всё по старому. Со вторым плагином ещё интереснее: когда пытаешься его включить он просит подключить плагин JUnit, которого в списке нет. Судя по &lt;a href="https://studio.atlassian.com/browse/PL-1753"&gt;этому&lt;/a&gt; проблема не новая, и не решенная до сих пор (очень обидно, кстати)! Вот с Zen Coding'ом всё хорошо, большая часть его уже есть, а наличие Killer Feature Live Templates действительно можно создать много чего.&lt;br /&gt;&lt;br /&gt;В общем-то мне ещё очень непривычен интерфейс, но упёртость даёт о себе знать: завтра буду добивать Ant, если поставится то можно будет забить на JIRA connector (теоретически конечно, потому что это будет означать опять тонны писем на почту =(((( и попробовать неделю посидеть под WebIde.&lt;br /&gt;&lt;br /&gt;А чего в ней вообще такого, спросите вы? Ну, как минимум в ней есть Refactoring и очень хороший Code Assist (Аптане с её багами до него ещё расти и расти, но Аптана пока всё-таки роднее).&lt;br /&gt;&lt;br /&gt;P.S. Вспомнил ещё одну странность, почему то WebIde не удаётся подключиться к репозиторию плагинов из Джетстайловской сетки (хотя вроде бы обращается по 80 порту; дома у меня всё нормально и там и там ВайФай), тоже наводит на определённые мысли.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:49887</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/49887.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=49887"/>
    <title>Нужна помощь</title>
    <published>2009-11-19T07:25:31Z</published>
    <updated>2009-11-19T07:25:31Z</updated>
    <content type="html">Очень хочу штуку у которой:&lt;br /&gt;1. Большой экран&lt;br /&gt;2. Есть возможность читать PDF&lt;br /&gt;3. Хорошее звучание музыки и есть место (в гигабайтах) под неё&lt;br /&gt;&lt;br /&gt;Кроме iPod и субноута не нашёл пока ничего, но первое дорого, а второе уже великовато. &lt;br /&gt;&lt;br /&gt;Может кто знает что-нибудь такое? &lt;br /&gt;&lt;br /&gt;Яндекс.Маркет выдаёт &lt;a href="http://market.yandex.ru/model.xml?modelid=3951684&amp;hid=90560"&gt;http://market.yandex.ru/model.xml?modelid=3951684&amp;hid=90560&lt;/a&gt;, но насколько я понял пошарившись по форумам и посмотрев на офф.сайте — поддержка PDF там написана из воздуха, но если она там действительно есть/есть возможность её реализовать — это то что нужно.&lt;br /&gt;&lt;br /&gt;Лучше если это будет всё-таки плеер, потому что в телефоне есть ещё телефон, а мне это не очень то нужно, меня устроит любой плеер, если к примеру есть возможность его перепрошить.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:48844</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/48844.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=48844"/>
    <title>U-tel внедрил оплату с сайта</title>
    <published>2009-11-11T08:54:27Z</published>
    <updated>2009-11-11T08:54:27Z</updated>
    <content type="html">Это невероятно, но я только сегодня узнал, что за домашний телефон и сотовый (оператор U-tel) можно заплатить банковской картой прямо &lt;a href="http://u-tel.ru/Telephony/cardpay?cpr=ekt"&gt;с сайта&lt;/a&gt;! Это просто мега охуенно и главное никаких сраных комиссий! Также за сотовый можно платить у всех операторов кроме Мотива.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:48548</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/48548.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=48548"/>
    <title>Хитрость склеивания JS файлов в Ant</title>
    <published>2009-11-07T17:08:32Z</published>
    <updated>2009-11-07T17:08:32Z</updated>
    <content type="html">Сегодня долго не мог сшить файлы для Вадика Гончарова (по-любому таск на меня перешёл, потому что у тебя та же проблема была), пробовал и так и эдак, ну не хотят скрипты работать и всё тут. Думал проблема в YUI, но оказалось всё банально проще: в конце файла нужно обязательно ставить &amp;quot;;&amp;quot;, т.к склеивание = банальная конкатенация и две инструкции могут оказаться в одной строке!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:48248</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/48248.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=48248"/>
    <title>WebKit и expression</title>
    <published>2009-11-07T12:46:19Z</published>
    <updated>2009-11-07T12:49:30Z</updated>
    <content type="html">Да, это не опечатка, внезапно обнаружил, что такая конструкция:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;.myclass {behavior:expression((function(){})(this))}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;читается WebKit (Chrome, Safari) браузерами и стили после ней браузер не воспринимает и, соответственно, не применяет. Опытным путём было установлено, что проблема в этой конструкции в символах &amp;quot;{&amp;quot; и &amp;quot;}&amp;quot;, которые в сумме вызывают какие-то метаморфозы в браузерах, причём если убрать &amp;quot;{&amp;quot;, то баг исчезает, а если &amp;quot;}&amp;quot;, то остаётся. Естественно, наличие &amp;quot;;&amp;quot; в конце правила, тип селектора (т.е даже если это будет селектор для ИЕ, вроде * html [selector]), тип правила (например предварение правила &amp;quot;//&amp;quot; или &amp;quot;_&amp;quot;) ситуации НЕ исправляют!&lt;br /&gt;&lt;br /&gt;Особенно знание этого полезно людям, любящим объединять все стили в один файл, не вынося стили для ИЕ в отдельный файл, и использующим star-hack и иже с ним!&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:48102</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/48102.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=48102"/>
    <title>Apache Ant: что, как, зачем?</title>
    <published>2009-11-07T10:38:31Z</published>
    <updated>2009-11-07T10:44:27Z</updated>
    <content type="html">Т.к последнее время я всё чаще применяю &lt;a href="http://clubs.ya.ru/yacf/"&gt;вёрстку независимыми блоками&lt;/a&gt;, то вполне естественным следствием стало обрастание кучей CSS файликов и необходимостью подключать их все. Для проектов под CMS это, наверное, больше плюс, чем минус, т.к подключаются только нужные файлики (хотя, ещё сомнительно что лучше, на 10 страничках взять 10 css по 10 килобайт или 1 css на весь сайт, размером 100 килобайт), а вот для проектов Майкрософта мои подключения 10-20 css'ок смотрятся достаточно дико. Переходить к 1 файлу мне не хотелось, но для начала я стал создавать поменьше файлов, но это ведь явно не выход. В техногрете &lt;a href="http://www.artlebedev.ru/tools/technogrette/soft/eclipse-ant/"&gt;лекция про Ant&lt;/a&gt; появилась давно, а т.к я юзаю Eclipse то желание потрогать Ant росло с каждым днём, но минутки не было всё.&lt;br /&gt;&lt;br /&gt;Ant это тулза для автоматизации задач по сборке ПО (так &lt;a href="http://en.wikipedia.org/wiki/Apache_Ant"&gt;говорит &lt;/a&gt;Википедия)&lt;br /&gt;&lt;br /&gt;И внезапно мне написали по поводу одной из последних вёрсток, что у них там что-то не получается собрать картинки с css'ками воедино (а собирали тоже Ant'ом). Оно и понятно, ведь только я, как верстальщик, знаю как между собой взаимодействуют стили и картинки. Ну я и взял и написал по примеру в Техногрете (я не буду здесь писать то же самое, что есть там, зачем дублировать?) свой первый Ant сценарий, который склеивал css'ки и в ту же папку копировал все картинки. И так мне это понравилось... Что я стал изучать дальше.&lt;br /&gt;&lt;br /&gt;Вообще, несмотря на то что есть книжки на-английском по Ant'у, у него очень &lt;a href="http://ant.apache.org/manual/tasksoverview.html"&gt;неплохая документация&lt;/a&gt; и большей частью я при постановке задачи находил решение именно там (ну и Гугл там в помощь), главное знать что именно хотеть. Например мне нужно было, чтобы в проекте все CSS'ки клеивались в одну, т.е нужно было прошарить все папки, найти внутри все CSS'ки и склеить их в одну. Вот как это написать на Ant'е:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;project name=&amp;quot;Build CSS&amp;quot; default=&amp;quot;concat-css&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;target name=&amp;quot;concat-css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo&amp;gt;Concatenating files&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;concat destfile=&amp;quot;build/all.css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;fileset dir=&amp;quot;./dev&amp;quot; includes=&amp;quot;**/*.css&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;/concat&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Всё достаточно понятно. Относительно файла с этим сценарием мы сканируем папку dev, находим там все CSS'ки и склеиваем их в файл build/all.css. В html'ке теперь достаточно подключить только этот файл, а не следить за перемещениями, добавлениями новых файлов &amp;mdash; этим теперь занимается Ant. &lt;br /&gt;&lt;br /&gt;А теперь допустим, что нам надо какие-то файлы подключить сначала, а какие-то в самом конце. &lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;project name=&amp;quot;Build CSS&amp;quot; default=&amp;quot;concat-css&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;target name=&amp;quot;concat-css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo&amp;gt;Concatenating files&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;concat destfile=&amp;quot;build/all.css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filelist dir=&amp;quot;./dev&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;file name=&amp;quot;base.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filelist&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;fileset dir=&amp;quot;./dev&amp;quot; includes=&amp;quot;**/*.css&amp;quot; excludes=&amp;quot;base.css&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;/concat&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Теперь первым в all.css будет идти содержимое файла base.css (в нём я обычно сбрасываю дефолтные стили и создаю какие-то дефолтные), а затем содержимое всех остальных. &lt;br /&gt;&lt;br /&gt;Осталось добавить копирование всех картинок в ту же папку и мы получим готовый сценарий (в качестве бонуса я не стал резать свой сценарий и в нём ещё есть генерация стилей для IE, но эту часть я скоро перепишу уже)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;project name=&amp;quot;Build CSS&amp;quot; default=&amp;quot;build-lib&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&amp;quot;base.dir&amp;quot; value=&amp;quot;./dev&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&amp;quot;dest.dir&amp;quot; value=&amp;quot;./build&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Builds all CSS files and copies images&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name=&amp;quot;build-lib&amp;quot; depends=&amp;quot;delete-dest-dir, concat-css, concat-css-to-ie, copy-images&amp;quot; description=&amp;quot;Builds all CSS files and copies images&amp;quot;&amp;gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name=&amp;quot;delete-dest-dir&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;delete dir=&amp;quot;${dest.dir}&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name=&amp;quot;concat-css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo&amp;gt;Concatenating files&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;concat destfile=&amp;quot;${dest.dir}/all.css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filelist dir=&amp;quot;${base.dir}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;file name=&amp;quot;base.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filelist&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir=&amp;quot;${base.dir}&amp;quot; includes=&amp;quot;**/*.css&amp;quot; excludes=&amp;quot;base.css, **/*.ie.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/concat&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name=&amp;quot;concat-css-to-ie&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo&amp;gt;Concatenating files to IE&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;concat destfile=&amp;quot;${dest.dir}/all.ie.css&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir=&amp;quot;${base.dir}&amp;quot; includes=&amp;quot;**/*.ie.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/concat&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name=&amp;quot;copy-images&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo&amp;gt;Copying images&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;copy todir=&amp;quot;${dest.dir}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir=&amp;quot;${base.dir}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include name=&amp;quot;**/*.gif&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include name=&amp;quot;**/*.jpg&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include name=&amp;quot;**/*.png&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fileset&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mapper type=&amp;quot;flatten&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/copy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;К сожалению, всё это требует запуска при каждом изменении и иногда может подвесить систему (например minify для JavaScript'а), поэтому нужно выбрать приоритетные задачки и только их поставить в Автоматическую сборку.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:47529</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/47529.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=47529"/>
    <title>В третий раз фиксим png</title>
    <published>2009-10-27T09:59:10Z</published>
    <updated>2009-10-27T15:08:24Z</updated>
    <content type="html">Полтора месяца назад я показал вам &lt;a href="http://olmokhov.livejournal.com/43810.html"&gt;первую реализацию&lt;/a&gt; моего решения для фикса png в IE6. Через месяц я &lt;a href="http://olmokhov.livejournal.com/46674.html"&gt;дополнил&lt;/a&gt; эту реализацию дополнительными функциями, решающими проблему !important, о которой писал.&lt;br /&gt;&lt;br /&gt;Но меня всё равно не устраивало моё же решение. Во-первых, вторая реализация увеличила количество кода, и от этого надо было избавляться как-то. Решение было заложено в самой же реализации, я почему-то создавал дополнительные стили для класса, указываемого всем элементам (так я борол невозможность из JavaScript'а переопределить !important правило), хотя нужно было этот стиль написать дальше в файле, а элементам просто присваивать класс.&lt;br /&gt;&lt;br /&gt;Во-вторых, меня не устраивала необходимость указывать путь к файлу z.gif и то что это делалось через JavaScript&amp;nbsp; в теге head как-то так:&amp;nbsp;&amp;lt;script&amp;gt;var z_gif = &amp;quot;[path_to_z.gif]/z.gif&amp;quot;&amp;lt;/script&amp;gt; (это нужно для img элементов, чтобы вместо непофикшенной картинки была пустота). Для начала я попытался решить эту проблему в лоб и указал путь в expression'е. Но так как вообще этот z.gif указывается для src картинки и путь должен быть относительно открытого html-документа или абсолютным, то идея провалилась из-за невозможность создать абсолютный путь из expression'а. Бросив эти попытки, я стал думать дальше. Следующим шагом я попробовал не указывать src, но тогда вокруг картинки появлялась несуразица (незагруженная картинка отображается в IE6 соответствующим значком). А потом я зачем-то попробовал указать картинке (&amp;lt;img&amp;gt;) ширину и высоту в 1 пиксель и это сработало. Т.е непофикшенная картинка не отображается, но левый верхний пиксель пофикшенной становится темнее (на самом деле до картинки в 1х1 ужимается исходная картинка и мы это видимо). Ну а тут дело уже было за малым: нужно было сделать так, чтобы на месте картинки была пустота, а для этого подошло просто не указывание src и картинка пофикшена без z.gif.&lt;br /&gt;&lt;br /&gt;&lt;code style="font-size: 10px;"&gt;* html .g-png24 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;behaviour:expression(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(!this.fixedPNG?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(function(el){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var fixSrc = &amp;quot;&amp;quot;, sizingMethod = &amp;quot;crop&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (el.tagName.toLowerCase() == &amp;quot;img&amp;quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fixSrc = el.src;&lt;br /&gt;					&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.style.width = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.style.height = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.src = &amp;quot;&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var tmpImg = new Image();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmpImg.src = el.currentStyle.backgroundImage.split('\&amp;quot;')[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (parseInt(tmpImg.width) == 1 || parseInt(tmpImg.height) == 1 || el.className.indexOf('g-png-24__scaled') &amp;gt; -1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sizingMethod = &amp;quot;scale&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;					&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fixSrc = el.currentStyle.backgroundImage.split('\&amp;quot;')[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.className += &amp;quot; g-png-fixed&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.runtimeStyle.filter = &amp;quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&amp;quot; + fixSrc + &amp;quot;)&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.fixedPNG = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})(this):'')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;	&lt;br /&gt;* html .g-png-fixed {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-image: none !important;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Теперь нужно всего лишь подключить файл с фиксом (желательно через CC) и указывать нужным элементам класс g-png24 и ВСЁ!&lt;br /&gt;&lt;br /&gt;Если вам не нравится моё решение, то можете воспользоваться &lt;a href="http://harisov.livejournal.com/58661.html"&gt;решением Виталия Харисова&lt;/a&gt;, он использует дополнительный элемент для фикса, хотя само решение легче. Также можно воспользоваться &lt;a href="http://www.twinhelix.com/css/iepngfix/"&gt;iePngFix&lt;/a&gt;, говорят что там даже есть поддержка background-repeat, но я в общем-то научился обходиться без него, а универсальность iePngFix говорят (опять же) иногда подводит при большом количестве картинок и часть из них так и остаётся непофикшенными.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:47070</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/47070.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=47070"/>
    <title>Казалось бы...</title>
    <published>2009-10-19T11:25:16Z</published>
    <updated>2009-10-19T11:25:16Z</updated>
    <content type="html">Казалось бы безобидная конструкция, которая фиксит в ИЕ6 баг с морганием мыши при анимации:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.execCommand("BackgroundImageCache", false, true);&lt;br /&gt;} &lt;br /&gt;catch(e) {}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Так вот, это может стать источником проблем в Opera 10: почему-то именно из-за этого в ней появляется вверху отступ для body где-то в 10 пикселей, который никак не пофиксить. Как оказалось эта конструкция портить работу JS в Опере и она начинает глючит, вывод: нужно как-то определять браузер перед этим, например через jQuery'вский &lt;code&gt;$.browser&lt;/code&gt; или вот так:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var m = document.uniqueID&lt;br /&gt;&amp;&amp; document.compatMode&lt;br /&gt;&amp;&amp; !window.XMLHttpRequest&lt;br /&gt;&amp;&amp; document.execCommand;&lt;br /&gt;&lt;br /&gt;try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!!m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m("BackgroundImageCache", false, true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch(oh){};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ну и самый оригинальный способ (это писать в CSS):&lt;br /&gt;&lt;code&gt;html {filter: expression(document.execCommand("BackgroundImageCache", false, true));} &lt;/code&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:46674</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/46674.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=46674"/>
    <title>Ещё раз фиксим png</title>
    <published>2009-10-17T10:56:06Z</published>
    <updated>2009-10-17T10:57:46Z</updated>
    <content type="html">В &lt;a href="http://olmokhov.livejournal.com/43810.html"&gt;прошлый раз&lt;/a&gt; я написал expression, который позволяет пофиксить png для IE6 абстрагируясь от того нужно ли нам его растягивать или нет, почему я был заинтересован использовать именно expression я &lt;a href="http://olmokhov.livejournal.com/45257.html"&gt;тоже написал&lt;/a&gt;. Но на этом эпопея не закончилась, оказалось, что если свойство background-image указано с параметром !important, то и мой expression, и многие другие фиксы бессильны перед этим, т.к !important свойство перекрывает задаваемое &lt;code&gt;background-image: &amp;quot;none&amp;quot;&lt;/code&gt;.&lt;br /&gt;Сложность решения этой проблемы в том, что из JavaScript'а никак не присвоить ключ !important и никак не достучать до того, использовался ли !important или нет. Это естественно меня не остановило и я стал экспериментировать.&lt;br /&gt;Сначала я пробовал достучаться до currentStyle, вместо style, но вредный IE6 не даёт этого сделать ни в какую. Потом я пробовал создавать рядом второй элемент, копируя в него все стили, кроме backgroundImage, а его задавать, но !important свойство перекрывало и это. Затем я пришёл к тому, что нужно генерить в html-документ тег style, в котором прописывать &lt;code&gt;background-image: none !important&lt;/code&gt; для определённого класса, задаваемого всем фиксируемым. Но, создавая доп.элемент до этого, я обнаружил, что для того чтобы поставить его рядом с текущим, нужно ждать дозагрузки родителя (а в момент expression'а его ещё не существует в DOM-дереве). Затем правда я обнаружил, что на момент отрабатывания expression'а уже создан head и можно запихать стили в него.&lt;br /&gt;Вторая проблема была в том, что создавая тег &amp;lt;style&amp;gt; через &lt;code&gt;document.createElement('style')&lt;/code&gt;, нельзя потом написать ему &lt;code&gt;.appendChild(document.createTextNode())&lt;/code&gt; и &lt;code&gt;.innerHTML=&lt;/code&gt;. Пробившись 2 часа я обнаружил, что писать нужно &lt;code&gt;.styleCheet.cssText =&lt;/code&gt;, собственно говоря, после этого всё заработало! Теперь мой expression выглядит так:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;* html .g-png24 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;behaviour:expression(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(!this.fixedPNG?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(function(el){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (el.tagName.toLowerCase() == "img") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + el.src + ")";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.src = z_gif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sizingMethod = "crop";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var tmpImg = new Image();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmpImg.src = el.currentStyle.backgroundImage.split('\"')[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (parseInt(tmpImg.width) == 1 || parseInt(tmpImg.height) == 1 || el.className.indexOf('g-png-24__scaled') &amp;gt; -1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sizingMethod = "scale";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;					&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + el.currentStyle.backgroundImage.split('\"')[1] + ", sizingMethod='"+sizingMethod+"')";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.className += " g-png-fixed";&lt;br /&gt;					&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!document.getElementById('g-fixed')) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var style = document.createElement('style');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var rules = document.createTextNode('.g-png-fixed {background-image: none !important}');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;style.type = 'text/css';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;style.id = "g-fixed";&lt;br /&gt;						&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;style.styleSheet.cssText = rules.nodeValue;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.getElementsByTagName('head')[0].appendChild(style);				&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;el.fixedPNG = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})(this):'')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Enjoy...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ps.Интересно, стоит выносить это на Хабру?&lt;/strong&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:46463</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/46463.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=46463"/>
    <title>Зазубренный текст в IE6 при изменении opacity</title>
    <published>2009-10-10T12:01:58Z</published>
    <updated>2009-10-10T12:09:02Z</updated>
    <category term="ie6"/>
    <category term="fix"/>
    <content type="html">Это очень известный и старый баг IE, когда меняешь прозрачность блоку с текстом &amp;mdash; текст становится зазубренным. Все решения, что я сегодня успел увидеть за 4 часа сводились к тому, что нужно блоку меняющему прозрачность задать background-color, мол если идёт анимация до 100%, то всё хорошо и будет в итоге. Но мне этот вариант не подходил по той причине, что сам текст лежал на полупрозрачной подложке. Решение всё-таки было найдено (&lt;a href="http://www.hedgerwow.com/360/bugs/fix-ie-opacity-text.html"&gt;источник&lt;/a&gt;), я правда очень долго пытался понять как оно реализуется, ибо описания решения не было, но оно работало, итак:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;opacity&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;Какой-то текст&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;.opacity {filter:progid:DXImageTransform.Microsoft.BasicImage(opacity=0.5); zoom: 1; background:url('someimage.png')}&lt;br /&gt;.opacity .text {&lt;br /&gt;*filter:progid:DXImageTransform.Microsoft.Chroma(color=#e2dae5);&lt;br /&gt;*zoom:1;&lt;br /&gt;*background-color:#e2dae5;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Для .opacity .text в filter и в background-color пишется цвет,&amp;nbsp;который преобладает(!!!!!) в фоновой картинке. Фильтр Chroma делает цвет в исходной картинке (в данном случае той что указана для .opacity) прозрачным и получается нужный нам эффект. Правда до конца я и сам не понимаю как и почему это работает. Magic!&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olmokhov:46224</id>
    <link rel="alternate" type="text/html" href="http://olmokhov.livejournal.com/46224.html"/>
    <link rel="self" type="text/xml" href="http://olmokhov.livejournal.com/data/atom/?itemid=46224"/>
    <title>Вёрстка сайта УБТ для студии «Тагилвеб»</title>
    <published>2009-10-08T18:19:46Z</published>
    <updated>2009-10-08T18:23:08Z</updated>
    <content type="html">С Тагилвебовцами я пытался сотрудничать ещё весной этого года. Но тогда у нас не сложилось. После 5 дней вёрстки макета (это был сайт РСЦ&amp;nbsp;&lt;a href="http://tagilweb.ru/what_is_made/web_sites/57&amp;amp;year=2009"&gt;http://tagilweb.ru/what_is_made/web_sites/57&amp;amp;year=2009&lt;/a&gt;) количество усилий потраченных макет было настолько велико, что я в мягких словах отказался от продолжения. Самое бредовое требование было &amp;laquo;верстать не в таблицах&amp;raquo;, тогда я помнится написал ацкий скрипт, который перехерачивал главное меню, которое без таблиц было не возможно сверстать для ИЕ, из div'ов в таблицу =) В итоге кстати следующий верстак заверстал всё в таблицах... профиссианал, блин.&lt;br /&gt;&lt;br /&gt;Но мы решили дать друг другу ещё один шанс и на этот раз я даже довёл работу до конца, знакомьтесь: Уральская Большегрузная Техника (&lt;a href="http://www.ubtuvz.ru/"&gt;http://www.ubtuvz.ru/&lt;/a&gt;). На этом сайте вёрстка и скрипты полностью написаны мной (за исключением мелких правок и ацкой бредовой подсказки &amp;laquo;Наведитесь чтобы развернуть&amp;raquo; и разворачивалки по прохождению мыши (у меня было по клику)). Лучшая часть в этой работе и тяжелее всего дававшейся мне была верхняя часть главной страницы, но в итоге оно того стоило. Главное меню и слайдер сделаны даже слишком хорошо. Разобрать как они сделаны оставляю на ваше усмотрение, дам небольшую подсказку: в меню уголки сделаны без картинок, в слайдере самая большая сложность была сделать экскаватор выходящим из него. А меня даже удостоили чести быть упомянутым на их сайте:&amp;nbsp;&lt;a href="http://tagilweb.ru/what_is_made/web_sites/63"&gt;http://tagilweb.ru/what_is_made/web_sites/63&lt;/a&gt;&amp;nbsp;=)</content>
  </entry>
</feed>
