<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
  <channel>
    <title>Статьи и эксперименты Романа Комарова</title>
    <link>https://kizu.dev/ru/</link>
    <description>Recent content in Статьи и эксперименты Романа Комарова </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru</language>
    <lastBuildDate>Wed, 21 Dec 2016 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://kizu.dev/ru/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Только по-английски</title>
      <link>https://kizu.dev/ru/just-en/</link>
      <pubDate>Wed, 21 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/just-en/</guid><description>
        Я перестал обновлять русскоязычную часть моего сайта, и в этой статье я описываю почему. Если коротко — у меня не получается находить время на написание одного и того же по два раза. Так что все новые статьи теперь публикуются только по-английски.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/just-en/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Условия для CSS-переменных</title>
      <link>https://kizu.dev/ru/conditions-for-css-variables/</link>
      <pubDate>Fri, 21 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/conditions-for-css-variables/</guid><description>
        Переменные в CSS очень мощные и позволяют делать множество интересных вещей. Но у нас пока нет нативных условных конструкций, которые бы мы применяли вместе с ними. В этой статье я расскажу об одном из обходных путей, который можно использовать в качестве таких псевдо-условий.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/conditions-for-css-variables/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Оформление строчных блоков кода</title>
      <link>https://kizu.dev/ru/styling-inline-code/</link>
      <pubDate>Thu, 08 Sep 2016 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/styling-inline-code/</guid><description>
        Когда я работал над новой версией моего сайта, я пытался побольше думать о том, как всё будет выглядеть и читаться с точки зрения типографики. Одной из вещей, с которыми у меня всегда были проблемы — как оформлять строчные блоки кода. Чаще всего, на их месте мы видим маленькие разноцветные прямоугольники. И чем больше ими набиваешь текст, тем хуже становится его читабельность.
Пример взят из статьи в Википедии о CSS. Поглядите на все эти разноцветные прямоугольники.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/styling-inline-code/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Новая версия этого сайта</title>
      <link>https://kizu.dev/ru/the-new-version-of-this-site/</link>
      <pubDate>Sat, 13 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/the-new-version-of-this-site/</guid><description>
        Примерно полтора месяца назад, 23 июняGo to a sidenote, я в очередной раз перезапустил свой сайт. Сложно вспомнить которая это уже версия. Но если считать с самого начала, с тех времён, когда я ещё не умел верстать, то это, получается, уже тринадцатая мажорная версия. Или около того. Конечно, если не учитывать незаконченные и выкинутые в корзину варианты.
Side note: Да, с момента перезапуска до публикации этого поста прошло больше месяца — хотелось посмотреть как сайт будет себя вести и поправить ещё несколько моментов.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/the-new-version-of-this-site/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Вложенные ссылки</title>
      <link>https://kizu.dev/ru/nested-links/</link>
      <pubDate>Tue, 10 Feb 2015 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/nested-links/</guid><description>
        Проблема В спецификации HTML есть множество разнообразных запретов. Обоснованность многих из них очень хочется оспорить. Один из примеров, с которым мне приходится сталкиваться чаще всего, — вложенные ссылки.
Спецификация прямо запрещает вкладывать одну ссылку в другую:
 The a element
[…]
Content model: transparent, but there must be no interactive content descendant.
 Если так сделать, то парсер браузера вас не поймёт и, как только встретит открывающий тег вложенной ссылки, закроет родительскую ссылку перед собой:&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/nested-links/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Будьте глобальными</title>
      <link>https://kizu.dev/ru/be-global/</link>
      <pubDate>Tue, 08 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/be-global/</guid><description>
        Я часто вижу отличные статьи и эксперименты на русском, и мне досадно, что я не могу поделиться ими с международным сообществом.
Я считаю, что русскоязычным фронтендерам нужно писать больше на английском: у нас достаточно сильных и талантливых людей, чьи знания достойны более широкого внимания.
Не стоит ограничивать себя рамками одного русского языка, нужно начать, наконец, экспортировать наши знания наружу, давать понять, что и мы что-то значим на мировом уровне.
Конечно же, я не призываю отказаться от русского языка.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/be-global/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Битва за базовую линию</title>
      <link>https://kizu.dev/ru/flex-baseline/</link>
      <pubDate>Mon, 10 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/flex-baseline/</guid><description>
        Когда-то наилучшим решением для инлайновых блоков были, ну, инлайн-блоки. Мне они очень нравятся за то, что с их помощью можно решить множество задач. Но и они не всемогущи. Они не умеют правильно работать с вертикальным выравниванием текста по базовой линии шрифта. Причём проблема следует уже из спецификации (см. последний абзац):
  Для многострочных инлайн-блоков базовой линией является базовая линия последнего строчного бокса в обычном потоке.
  Если внутри инлайн-блока нет боксов обычного потока, или же у инлайн-блока стоит overflow отличный от visible, то базовой линией становится нижняя граница блока.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/flex-baseline/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Новые фичи в Стайлусе</title>
      <link>https://kizu.dev/ru/new-stylus-features/</link>
      <pubDate>Thu, 05 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/new-stylus-features/</guid><description>
        Полгода назад я стал мейнтейнеромGo to a sidenote Стайлуса — отличного препроцессора для CSS.
Side note: О том, как это произошло и чем именно я там занимаюсь, я напишу как-нибудь в другой раз, тут стоит заметить только то, что я являюсь именно мейнтейнером, а основным разработчиком сейчас является мой коллега Миша Корепанов. Jump to this sidenote’s context. Side note: Можете сразу промотать до его пошагового описания, либо до результирующего кода. Jump to this sidenote’s context.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/new-stylus-features/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>iOS 7</title>
      <link>https://kizu.dev/ru/ios7/</link>
      <pubDate>Thu, 19 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/ios7/</guid><description>
        Вышла седьмая версия iOS. Обновление очень большое, почти всё переделано, в итоге многое стало сильно лучше, а многое — сильно хуже.
В этой заметке я попробую перечислить те изменения, что я заметил и посчитал интересными. В основном я буду касаться самой iOS и нативных приложений (за исключением СафариGo to a sidenote). Порядок произвольный, если увижу ещё что-то достойное упоминания, пост будет обновлён.
Side note: Про Сафари появилась отличная статья, описывающая все изменения.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/ios7/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Думать перед чтением</title>
      <link>https://kizu.dev/ru/think-before-read/</link>
      <pubDate>Tue, 06 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/think-before-read/</guid><description>
        Люблю это чувство: читаешь заголовок и первые строки статьи, и уже в этот момент, ещё до прочтения статьи целиком, понимаешь, о чём будет речь, как будет решена та или иная проблема, или же и вовсе вспоминаешь или придумываешь лучшее решение поставленной задачи.
Кстати, почти об этом же я рассказывал в рамках доклада «Бесчеловечные эксперименты над CSS»: о том, что хороший способ чему-то научиться — перед заглядыванием в код того или иного примера попробовать сделать его с нуля.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/think-before-read/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Вики Гитхаба — не для документации</title>
      <link>https://kizu.dev/ru/docs-not-at-wiki/</link>
      <pubDate>Thu, 01 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/docs-not-at-wiki/</guid><description>
        Давно хотел поделиться небольшим наблюдением: я часто вижу, что люди хранят документацию в вики Гитхаба. Я считаю, что так делать нельзя. Ни в коем случае. Лучшее место для документации — сам репозиторий проекта. Аргументы:
  В вики нет синхронизации версии кода с версией документации. В вики текст всегда отображается самый актуальный, он не зависит от того, на какой коммит смотрят пользователи через веб-интерфейс. Поэтому, если возникает необходимость узнать какой был API у конкретной версии кода, придётся вручную пытаться найти в истории вики момент, когда её содержимое совпадало с нужной действительностью.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/docs-not-at-wiki/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Обновлённый Jekyll</title>
      <link>https://kizu.dev/ru/updated-jekyll/</link>
      <pubDate>Wed, 05 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/updated-jekyll/</guid><description>
        Недавно Jekyll стал совсем большим — была выпущена версия «1.0».
В ченджлоге довольно много изменений: есть как новые фичи, так и всяческие исправления. О том, что критично знать про это обновление, можно прочитать в этой статье.
Я перевёл свой сайт на эту версию. Ну, как перевёл, — всё и так работало, но зато появилась возможность многое сделать оптимальнее. Напишу немного о том, что же лично для меня интересного появилось в Jekyll 1.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/updated-jekyll/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Шорткаты приложений</title>
      <link>https://kizu.dev/ru/application-shortcuts/</link>
      <pubDate>Mon, 03 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/application-shortcuts/</guid><description>
        Давно хотел рассказать про этот подход к работе (workflow) — использование шорткатов для переключения между приложениями.
Речь не о системных шорткатах вида cmd+tab/alt+tab. Такие шорткаты, на самом деле, ужасны, так как модальны. В каждый момент времени результат применения такого шортката может быть совершенно любым: «альт-таб» переключает фокус между последними открытыми приложениями, поэтому нужно помнить, что же у тебя было открыто раньше и в каком порядке.
Решение проблемы с переключениями между несколькими приложениями показал мне в декабре 2009 года Виталий Харисов: достаточно назначить на каждое часто используемое приложение свой шорткат.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/application-shortcuts/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Текстовый курсор</title>
      <link>https://kizu.dev/ru/cursor-text/</link>
      <pubDate>Fri, 17 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/cursor-text/</guid><description>
        Я уже писал о том, что на все активные элементы нужно вешать cursor:pointer. Если кратко, то смена курсора должна означать, что с элементом под ним можно что-то сделать, а не то, что элемент под курсором несёт какую-то семантику (скажем, является ссылкой, а не кнопкой).
Основная причина для этого — единообразие. Пользователи должны знать, что если курсор — рука, значит, можно на этот элемент нажать, чтобы что-то произошло. А уж о том что именно произойдёт должен уже говорить сам элемент.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/cursor-text/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Блог</title>
      <link>https://kizu.dev/ru/hello-blog/</link>
      <pubDate>Tue, 07 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/hello-blog/</guid><description>
        Привет! В посте про перезапуск сайта я написал, что основной задачей новой версии было упрощение добавления новых записей. Однако, за технической стороной дела я совсем забыл о том, что же именно я хотел так легко и просто писать.
Всё, что я публиковал на своём сайте, делилось на две части: «заметки» и «эксперименты». В «заметках» я старался публиковать в основном объективные, аргументированные, «выстраданные» вещи. Можно было назвать это «статьями», но мне это слово не нравится.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/hello-blog/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Повёрнутый текст</title>
      <link>https://kizu.dev/ru/rotated-text/</link>
      <pubDate>Tue, 30 Apr 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/rotated-text/</guid><description>
        Некоторое время назад я уже делился этим решением в соцсетях, но на этот раз хочу написать о нём немного подробнее.
Задача: получить повёрнутый на 90 градусов текст.
Проблема: широко известно, что при использовании transform, блок ведёт себя аналогично сдвигу через position:relative — продолжает занимать место в потоке по состоянию до трансформации, так что, по факту, изменение происходит только визуальное.
Однако, довольно часто можно захотеть повернуть блок так, чтобы этот поворот влиял и на поток.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/rotated-text/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Маркдауним YAML для Jekyll</title>
      <link>https://kizu.dev/ru/markdowning-yaml/</link>
      <pubDate>Sun, 21 Apr 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/markdowning-yaml/</guid><description>
        Пока я всё никак не допишу какой-либо из длинных постов, попробую выложить несколько мелких заметок. Начну с небольшого трюка для Jekyll.
Для настройки метаданных (заголовок, лейаут, дата, всё такое) в Jekyll используется «YAML front matter» — описание всех этих данных в специально оформленном коде, который обязательно должен идти в начале файла. Jekyll в принципе «видит» только те страницы, у которых этот заголовок есть, поэтому YAML front matter — довольно важная часть.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/markdowning-yaml/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Jekyll</title>
      <link>https://kizu.dev/ru/going-jekyll/</link>
      <pubDate>Wed, 30 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/going-jekyll/</guid><description>
        В посте про перезапуск я пообещал написать серию статей про Jekyll. Это — первая, вводная, заметка из серии.
Я не буду подробно описывать что же такое Jekyll, как его установить, какая у него файловая структура и так далее — про это уже написано довольно много статей (см. ниже в «ссылках»). Если кратко, то это статический генератор сайтов с прицелом на блоги.
GitHub Pages Начну с главного: эту и последующие статьи я буду писать в контексте сервиса GitHub Pages.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/going-jekyll/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Правильный курсор на активных элементах</title>
      <link>https://kizu.dev/ru/cursor-pointer/</link>
      <pubDate>Tue, 22 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/cursor-pointer/</guid><description>
        На всех активных элементах по наведению должен меняться курсор. В большинстве случаев это будет cursor: pointer.
Под активными элементами подразумеваются ссылки, кнопки, селекты, лейблы вместе с чекбоксами или радиокнопками и другие аналогичные элементы.
«Активными» такие элементы должны называться, когда нажатие на подобный элемент вызывает какое-либо действие. Таким образом, ведущий на текущую страницу пункт меню, выбранная радиокнопка или задизейбленные кнопки и ссылки — не активные элементы, и по наведению на них ничего не должно меняться.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/cursor-pointer/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Перезапуск kizu.ru</title>
      <link>https://kizu.dev/ru/restart/</link>
      <pubDate>Thu, 17 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/restart/</guid><description>
        Привет! Я очень долго шёл к этому, и вот оно случилось — я перезапускаю свой сайт. Мне сложно сосчитать, какая по счёту это версия — кажется, что их было уже около десяти.
Каково главное отличие этой версии? Она сырая! Она дичайше, ужасающе непроработанная, корявая, сломанная. Не смотрите в исходники, правда. И это не терновый куст — там сейчас взаправду всё плохо. Почему? Потому что я решил бороться с перфекционизмом. Раньше я вылизывал, вытачивал и отшлифовывал свой сайт и его код; предъявлял сайт миру только когда меня всё устраивало.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/restart/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>bemto</title>
      <link>https://kizu.dev/ru/bemto/</link>
      <pubDate>Mon, 02 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/bemto/</guid><description>
        Привет. Вот то, над чем я в последнее время немного работаю — bemto — набор миксинов для Jade, позволяющих легко и просто писать код в нотации БЭМ.
Я очень люблю писать код, следуя БЭМ, а также мне очень нравится Jade, так что я подумал, что имеет смысл добавить немного БЭМа в Jade. И, надеюсь, что кому-то это тоже может пригодиться.
Если вы ещё не читали статью про БЭМ в Smashing Magazine или статью Николаса Галлахера про архитектуру фронтенда — сейчас самое время это сделать.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/bemto/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Легенды и заголовки</title>
      <link>https://kizu.dev/ru/legends-and-headings/</link>
      <pubDate>Fri, 27 Apr 2012 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/legends-and-headings/</guid><description>
        Однажды в декабре я решил посмотреть, что же можно сделать с элементом legend. Я хотел подвигать его внутри родительского филдсета, но мне не хотелось целиком сбивать стили: у филдсета с легендой есть уникальное поведение — под легенду резервируется пустое пространство.
В итоге, путём пары хаков, я сделал несколько вариантов: с легендой справа, центрированной и даже с двумя легендами с разных сторон.
Проще всего оказалось с первым вариантом: чтобы спозиционировать легенду вправо достаточно применить на родителе direction: rtl, ну и потом не забыть для детей восстановить его значение в ltr.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/legends-and-headings/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Тени скролла</title>
      <link>https://kizu.dev/ru/shadowscroll/</link>
      <pubDate>Sat, 21 Apr 2012 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/shadowscroll/</guid><description>
        Сверстал тут довольно старый эффект, но вот только на чистом CSS.
Изначально делал с враппером и двумя лишними псевдоэлементами и box-shadow, но потом чуть подумал и реализовал только на одном блоке — с помощью радиальных градиентов.
У метода есть некоторое число ограничений: фон должен быть сплошным (хотя, если взять background-attachment: fixed…), блок должен иметь определённое позиционирование, но в остальном — метод довольно ударопрочный. Если делать не через CSS-градиенты, а используя обычные изображения, то метод должен будет заработать и в IE, но я не проверял.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/shadowscroll/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Многосторонний ховер</title>
      <link>https://kizu.dev/ru/multi-directional-hover/</link>
      <pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/multi-directional-hover/</guid><description>
        Попробуйте понаводить курсор на этот блок с разных сторон
 /* Multi-directional hover by @kizmarh */ .b-block { position: relative; display: inline-block; overflow: hidden; width: 10em; height: 10em; vertical-align: middle; -webkit-transform: translateZ(0); } /* The blocks that would be hovered */ .b-block__hoverer { position: absolute; z-index: 1; width: 71%; height: 71%; transform: rotate(45deg); } /* Positioning for hoverers */ .b-block__hoverer:nth-child(1) { top: 0; right: 0; transform-origin: 100% 0; } .b-block__hoverer:nth-child(2) { bottom: 0; right: 0; transform-origin: 100% 100%; } .&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/multi-directional-hover/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Несколько мелочей интерфейса приложения Path</title>
      <link>https://kizu.dev/ru/path-ui/</link>
      <pubDate>Mon, 05 Dec 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/path-ui/</guid><description>
        Небольшое вступление. Я решил попробовать новый для себя жанр — обычно я не высказываю свои мысли по поводу тех или иных интерфейсов, однако, всегда их анализирую и тщательно разбираю. На этот раз я решил сделать исключение: написать об этом печатный текст, т.к. в Path оказалось довольно много вкусных решений.
Итак, Path. Это новая социальная сеть, в первую очередь ориентированная на мобильные устройства: на самом деле пока что она доступна только в версиях для айфона и для андроидов.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/path-ui/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Честные полигоны на CSS3</title>
      <link>https://kizu.dev/ru/polygons/</link>
      <pubDate>Sun, 18 Sep 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/polygons/</guid><description>
        Используя вращение при помощи трансформов, overflow:hidden и связку visibility:hidden для врапперов и visibility:visible у последнего ребёнка, можно делать любые выпуклые маски, честно кликабельные по всей своей площади.
 Я даже создал для этого дела проектик на гитхабе — присылайте пулл реквесты с новыми формами :)&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/polygons/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Концепция быстрой записи БЭМ (bemto)</title>
      <link>https://kizu.dev/ru/bemto-concept/</link>
      <pubDate>Thu, 23 Jun 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/bemto-concept/</guid><description>
        Такая идея!
Сначала я хотел сделать работающий прототип, но потом подумал, что имеет смысл, хотя бы для себя, записать концепцию «на бумаге».
Итак. Что такое БЭМ вы, надеюсь, уже знаете.
Сам по себе БЭМ таков, что имена классов для него раздуваются, порой, донельзя. При этом, идея вполне поддаётся автоматизации, так что в клубе по ссылке выше можно и об этом почитать. Однако, я всегда любил писать код руками, любил статичный html, и ничего не могу с собой поделать.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/bemto-concept/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Паддинги в вёрстке под iOS</title>
      <link>https://kizu.dev/ru/tap-to-padding/</link>
      <pubDate>Mon, 18 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/tap-to-padding/</guid><description>
        Я решил, что раз уж времени на большие посты у меня не хватает, а писать что-то всё-равно хочется, то буду писать о всяких мелочах, которые замечаю.
Довольно банальная вещь, которая может довольно сильно влиять на восприятие страниц при просмотре их под Сафари в iOS: при зуме через дабл-тап происходит приближение к тому элементу под тапом, который находится ближе всего в дереве и имеет не инлайновое позиционирование.
Иногда это может сыграть дурную шутку, особенно в случаях когда внутренние элементы как-то хитро позиционируются из контейнера.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/tap-to-padding/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Автоматический резиновый шеврон</title>
      <link>https://kizu.dev/ru/chevron/</link>
      <pubDate>Sun, 03 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/chevron/</guid><description>
        Всё довольно просто: только CSS и HTML, хотя HTML в итоге получается ужасающим.
Смысл этого эксперимента вот в чём: в дропдаун, который показывается по клику на «ещё», автоматически помещаются все пункты, которые не поместились в одну строчку по ширине. При этом заранее неизвестно ни количество элементов, ни их ширина, ни ширина родителя — и всё это без JS.
--- framed: true outdented: true ---  /*_*/ #Demo_chevron { background: #FFF; } /* Fix for +/~ selectors in webkit */ @-webkit-keyframes bugfix { from { padding: 0; } to { padding: 0; } } .&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/chevron/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Эмуляция text-overflow</title>
      <link>https://kizu.dev/ru/overflower/</link>
      <pubDate>Tue, 08 Mar 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/overflower/</guid><description>
        Эффект «скрытия контента» появляется только если есть что скрывать (следовательно, не будет ситуации когда места для контента хватает, но визуально кажется, что уже что-то скрыто). Можно навесить title на элемент или что-то ещё только если возникает необходимость. Метод должен работать как минимум IE7+, хотя данные примеры для него не оптимизированы (работает только тултип).  Можно поизменять размер окна, чтобы увидеть момент перехода.
 /*_*/ .b-overflower { position: relative; height: 2.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/overflower/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Фильтры элементов без яваскрипта</title>
      <link>https://kizu.dev/ru/filters/</link>
      <pubDate>Sun, 06 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/filters/</guid><description>
        Цвета — просто чекбоксы. формы — радиобатоны с дополнительным свойством: их можно «анчекать».  Только CSS, никакого JS.
 Опять же — только современные браузеры, в IE можно было бы эмулировать экспрешнами, но лень.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/filters/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Попапы и дропдауны</title>
      <link>https://kizu.dev/ru/popups/</link>
      <pubDate>Sat, 05 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/popups/</guid><description>
        /*_*/ /* Dropdowns -----------------------------*/ .b-dropdown { position: relative; display: inline-block; } .b-dropdown-handle { border-bottom: 1px dotted; text-decoration: none; cursor: pointer; white-space: nowrap; position: relative; z-index: 9; color: blue; } .b-dropdown-helper:checked+.b-dropdown .b-dropdown-handle { z-index: auto; } .b-dropdown-handle:hover { color: #F00; } .b-dropdown-popup { position: absolute; top: 100%; right: 50%; z-index: 9; visibility: hidden; opacity: 0; margin: 10px 0 0; font-size: .8571em; -webkit-transition: opacity .2s, visibility .2s; -moz-transition: opacity .2s, visibility .&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/popups/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Кастомные контролы без яваскрипта</title>
      <link>https://kizu.dev/ru/controls/</link>
      <pubDate>Thu, 03 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/controls/</guid><description>
        /*_*/ .b-radio-label { cursor: pointer; } .b-radio-input:checked+.b-radio-wrap.b-radio-label { cursor: default; } /* Slider --------------------------*/ .b-radio_slider { position: relative; width: 401px; padding-left: 0; margin-left: 0; overflow: hidden; border: 1px solid #666688; white-space: nowrap; text-indent: 0; font-family: &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif; background: #a1dbff; /* old browsers */ background: -moz-linear-gradient(top, #a1dbff 0%, #cbebff 47%, #f0f9ff 100%); /* firefox */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a1dbff), color-stop(47%,#cbebff), color-stop(100%,#f0f9ff)); /* webkit */ -webkit-border-radius: .&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/controls/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Скруглённые внутренние углы</title>
      <link>https://kizu.dev/ru/rounded-inner-corners/</link>
      <pubDate>Wed, 12 May 2010 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/rounded-inner-corners/</guid><description>
        /*_*/ /* Bubble with tail ---------------------------------------- */ .b-bubble { position:relative; width:6em; height:3em; margin:0 auto 2em; -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius: 2em; text-align:center; font:normal italic 3em/2.9 Georgia; font-size:3em; line-height:2.9em; background:#BF6; color:#FFF; } /* Tail */ .b-bubble:before, .b-bubble:after, x:nth-child(1) { content:&#34;&#34;; position:absolute; top:100%; width:1em; height:1em; border:solid #BF6; } .b-bubble:before, x:nth-child(1) { right:50%; border-width:1em 1em 0 0; margin:-1em -1em 0 0; -webkit-border-top-right-radius: 2em; -moz-border-radius-topright: 2em; border-top-right-radius: 2em; clip: rect(1em 1em auto auto); } .&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/rounded-inner-corners/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>WBR и его эмуляция</title>
      <link>https://kizu.dev/ru/wbr/</link>
      <pubDate>Tue, 19 May 2009 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/wbr/</guid><description>
        Некоторые, наверное, знают про тег WBR, когда-то давно использовавшийся для того, чтобы переносить слишком длинные слова, если возникает такая необходимость. Основные проблемы этого тега две:
 он не работает в Опере он не валидный  К счастью, эмулировать его достаточно легко. Кроме того, при помощи этой эмуляции можно починить поведение тега в Опере.
Вот примерное решение:
lalala&amp;lt;i class=&amp;quot;wbr&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;lalala  и
WBR, .wbr { display: inline-block; }  Единственный момент, который остаётся за рамками эмуляции: в IE WBR может создавать разрыв строки при white-space:nowrap.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/wbr/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Стили для верхнего и нижнего индекса в CSS</title>
      <link>https://kizu.dev/ru/sup-and-sub/</link>
      <pubDate>Sun, 11 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/sup-and-sub/</guid><description>
        Наверное, почти все знают про теги SUP и SUB. Довольно подробное описание можно найти в статье английской википедии.
Основная проблема в стандартной реализации отображения этих тегов — изменение высоты строки за счёт того, что текст в этих тегах выравнивается свойством CSS vertical-align. Это изменение варьируется от браузера к браузеру, но, кроме того, везде различаются как размеры шрифта для таких элементов, так и сами отступы. Об этой проблеме многие знают и, чаще всего, предлагают два решения: уменьшение высоты строки этих элементов, и их относительное позиционирования.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/sup-and-sub/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>IE и поведение ссылок при наведении</title>
      <link>https://kizu.dev/ru/ie-a-hover/</link>
      <pubDate>Tue, 30 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/ie-a-hover/</guid><description>
        В этой заметке я опишу один момент, который довольно часто можно встретить в сложной вёрстке с CSS, но который редко проявляет себя или на который редко обращают внимание.
Этот момент проявляет себя в случае когда в IE внутри ссылки есть блок со свойством hasLayout, тогда можно заметить следующее:
  клик по картинке, расположенной в таком блоке, не вызывает переход по ссылке;
  при правом клике по блоку с hasLayout не появляется контекстное меню ссылки (т.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/ie-a-hover/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Двойные классы и IE6</title>
      <link>https://kizu.dev/ru/multiclass/</link>
      <pubDate>Mon, 22 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/multiclass/</guid><description>
        Одними из самых приятных селекторов в CSS могли бы стать множественные классы. Стилизация в зависимости от цепочки классов, прописанных одному элементу могла бы быть очень заманчивой, однако, как всегда, всё портит IE6.
Собственно, сразу к делу. Вот пример применения нескольких классов. В нормальных браузерах первые две строчки будут иметь зелёный фон, тогда как IE6 — красный. Это возникает за счёт того, что:
  При использовании цепочки классов, например .class1.class2 {…} IE6 совершенно игнорирует все классы, кроме последнего в селекторе.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/multiclass/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Микроформат «rel-tag»</title>
      <link>https://kizu.dev/ru/rel-tag/</link>
      <pubDate>Wed, 03 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/rel-tag/</guid><description>
        Веб-стандартисты и сторонники семантической вёрстки очень любят микроформаты. Кто-то их разрабатывает, обсуждает и выкладывает всю необходимую информацию на официальном сайте микроформатов.
Я, хоть и не разрабатываю их, но слежу за ними, и, бывает, моё мнение не совпадает с мнением сообщества. В этот раз оно не совпало относительно микроформата rel-tag.
Основной момент, с которым я не согласен — то, что этот микроформат требует достаточно странной имплементации. Но, судя по всему, и в самой среде разработчиков это не до конца решённый вопрос (в XMDP profile ничего не сказано про href, этот валидатор не видит проблемы в теге A без хрефа, тогда как во всех текстах указывается только вариант с хрефом, ну и плагин-валидатор Operator ругается на его отсутствие).&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/rel-tag/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Решение inline-block</title>
      <link>https://kizu.dev/ru/inline-block-solved/</link>
      <pubDate>Tue, 30 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/inline-block-solved/</guid><description>
        Одним из самых интересных свойств в CSS является inline-block. Возможность создавать блоки, ведущие себя как строчные элементы потенциально несёт очень много радости. С одной стороны, можно управлять такими блоками при помощи text-align, с другой — внедрять в текст, используя или как иконки, или как отдельные смысловые элементы, вместе с остальным текстом переносящиеся со строчки на строчку и обтекаемые флоатами.
Однако, существуют две причины, по которой вёрстка с использованием подобных блоков почти не получила распространения:&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/inline-block-solved/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Мелочь в селекте</title>
      <link>https://kizu.dev/ru/select-label/</link>
      <pubDate>Fri, 26 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/select-label/</guid><description>
        В различных формах часто можно встретить элемент SELECT, в котором первым пунктом ставят фразу вроде «Выберите что-нибудь». Чаще всего, её просто вставляют ни о чём не задумываясь. Однако, есть два момента, которые можно учесть:
  В идеале, этот первый пункт вообще не должен быть элементом OPTION, так как он по сути не опция, а заголовок для селекта. Но в спецификации подобного элемента предусмотрено не было. Так что, можно минимизировать влияние этого элемента на семантику, вынеся этот заголовок из содержимого элемента OPTION в его атрибут label.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/select-label/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Браузеры против таблиц</title>
      <link>https://kizu.dev/ru/browsers-vs-tables/</link>
      <pubDate>Sun, 25 May 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/browsers-vs-tables/</guid><description>
        Сложные таблицы являются, наверное, одним из самых интересных мест в верстке.
В последнее время мне нужно верстать очень много таблиц, при этом разных и со всякими дополнительными элементами. И требованиями.
В этой статье я расскажу про несколько моментов, с которыми я встретился за последние пару месяцев.
Выделение таблиц и TFOOT По спецификации блок TFOOT должен идти до блока TBODY, при этом в самой таблице он выводится последним. С первого взгляда всё нормально, но если вдруг нам надо будет выделить содержимое таблицы мы столкнемся с тем, что в отображении TFOOT ставится в конец только визуально и выделяя текст в таблице выделение будет вести себя соответственно: выделяя всю таблицу с верхнего левого угла по нижний правый мы выделим всю таблицу за исключением TBODY (В Opera, однако, алгоритм слегка иной, и можно таким образом выделить всю таблицу, но и своих глюков с этим в ней хватает).&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/browsers-vs-tables/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>5 советов верстальщику</title>
      <link>https://kizu.dev/ru/five-tips/</link>
      <pubDate>Wed, 21 May 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/five-tips/</guid><description>
        Ну, раз уж мне передали эстафету, выскажусь. Тем более есть что сказать.
  Начиная верстать какой-либо макет, лучше всего делать сперва разметку семантичной и минимальной; никаких лишних обрамляющих блоков, лишних элементов и прочего — в итоге получим чёткую структуру и сразу можно будет увидеть сложные и неоднозначные места. Дальше уже можно смотреть на дизайн и размышлять во что бы обернуть имеющееся, стараясь сохранить логическую последовательность в целостности.
  Никогда-никогда-никогда нельзя поддаваться соблазнам и верстать только под один-два браузера.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/five-tips/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
    <item>
      <title>Сафари и растягивающяяся textarea</title>
      <link>https://kizu.dev/ru/safari-and-textarea/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>https://kizu.dev/ru/safari-and-textarea/</guid><description>
        Одним из достоинств Сафари является наличие у текстовых полей (textarea) уголочка, за который можно потянуть и, соответственно, растянуть поле по вкусу.
Однако, часто верстальщикам приходится вписывать текстовое поле в какой-нибудь навороченный дизайн и иногда можно обнаружить, что при изменении размеров текстового поля макет рушится, взрывается и что только с ним не происходит (смотря как тянуть).
Решение же простое — использовать свойства CSS min-width, max-width и такие же -height; с помощью них можно очень просто настроить желаемое поведение текстовых полей в сафари.&lt;p&gt;&lt;a href=&#34;https://kizu.dev/ru/safari-and-textarea/&#34;&gt;Прочитайте статьи целиком на kizu.dev&lt;/a&gt;&lt;/p&gt;
      </description>
    </item>
      
  </channel>
</rss>
