Ответы пользователя по тегу HTML
  • Как работает данный код?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    предположение такое:

    цитата из доки
    Метод Window.getComputedStyle() возвращает объект, содержащий значения всех CSS-свойств элемента, полученных после применения всех активных таблиц стилей, и завершения базовых вычислений значений, которые они могут содержать. Некоторые CSS-свойства доступны через API, предоставляемые объектом, или индексацию по именам CSS-свойств.

    Предполагаю автор, вашего скрипта, при добавлении "getComputedStyle()" ориентировался на выделенную фразу из цитаты

    function closeAccordion (accordion) {
      // ... <= до вызова функции высота "auto"
      accordion.style.height = `${accordion.scrollHeight}px` // Устанавливаем высоту
      window.getComputedStyle(accordion, null).getPropertyValue('height') // Провоцируем вычисление новых изменений
      accordion.style.height = '0' // Устанавливаем высоту
      // ... => после выхода из функции рендер видит, что высота была Npx, стала 0px => запускает анимацию
    }


    Без вызова "getComputedStyle()", соответственно:
    до выполнения функции закрытия аккордиона высота была "auto"
    после завершения функции высота стала "0"
    для рендера высота изменяется из "auto" в "0" => анимация не выполняется


    1) Работает ли это во всех браузерах?
    2) Всегда ли он будет срабатывать?

    нужно всегда проверять, во всех браузерах, неизвестные вам решения.
    в данном случае, как по мне, безобидного ничего нет
    Ответ написан
    1 комментарий
  • Как закрыть по клику на его ::backdrop?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    похоже что нельзя

    но можно контент поместить в слой
    <dialog class="popup">
      <div class="layer">
        ...
      </div>
    <dialog>


    а у слоя останавливать всплывающие события => тогда можно отловить клики вне модалки, примерно так:
    document.querySelector('.layer').addEventListener('click', (e) => e.stopPropagation());
    document.querySelector('.popup').addEventListener('click', (e) => e.target.close());
    Ответ написан
    1 комментарий
  • Как рисовать круги на пунктирной линии через равный промежуток?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    как пример, ещё можно так
    https://jsfiddle.net/5mfcw84j/
    Ответ написан
    Комментировать
  • Mobile first простым языком?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    берёшь два макета мобильник\десктоп (по хорошему)
    делаешь разметку всех элементов с двух макетов
    переключаешься на мобильный вид и начинаешь рутину со стилями до десктоп варианта
    элементы, которые только на десктопе - прячешь, остальные элементы по мере доступной области растягиваешь. По итогу на мобильники приходиться меньше стилевых правил и меньше пользователей, которые не могут открыть по 100500 вкладок, потому что всё тормозит
    Ответ написан
    Комментировать
  • Не отображается картинка?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    потому что браузер не может загрузить картинку по указанному url адресу
    • разметка картинки не валидная (в адрес попал alt)
    • открываете в браузере файл страницы , а не ссылку на сайт
      из-за этого надо править относительный адрес картинки:
      или начинать адрес с точки "./img/", или без начального слеша, или использовать абсолютный url адрес на картинку

    Ответ написан
    Комментировать
  • Как расставить два блока?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    что-нибудь такое https://jsfiddle.net/9tangp7r/
    но не очень понятно почему медиа точками нельзя воспользоваться...
    Ответ написан
    Комментировать
  • Что за css-код начинается на :root?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    Вследствие этого у меня возник вопрос: что это за код, почему код такого типа есть на всех сайтах и за что он, собственно, отвечает?

    на 99% уверен, что этот код вставляет ваш браузер для блокировки рекламы. То есть на самих сайтах такого кода нет.
    да и можете сами проверить, так ли оно, если открыть именно исходный код страницы (Не инспектор элементов) и там посмотреть наличие такого кода
    Ответ написан
    1 комментарий
  • Почему при изменении страны, пропадают последние символы (цифры)?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    как это исправить
    самое простое это добавить обработчик на событие "open:countrydropdown" и в нём у поля ввода удалять аттрибут "maxlength"
    $('#phone').on('open:countrydropdown', function() {
      $(this).removeAttr('maxlength');
    })

    почему так происходит
    Mask-Plugin устанавливает аттрибут maxlength, чтобы нельзя было ввести больше символов, чем длина маски.
    При смене страны плагин intl-tel-input устанавливает placeholder и обрезает его по длине maxlength

    как это происходит
    Могут быть неточности, смотрел не вчитываясь в подробности
    В процессе смены страны вызывается метод _updatePlaceholder():1017
    В этом методе, для удаления символов кода страны, вызывается метод
    placeholder = this._beforeSetNumber(placeholder); // Line: 1023


    В свою очередь метод _beforeSetNumber():1190 возвращает значение из метода
    return this._cap(number); // Line: 1207 в котором обрезается placeholder

    Именно в этом методе _cap() происходит проверка на длину maxlength и обрезание строки
    Ответ написан
    1 комментарий
  • Как исправить баг с адаптивным меню?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    почему бы не сделать прокрутку у этой менюшки?
    .header .menu-btn:checked ~ .menu {
      max-height: calc(100vh - 58px);
      overflow: auto;
    }

    ps. если я правильно подумал про мобильную версию ...
    Ответ написан
    Комментировать
  • Как выглядит верстка?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    быстро пролистал слайды, ничего такого критического нет
    скрин

    n727ls751u81IFjxsE4_7XAOHPV5qXENh_WIC7JN
    ps. на вашем сайте глаза хорошо тренировать, чередующийся ч\б контраст
    Ответ написан
    1 комментарий
  • Как называется такой элемент верстки?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    любой элемент на странице имеет прямоугольную форму.
    если смотреть ваш макет, то текст "не вылазит" за рамки картинки (цена по крайне мере)
    да и что именно гуглить, если как такое сделать, то в основном это так:
    или фоновое изображение
    или абсолютное позиционирование картинки\текста
    или отрицательные отступы
    Ответ написан
    Комментировать
  • Как сделать по БЭМ?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    из вашей трактовки блок "socials" - это отдельная независимая единица, логично предположить, что нужен модификатор

    если в футере используется всё же свой элемент "footer__socials", то тут пригодится миксин от блока "socials"
    => "socials footer__socials"
    или даже так, если удобнее
    => "socials socials--white footer__socials"
    Ответ написан
  • Создание подобной кнопки?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    плюс\минус напильником под ваши задачи ...
    https://jsfiddle.net/Ljptvz0g/
    Ответ написан
    2 комментария
  • Как сделать, чтобы псевдо закрывал только фон?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    но от меня требуют чтобы псевдо закрывал только фон

    если я правильно понял ваши формулировки и за что обычно бьют по рукам, так это у вас невозможно выделить текст в блоках, т.к. сверху перекрывает псевдоэлемент, добавьте стиля к псевдоэлементу:
    .start__image:after {
      pointer-events: none;
      touch-action: none;
    }
    Ответ написан
    1 комментарий
  • Когда следует применять margin: 0 auto для выравнивания объекта по центру?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    margin: 0 auto
    на блочные элементы (display: block), применяется к "самому себе"

    text-align: center
    на строковые элементы (включая строковые блоки, inline-block), работает с дочерними элементами
    Ответ написан
    Комментировать
  • Как в img добавляют изображение без формата?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    в тег img (аттрибут src или стиль для свойства фона) пишут путь по которому браузер будет загружать данные и обрабатывать эти данные как картинку.
    - по пути необязательно может быть картинка
    - как только браузер загрузит данные он определяет формат изображения по заголовкам

    для примера ссылка:
    https://picsum.photos/800/300/?random
    в этой ссылке нет ничего, что указывает, на то что по этой ссылке находится изображение
    Ответ написан
    5 комментариев
  • Как использовать контейнер-центровщик в вёрстке, если иногда контент должен "выпадать" из него?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    <header>
      <div class="container">
        <a class="logo">
          <img src="">
        </a>
        <button class="close"/>
        <nav>
          <ul></ul>
        </nav>
      </div>
    </header>

    сбрасываем ширину у всех элементов шапки, тем самым растягиваем на весь экран
    .container
    display: flex; flex-flow: row wrap; justify-content: space-between;

    nav
    flex: 100%; text-align: center;

    плюс\минус напильником под ваш случай
    Ответ написан
    1 комментарий
  • Как верстать макет?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    Весь блок (например, section) имеет фон в 3 слоя (слой не путать с блоком)
    1 слой покрываете линейным градиентом (linear-gradient)
    2 слой покрываете радиальным градиентом (radial-gradient) с бирюзовым цветом (отблески)
    3 слой наносите текстуру в виде шестиугольника

    Блок по левой стороне
    Делаете цельным вектором, обязательно с группировкой. - в дальнейшем будет удобно менять статус кнопки

    Центральный блок
    Делаете так же векторные элементы для кубиков.
    Текст можно позиционировать отдельными блоками.
    Рамки для полей ввода можно сделать только боковые (по левой и правой стороне), верх\низ соответственно будет border

    Блок по правой стороне
    Это отдельный aside блок с вкладками, а для фона делаете 2 слоя с линейным градиентом:
    - Первый слой фона для верхней линии (разделяющую кнопки вкладок)
    - Второй слой фона по левой стороне блока
    Кнопки вкладок делаете с псевдоэлементами, красите с прозрачностью в зависимости от статуса "активная\неактивная" и сдвигаете друг на друга внешним отступом (отрицательный margin)

    Совет: смотрите как сделаны слои в макете, очень часто можно определиться, как сделать тот или иной эффект - просто изучив макет
    Ответ написан
    6 комментариев
  • Откуда между кнопками промежуток?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    ссылка - по умолчанию это строчный элемент. (display: inline)
    А т.к. в разметке есть перенос строки, то он считается за один пробел
    получается что промежуток - это пробел между ссылками
    Ответ написан
    Комментировать
  • Wrap с пустотой внутри?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    действительно не понятно, как планируется использовать данный блок.
    вот несколько возможных вариантов
    https://codepen.io/anon/pen/zVjBdX?editors=1100
    Ответ написан
    Комментировать