<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Кирилл Беляев: заметки с тегом ЦСС</title>
<link>https://kirillbelyaev.com/ru/blog/?go=tags/css/</link>
<description>о подаче информации, айдентике, интерфейсах и жизненной среде</description>
<author>Кирилл Беляев</author>
<language>ru</language>
<generator>E2 (v3572; Aegea)</generator>

<itunes:owner>
<itunes:name>Кирилл Беляев</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>о подаче информации, айдентике, интерфейсах и жизненной среде</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Выравнивание подписей с длинами сторон прямоугольника</title>
<guid isPermaLink="false">672</guid>
<link>https://kirillbelyaev.com/ru/blog/?go=all/align-rectangle-side-values/</link>
<pubDate>Mon, 10 Sep 2018 13:42:22 +0300</pubDate>
<author>Кирилл Беляев</author>
<comments>https://kirillbelyaev.com/ru/blog/?go=all/align-rectangle-side-values/</comments>
<description>
&lt;p&gt;Заметка о вёрстке специфичного блока в вебе. Большинству такое не пригодится. Пишу, потому что надеюсь показать пользу от применения свойств по назначению.&lt;/p&gt;
&lt;p&gt;Верстали блочок с габаритами основания. Будь текст статичен, хватило бы СВГ. Но в английской версии мы помним об американцах и дублируем размеры в футах (и отбиваем дробную часть точкой):&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kirillbelyaev.com/ru/blog/pictures/rectangle-wz-sides@2x.png" width="432" height="115" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В СВГ всё задаётся строго по координатам, хорошо масштабируется, но не умеет «адаптироваться» под содержание. Поэтому c СВГ не обойтись без двух шаблонов и надежды, что они выдержат подписи любой длины. Можно усилить СВГ скриптом, но для меня это выглядело суперлишним. Казалось, что справятся ХТМЛ с ЦССом.&lt;/p&gt;
&lt;p&gt;Исходный ХТМЛ простейший:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;div&amp;gt;
    &amp;lt;span&amp;gt;22 м&amp;lt;/span&amp;gt;
    &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;span&amp;gt;14 м&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Первое, что решал: как выравнивать подписи по центру стороны. Понятно, что для верхней подписи нужен «text-align: center», но как ограничить длину подписи, чтобы она равнялась длине прямоугольника, а не всего родительского дива? Можно дублировать width для прямоугольника и подписи, но это не &lt;a href="https://ru.wikipedia.org/wiki/Don’t_repeat_yourself"&gt;DRY&lt;/a&gt; и неудобно в поддержке. Выручило свойство &lt;a href="https://www.w3.org/TR/css-sizing-3/#box-sizing"&gt;box-sizing&lt;/a&gt;, которое говорит, как считать ширину и высоту элемента. Добавил родительскому диву «box-sizing: content-box» — указанные размеры элементы не будут включать падинги и обводки.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.rectangle {
    position: relative;
    box-sizing: content-box;
    padding-top: отступ, подходящий под высоту подписи; 
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь можно наследовать длину родителя и позиционировать подписи вне его:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.rectangle-width, .rectangle-height {
    display: inline-block;
    position: absolute;
    white-space: nowrap;
}

.rectangle-width {
    width: inherit;
    top: 0;
    text-align: center;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Если текст длиннее отведённой длины, то он начинается от левого края и благодаря «white-space: nowrap» не переносится.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.rectangle-height {
    left: calc(100% + отступ от фигуры);
    top: 60%;
    transform: translateY(-40%);
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Transform и top и выравнивают подпись и фигуру по горизонтали. Если родитель без падинга,  сработает «top: 50%; transform: translateY(-50%)». В моём случае разницу в 20% нашёл на глаз.&lt;/p&gt;
&lt;p&gt;В конце разбираюсь с прямоугольником. Ширину и высоту он наследует у родителя, а ровно поместиться в отведённые границы помогает свойство «box-sizing: border-box», которое, наоборот, включает падинги и обводку.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.rectangle-figure {
    display: inline-block;
    box-sizing: border-box;
    width: inherit;
    height: inherit;
    border: 1px solid цвет;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Итоговый ХТМЛ английской версии (без оформления футов):&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;div class=&amp;quot;rectangle&amp;quot; style=&amp;quot;width: длина; height: высота&amp;quot;&amp;gt;
    &amp;lt;span class=&amp;quot;rectangle-width&amp;quot;&amp;gt;22 m 72.2 ft&amp;lt;/span&amp;gt;
    &amp;lt;div class=&amp;quot;rectangle-figure&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;span class=&amp;quot;rectangle-height&amp;quot;&amp;gt;14 m&amp;lt;br&amp;gt;45.9 ft&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kirillbelyaev.com/ru/blog/pictures/rectangle-wz-sides-layout@2x.png" width="441" height="115" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Кроме редактирования текста, код требует один раз задать размеры прямоугольника инлайн.&lt;/p&gt;
</description>
</item>

<item>
<title>Сглаживание шрифтов</title>
<guid isPermaLink="true">https://kirillbelyaev.com/ru/blog/?go=all/webkit-font-smoothing/</guid>
<link>https://kirillbelyaev.com/ru/blog/?go=all/webkit-font-smoothing/</link>
<pubDate>Thu, 01 Dec 2016 20:25:26 +0300</pubDate>
<author>Кирилл Беляев</author>
<comments>https://kirillbelyaev.com/ru/blog/?go=all/webkit-font-smoothing/</comments>
<description>
&lt;p&gt;Оказалось не все матёрые разработчики знают о ЦСС-свойстве «-webkit-font-smoothing», которое сглаживает шрифты. Есть ещё разные хаки, но тут просто свойство с тремя значениями:&lt;/p&gt;
&lt;p style="-webkit-font-smoothing: none; font-family: 'Helvetica','Arial',sans-serif; padding-bottom: 10px"&gt;
&lt;b&gt;none&lt;/b&gt;&lt;br&gt;«...вопреки общепринятому мнению не теоретизирование — это действие, тогда как теоретизирование может соответствовать отсутствию осознанной деятельности, быть „выбором по умолчанию“.&lt;/p&gt;
&lt;p style="-webkit-font-smoothing: subpixel-antialiased; font-family: 'Helvetica','Arial',sans-serif; padding-bottom: 10px"&gt;
&lt;b&gt;subpixel-antialiased&lt;/b&gt;&lt;br&gt;Непросто изучать (и запоминать) факты, воздерживаясь от суждений и отметая всяческие объяснения.&lt;/p&gt;
&lt;p style="-webkit-font-smoothing: antialiased; font-family: 'Helvetica','Arial',sans-serif; padding-bottom: 10px"&gt;
&lt;b&gt;antialiased&lt;/b&gt;&lt;br&gt;Тяга к теоретизированию с трудом поддается контролю: она, подобно анатомическим характеристикам, входит в наше биологическое устройство, и борьба с ней — это борьба с самим собой.»&lt;/p&gt;
&lt;p&gt;Значение «none» бесполезно, а «subpixel-antialiased» и «antialiased» одинаково хороши, но подходят для разных случаев. Для Гельветики лучше «antialiased», а для Гарамона, который &lt;a href="http://datalaboratory.ru"&gt;на сайте лаборатории&lt;/a&gt; — «subpixel-antialiased».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Добавлено позже&lt;/b&gt;: на Андройде и Виндоус свойство не работает. В других случаях будет так:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kirillbelyaev.com/ru/blog/pictures/webkit-font-smoothing.png" width="705" height="294" alt="" /&gt;
&lt;/div&gt;
</description>
</item>


</channel>
</rss>