{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Кирилл Беляев: заметки с тегом ХТМЛ",
    "_rss_description": "о подаче информации, айдентике, интерфейсах и жизненной среде",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=tags\/html\/",
    "feed_url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=tags%2Fhtml%2Fjson%2F",
    "icon": "https:\/\/kirillbelyaev.com\/ru\/blog\/user\/userpic@2x.jpg?1662385101",
    "author": {
        "name": "Кирилл Беляев",
        "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/",
        "avatar": "https:\/\/kirillbelyaev.com\/ru\/blog\/user\/userpic@2x.jpg?1662385101"
    },
    "items": [
        {
            "id": "754",
            "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/link-previews-for-social-media\/",
            "title": "Превью ссылок в соцсетях",
            "content_html": "<p>Отлаживал их. Вдруг кому-то пригодится.<\/p>\n<p>Картинке нужен абсолютный УРЛ, а не относительный.<\/p>\n<h2>Проверить, как покажет:<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.facebook.com\/tools\/debug\">Фейсбук<\/a>,<\/li>\n<li><a href=\"https:\/\/cards-dev.twitter.com\/validator\">Твитер<\/a>,<\/li>\n<li><a href=\"https:\/\/linkedin.com\/post-inspector\">Линкедин<\/a>.<\/li>\n<\/ul>\n<h2>Телеграм<\/h2>\n<ul>\n<li><a href=\"https:\/\/telegram.me\/webpagebot\">Бот, который чистит кэш<\/a>.<\/li>\n<\/ul>\n<ul>\n<li>Первой строчкой в превью управляет метатег <b>og:site_name<\/b>. Если он идентичен <b>og:title<\/b>, останется только одна строка жирным.<\/li>\n<\/ul>\n<ul>\n<li>Для большой картинки, неожиданно нужен метатег Твитера (а не Open Graph, как для всего остального):<\/li>\n<\/ul>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;meta name=&quot;twitter:card&quot; content=&quot;summary_large_image&quot;&gt;<\/code><\/pre>",
            "date_published": "2021-03-27T19:41:57+03:00",
            "date_modified": "2021-03-27T21:33:37+03:00",
            "_date_published_rfc2822": "Sat, 27 Mar 2021 19:41:57 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "754",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "672",
            "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/align-rectangle-side-values\/",
            "title": "Выравнивание подписей с длинами сторон прямоугольника",
            "content_html": "<p>Заметка о вёрстке специфичного блока в вебе. Большинству такое не пригодится. Пишу, потому что надеюсь показать пользу от применения свойств по назначению.<\/p>\n<p>Верстали блочок с габаритами основания. Будь текст статичен, хватило бы СВГ. Но в английской версии мы помним об американцах и дублируем размеры в футах (и отбиваем дробную часть точкой):<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/rectangle-wz-sides@2x.png\" width=\"432\" height=\"115\" alt=\"\" \/>\n<\/div>\n<p>В СВГ всё задаётся строго по координатам, хорошо масштабируется, но не умеет «адаптироваться» под содержание. Поэтому c СВГ не обойтись без двух шаблонов и надежды, что они выдержат подписи любой длины. Можно усилить СВГ скриптом, но для меня это выглядело суперлишним. Казалось, что справятся ХТМЛ с ЦССом.<\/p>\n<p>Исходный ХТМЛ простейший:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;div&gt;\r\n    &lt;span&gt;22 м&lt;\/span&gt;\r\n    &lt;div&gt;&lt;\/div&gt;\r\n    &lt;span&gt;14 м&lt;\/span&gt;\r\n&lt;\/div&gt;<\/code><\/pre><p>Первое, что решал: как выравнивать подписи по центру стороны. Понятно, что для верхней подписи нужен «text-align: center», но как ограничить длину подписи, чтобы она равнялась длине прямоугольника, а не всего родительского дива? Можно дублировать width для прямоугольника и подписи, но это не <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Don’t_repeat_yourself\">DRY<\/a> и неудобно в поддержке. Выручило свойство <a href=\"https:\/\/www.w3.org\/TR\/css-sizing-3\/#box-sizing\">box-sizing<\/a>, которое говорит, как считать ширину и высоту элемента. Добавил родительскому диву «box-sizing: content-box» — указанные размеры элементы не будут включать падинги и обводки.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.rectangle {\r\n    position: relative;\r\n    box-sizing: content-box;\r\n    padding-top: отступ, подходящий под высоту подписи; \r\n}<\/code><\/pre><p>Теперь можно наследовать длину родителя и позиционировать подписи вне его:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.rectangle-width, .rectangle-height {\r\n    display: inline-block;\r\n    position: absolute;\r\n    white-space: nowrap;\r\n}\r\n\r\n.rectangle-width {\r\n    width: inherit;\r\n    top: 0;\r\n    text-align: center;\r\n}<\/code><\/pre><p>Если текст длиннее отведённой длины, то он начинается от левого края и благодаря «white-space: nowrap» не переносится.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.rectangle-height {\r\n    left: calc(100% + отступ от фигуры);\r\n    top: 60%;\r\n    transform: translateY(-40%);\r\n}<\/code><\/pre><p>Transform и top и выравнивают подпись и фигуру по горизонтали. Если родитель без падинга,  сработает «top: 50%; transform: translateY(-50%)». В моём случае разницу в 20% нашёл на глаз.<\/p>\n<p>В конце разбираюсь с прямоугольником. Ширину и высоту он наследует у родителя, а ровно поместиться в отведённые границы помогает свойство «box-sizing: border-box», которое, наоборот, включает падинги и обводку.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.rectangle-figure {\r\n    display: inline-block;\r\n    box-sizing: border-box;\r\n    width: inherit;\r\n    height: inherit;\r\n    border: 1px solid цвет;\r\n}<\/code><\/pre><p>Итоговый ХТМЛ английской версии (без оформления футов):<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;div class=&quot;rectangle&quot; style=&quot;width: длина; height: высота&quot;&gt;\r\n    &lt;span class=&quot;rectangle-width&quot;&gt;22 m 72.2 ft&lt;\/span&gt;\r\n    &lt;div class=&quot;rectangle-figure&quot;&gt;&lt;\/div&gt;\r\n    &lt;span class=&quot;rectangle-height&quot;&gt;14 m&lt;br&gt;45.9 ft&lt;\/span&gt;\r\n&lt;\/div&gt;<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/rectangle-wz-sides-layout@2x.png\" width=\"441\" height=\"115\" alt=\"\" \/>\n<\/div>\n<p>Кроме редактирования текста, код требует один раз задать размеры прямоугольника инлайн.<\/p>\n",
            "date_published": "2018-09-10T13:42:22+03:00",
            "date_modified": "2018-09-10T13:41:44+03:00",
            "image": "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/rectangle-wz-sides@2x.png",
            "_date_published_rfc2822": "Mon, 10 Sep 2018 13:42:22 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "672",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/rectangle-wz-sides@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/rectangle-wz-sides-layout@2x.png"
                ]
            }
        }
    ],
    "_e2_version": 3572,
    "_e2_ua_string": "E2 (v3572; Aegea)"
}