Ответы пользователя по тегу CSS
  • Почему не работают медиа запросы на второй странице?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    На второй странице отсутствует мета-тег адаптивности:
    <meta name="viewport" content="width=device-width, initial-scale=1">
    Ответ написан
    Комментировать
  • Как реализовать табуляцию на CSS?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Вариантов много. Например, с помощью отдельного элемента (позволяет использовать рисунок на фоне):


    Самый простой вариант без лишней разметки. Граница на li, а у span залить фон цветом, чтобы перекрыть линию там, где текст:


    Можно псевдоэлементом сделать как для первого, так и второго варианта. Ну и так далее. Можно тут вообще костылей напридумывать, кстати, но это отдельная тема. Если не нужен фон, кроме однородного фона — делайте границей и заливкой цвета.

    Извините, мне с телефона лень писать, поэтому дальше сами.
    Ответ написан
    Комментировать
  • Есть сайдбар. Нет плавности прокрутки + под ним крутится body. Как исправить?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    По описанию это явно iOS Safari.

    Добавьте это в ваш сайдбар:
    -webkit-overflow-scrolling: touch;

    Тогда будет инерционная прокрутка, как на body. К сожалению, у этой штуки есть баги (особенно в сочетании с fixed: скачки, мигания, нежелательные оттягивания элементов), но иных решений Apple не даёт.
    Ответ написан
    Комментировать
  • Как анимировать этот фон?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    А пользователь, по вашему, должен страдать от вашего желания анимировать этот фон?

    Во-первых, что и как должно анимироваться, трансформироваться и тому подобное? Где ТЗ или пример?

    Во-вторых, вопрос тупой, ибо как вы собрались анимировать статическую картинку?

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

    В-четвёртых, если нужна сложная анимация, то тут уже надо делать на WebGL. Что как бы намекает.

    В-пятых, никакой пользователь не захочет грузить 40 мб ресурсов ради этого. У вас не сайт крутого агентства.

    В-шестых, если уж так надо, то найдите просто видео с разрешение 1080p и поставьте его на фон, грузите его лениво, иначе у вас разбегутся люди, никто не будет ждать. Про 4К-запись с хорошим битрейтом будет весить а-ля 100 мб за 10 секунд, а также будет глючить на слабых устройствах. А с учётом огромного количества мелких деталей на видео, то при хорошем визуальном качестве в 4К-разрешении 10 секунд такого видео спокойно может весить и 150–200 мб из-за битрейта. И ваш равно будет небольшое размытие.

    В-седьмых, я не описал ещё кучи моментов.

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

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    1 комментарий
  • Что за проблема с отображением в сафари(iphone 6,8) слайдера slick?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Update: + нужна последняя версия.

    Это баг с просчетом высоты flex-direction: column. Ваши стили на это замените:

    .main__title {
       padding-top: 1.25rem;
       color: #ffffff;
       font-weight: 400;
       width: 100%;
    }
    
    .main__container {
       display: flex;
       flex-direction: row;
       flex-wrap: wrap;
    }


    И все будет нормально:
    5d55b90211ea8731656994.jpeg
    Ответ написан
    Комментировать
  • Как задать css селекктор родителя для input:focus?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Вам очень повезло, ибо в данном случае в CSS есть псевдокласс :focus-within. Он позволяет стилизовать предка, внутри которого поле в фокусе (спасибо Xdevelx за поправку терминологии, см. комментарии). Поддержка нормальная у него:
    https://caniuse.com/#search=%3Afocus-within


    Во всех остальных случаях пока что CSS не может идти выше по коду. Если нужно универсальное решение с поддержкой IE и старых EDGE — только JS.

    :has — только в черновиках, ни в одном браузере его поддержки нет:
    https://caniuse.com/#search=%3Ahas
    Ответ написан
    2 комментария
  • Почему не работает наложение?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Ответ написан
    Комментировать
  • Как перестроить значок мобильного меню "гамбургер" в такое?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    C телефона было сложно, но примерно так:


    Как правильно отметил Brad9aga в своем примере, лучше первую и последнюю полоски сдвигать, так лучше выглядит:
    Ответ написан
  • Как реализовать такой фон на сайте?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    background: url(ссылка на фон) repeat-y -150px 100% / 300px,
                url(ссылка на фон) repeat-y calc(100% + 150px) -50% / 300px;


    Только надо на SVG перерисовать саму картинку по образу и подобию + свои размеры поставить фону. Думаю, вы сможете разобраться и увидеть закономерности в позиционировании относительно размера фона в коде:

    Ответ написан
    1 комментарий
  • Как сделать вывод ДВУХ строк в ячейке td, а потом троеточие?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    На CSS кросс-браузерная обрезка текста с точками в конце и в несколько строк — только визуальным хаком или специфическим свойством:
    hackingui.com/front-end/a-pure-css-solution-for-mu...

    Вот это свойство, если что, с примерами:
    https://css-tricks.com/almanac/properties/l/line-clamp/

    Поддержка свойства браузерами:
    https://caniuse.com/#feat=css-line-clamp

    Раньше Firefox вообще не поддерживал его, теперь поддерживает, но только самая свежая версия (68-я), что плохо. EDGE, начиная с 17-й поддерживает, что тоже не очень хорошо. IE, как всегда, в пролёте.

    Так что делайте либо на хаке визуальном, либо же прогрессивное улучшение с помощью @supports, мол, если есть поддержка свойства, то с точками, если нет — то без точек.

    Ну или, если не на CSS, то с помощью JS. В статье про это тоже есть.
    Ответ написан
    Комментировать
  • Выпадающая карточка внутри слайдера и overflow?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Вам поможет только хак с отступами. Так делаю не только я.

    Добавляем к контейнеру, у которого применен overflow: hidden, следующие стили:

    padding-bottom: 1000px; // делаем отступ внутренний
    margin-bottom: -1000px; // вычитаем отступ внешний, что нивелировать

    В вашем случае, вроде, нет проблем, если только на CSS делать безо всякий динамики (но лучше на JS, читайте об этом под спойлером):



    Читайте тут тут более подробно о решении с помощью добавления класса к контейнеру, ибо иногда так бывает нужно по какой-то причине

    Если у вас планируется доп. функционал, расширяемость и т. п., то лучше сделать на универсальном решении на JS, там сложнее, но иногда это нужно.

    CSS-подход может подойти, а может и нет. Вам, вроде подходит самый простой. Я потратил день на поиск универсального CSS-решения, но в итоге пришел к выводу, что на CSS сделать сие нельзя нормально, если нужны полноценные анимации, переходы при наведении и т. п. К примеру, есть какая-то задержка, если нужно менять z-index на :hover. Видимо, какие-то особенности обработки :hover у браузеров.

    Если на JS: при наведении на слайд, добавляем к контейнеру, у которого применен overflow: hidden, класс с теми же стилями отсупов, что я написал выше. Класс можно добавить и к общему родителю, но стили применяем все равно именно к тому, что c overflow: hidden (это я и сделал в примере ниже).

    В итоге получаем а-ля такое:



    У хака есть одна проблема (решаемая): если есть элементы, типа кнопок-стрелок, на абсолютном позиционировании внутри сдвигаемого блока с oveflow: hidden, то эти элементы будут скакать, ибо вы реальные размеры блока увеличили с помощью padding-bottom. Решается это просто калькуляцией половины вычитаемого отступа и половины размера элемента.
    Ответ написан
    2 комментария
  • Как сделать чтобы placeholder был сверху поля ввода?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Нечто типа этого, зачем тут что-то скрывать?


    Или так, для доступности, с label:


    Нужна анимация? JS в помощь для надёжности. Можно написать обработчики полей и анимацию кастомного placeholder на смене классов, а можно использовать плагин для автоматической генерации оных:
    https://speckyboy.com/floating-form-label-plugins/

    В будущем можно будет это всё делать с помощью только CSS. Но пока что не используйте CSS-метод а-ля этого, ибо не все браузеры нормально не работают с этим input:placeholder-shown. Или вообще не работают. Ну а так, через пару лет можно везде спокойно использовать CSS, чтобы делать так:
    Ответ написан
    Комментировать
  • Что дописать, чтобы текст в псевдо можно было выделить?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Ничего не сделаете, его нельзя выделить как текст никак, он для этого и предназначен.

    Псевдоэлемент — это элемент оформления, его как бы нет в DOM.
    Ответ написан
    Комментировать
  • Как анимировать появление градиента при hover?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Сам по себе градиент не анимируется средствами CSS, потому что это по сути отрендеренная браузером картинка. Его можно заставить делать оное только через JS.

    Но можно анимировать отдельный блок с ним (прозрачность, трансформация и т. п.). В данном случае можно повесть на псевдоэлемент спокойно:


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

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    В данном случае держать SVG в разметке, как в примере Андрей, необязательно.

    Все что нужно — внешний файл SVG с атрибутом preserveAspectRatio="none" + background-size: 100% 100%. Тогда можно вызывать нужную картинку с волной через background: url() — и все будет адаптивно растягиваться.

    В примере я сделал не через ссылку, а через base64, потому что не знаю хостингов, куда можно загрузить SVG, вам же нужно просто поменять base64-код на ссылку с вашего хостинга:


    Вот сам код SVG, обратите внимание на атрибут preserveAspectRatio="none":

    <svg preserveAspectRatio="none" viewBox="0 0 314 109">
      <path d="M45.33 34.92A183.358 183.358 0 0 0 92.91 41c70.66.27 107.53-30.89 180.89-30.95a263.848 263.848 0 0 1 40.2 3.09V109H0V15.82a181.388 181.388 0 0 0 45.33 19.1z" fill="#fff"></path>
    </svg>
    Ответ написан
    8 комментариев
  • Как примерно сверстать подобное меню?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Отрицательный margin на обёртке да calc для элементов.
    Ответ написан
    Комментировать
  • Отладка на непопулярных браузерах?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Скачиваете специальную версию UC Browser для разработчиков на телефон, подсоединяете телефон к ПК и отлаживайте сайт через Chrome:
    https://medium.com/@hdsna/how-to-debug-uc-browser-...

    Лично я так и делал, когда два раза верстал для Китая.

    Плюс, у них есть какое-то своё ПО для отладки (я не пользовался):
    https://plus.ucweb.com/docs/pwa/docs-zh/xy3whu?loc...
    Ответ написан
    Комментировать
  • В IOS Safari телефон преобразует текст в кликабельную ссылку с синим цветом, как исправить?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    В iOS Safari тексты с телефонами, почтой и пр. могут автоматически превращаться в ссылки, чтобы отменить этот механизм, нужны meta-теги:
    В браузере Safari появляются ссылки в верстке, хотя их нет, как исправить?
    Ответ написан
    2 комментария
  • Как поднять дочерний блок над родительским без transform?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Без transform и absolute, z-index тоже работает (img имеет z-index 10, белый блок -- 20):



    Вообще без заданных z-index'ов, если порядок структуры позволяет:

    Ответ написан
    Комментировать