Ответы пользователя по тегу CSS
  • Не получается дописать слайдер. Хелп?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    В принципе жить можно. Подход такой себе, хотя я его и чуть больше люблю, чем классические слайдеры.
    Сделать надо вот что, при инициализации раздай data- атрибуты каруселькам — так ты сможешь сопоставлять активный элемент с «кружочками».

    Ну и переставлять в начало требуемый элемент при выборе его не стрелками — это очень нехорошо.
    Ответ написан
  • Как поменять схему переноса?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. Разобраться в CSS
    2. display: inline-block; вот это нахер.
    3. Либо родителю добавить display:flex;flex-direction:column; → иметь дело с последствиями.

    UPD: после дополнения вопроса словами
    речь про нормальный перенос > и >>

    Псевдоэлементы должны быть смещены влево и быть не :before, а :after.
    Ответ написан
  • Как расположить три элемента?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Тут 4 элемента:
    1. Номер
    2. Обертка для «кнопки» обратного звонка
    3. Иконка внутри «кнопки»
    4. Фраза «обратный звонок» на том же уровне, что и иконка.

    Флексы тут не нужны. От слова совсем. Впрочем, если очень надо, то логика вкладывания элементов в списке выше тебе поможет.
    Ответ написан
    Комментировать
  • Как позиционировать и адаптировать без пустого пространства?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Можно без grid. На десктопе ты можешь абсолютно спозиционировать поиск и под ним sidebar. Я уверен, что ты точно знаешь высоту поиска (или сейчас поймешь, что знаешь). И уж точно ширину.

    Ширину news и article можно регулировать на десктопе как угодно, хоть калькулировать на css, хоть margin-right в размер сайдбара задавать. Ну и рекомендую все же пользовать принцип mobile-first. Т.е. сперва описать правый layout, а потом дополнить его танцем с бубном, как я предложил.

    Еще ты можешь воспользоваться возможностями JS по манипуляции DOM, т.е. банально менять структуру при разном разрешении. Или вообще пойти дальше и заюзать какой фреймворк, но это не всегда уместно.
    Ответ написан
    4 комментария
  • Как сделать, чтобы ввод номера работал колёсиком мыши?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Ответ в твоем вопросе. Слушай событие hover/focus поля и в нем включай слушателя колесика мышки. По результатам инкрементируй в ту или иную сторону значение в диапазоне. Чтобы не выйти за диапазон тебе все придется эти атрибуты считать в JS.
    Ответ написан
    1 комментарий
  • Как сверстать правильно?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Адаптивность в bootstap достигается добавлением ключа медиазапроса, например col-md-3. Сейчас я вижу правило col-3, а оно работает для абсолютно всех разрешений. По тому же принципу делаются и отступы mb-md-[n].

    Колонки, которые находятся внутри .row по умолчанию имеют размер на всю высоту, это свойства flex. Собсно, углубись в матчасть, чтобы понимать, как это работает. Row → родитель, col- → ребенок flex-а.

    PS: если ты задашь schema-block, который находится внутри col, то получишь почти такую же верстку, как и во втором варианте + отступы слева и справа, которые формируются стилями bootstrap.
    Ответ написан
  • Почему при использовании свойства flex один элемент растягивается по высоте из-за рядом стоящего?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    align-items по умолчанию stretch. Тебе необходимо указать align-items: center родителю или align-self: center квадрату.

    И спеку почитать.
    Ответ написан
    3 комментария
  • WordPress. Как установить несколько логотипов?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Если это чистый WP, то дописать ему логику. Если фреймворк типа Unyson, то еще проще.

    Впрочем, скорее всего овчинка выделки не стоит и проще зашить это в шаблон.
    Ответ написан
    Комментировать
  • Как сделать чтобы при разных разрешениях менялся текст?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    display:none на разрешениях, где текст не нужен.

    Сам текст в контенте указать весь и прятать ненужный. Либо запихнуть его в after\before, если он захардкожен. Ну как варик.
    Ответ написан
    Комментировать
  • Как написать текст по верх фонового видео?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Чтобы управлять положением «ближе\дальше» используй z-index. Значение relative входит во flex-поведение по умолчанию.
    Ответ написан
    Комментировать
  • Как убрать тень сверху?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    box-shadow: 0 0
    Первые два параметра отвечают за смещение по X и Y соответственно. По ним и смещай.
    Ответ написан
    Комментировать
  • Как сформировать nth-child?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Не поверишь) Но вот так. Ну и учти, что следующий после каждого четвертого это 8-й. Специфичность стилей тебе в помощь.
    Ответ написан
    Комментировать
  • Возможно ли реализовать такое с помощью гридов?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Присыпать немного JS и все бует окей. Может быть даже тебе поможет masonry. Хотя ему абсолютно насрать на то, какой у тебя метод позиционирования элементов, он сделает их абсолютным. Так что лучше свой алгоритм набросать.

    В CSS помогут только селекторы. Но там ты сможешь реализовать только логику типа «каждый n элемент делать две строки». Ну и придется посидеть посчитать, под какие разрешения какие условия загонять. Что реально, но немного геморрно на самом деле.
    Ответ написан
    Комментировать
  • Как разделить критический css?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. Средний по адкватности метод (без углубления в суть задачи) — в head вызывать критический CSS, а в подвале после всего остальное.
    2. Использовать хак типа такого для остального кода:
    <link rel="stylesheet" href="/css/style.css" media="none" onload="if(media!=='all')media='all'" >
    , с созданием fallback-а для случая, когда не включен JS.
    3. Генерировать вызов через document.write с помощью JS (но это по сути одна из вариаций и насколько я помню опасна тем, что безопасность браузером на такое триггериться, не уверен, поэтому просто прими к сведению).

    4. Просто адекватно подойти к генерации стилей и не грузить того, что не должно быть на странице. Читай как хочешь, хоть билд для каждой страницы свой (не самое лучшее, ибо кеш).

    UPD: В любом варианте, основной CSS должен грузится в head. А остальной код (если такой есть) какими-то иными способами.
    Ответ написан
  • Почему таблица не подстраивается под текст, а его переносит?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    При загрузке таблицы браузер анализирует контент и где можно перенести переносит.

    В общем и целом самая правая колонка имеет больше шансов на переносы и возможность быть «узкой», что и происходит. Именно по этой причине и верстали всегда с точным указанием размера столбца. И должно это выглядеть как-то так:

    <tr>
      <td width="50">Сорт</td>
      <td width="250">Сечение(мм) /длина(м)</td>
      <td width="100">Цена, руб./м³</td>
    </tr>


    Но лучше это загнать в шапку и посмотреть в сторону назначения классов с размерами под разные разрешения.

    Либо попытаться запретить переносы.
    Ответ написан
    Комментировать
  • Как сверстать Radio Buttons?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Для начала, код — невалидное гавно. Смотри сюда, чтобы понять, почему. Кроме прочего, твои label ни к чему не обязывают (оно валидно, но кастрировано).

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Если ты хочешь сделать переполнение, то просто запрети перенос элементов внутри зеленого блока. Сделать это можно с помощью flex-wrap: nowrap, если он уже флексбокс. Но ты можешь его таким сделать, добавив свойство display: flex. Это я все еще про зеленый блок.

    Но, таким образом ты не сможешь регулировать тот момент, чтобы при переполнении они достигали конца экрана. Это значит, что если фиксированный элемент слайдов будет меньше, или внутри них контент будет меньше, чем 33% от левого края зеленого блока и до конца экрана, то они будут либо не достигать, либо создавать горизонтальную прокрутку.

    Между делом, чтобы снизить количество багов, тебе скорее всего потребуется дополнительно обернуть в блок, который будет занимать оставшееся от соседнего синего с текстом до конца родителя (черного).

    И для того, чтобы сделать расчет размера зеленого блока, ты можешь с помощью JS считать размер экрана (ширину), отступ от левой части экрана самого зеленого блока (его левого края) и разницу присваивать ширине (width) зеленому блоку.
    При этом тебе необходимо учесть все отступы, сделать проверку на ресайз (если данное решение входит в размеры горизонтально И вертикально ориентированного планшета).

    Даже если ты решишь реализовать это с помощью абсолютного позиционирования, размеры тебе все равно придется считать с помощью JS.

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Чтобы добавлять\менять классы, используй toggleClass('class')\addClass('class')\removeClass('class').

    А чтобы реализовать missclick, обратись к документации про всплытие и перехват событий.
    Ответ написан
    Комментировать
  • Как сделать сетку бдя блоков как в "крестики-нолики"?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Если ты знаешь конечное количество заранее, то используй селекторы (количество столбцов ты точно знаешь заранее, первую строку, а вот последнюю не факт).
    Если ты не знаешь, то используй JS, чтобы определить крайние элементы и убирать им границу.
    Ты можешь использовать table, они умеют во внутренние границы, но ты просрешься на адаптиве.
    Ты можешь использовать гриды с gap и цветом фона родителя в цвет границы и «белым» дивов, тогда они будут проглядывать.
    Ты можешь использовать background на повторе, который будет имитировать эти границы.

    Короче, вариантов уйма просто. Выбирай не хочу и иди реализовывать.
    Ответ написан
    Комментировать
  • Почему вертикальное выравнивание текста работает по разному на десктопе и мобильных устройствах?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Выше тебе показали метрики. Ты можешь на базе их создать канву для иконки, чтобы, вписать ее, скажем, в x-height, да экспортировать в виде кода, задать ей свойства inline уже в html-коде, чтобы она встроилась, как текст.

    Придется пошаманить с настройкой ее как инлайновой (да или inline-block) единицы, но оно того стоит. По этому принципу можно и регулировать свои иконочные шрифты под основное начертание в проекте. Но это уже другая тема.
    Ответ написан