• Как сделать только хедер адаптивным на неадаптивном сайте?

    @cssfish
    Плохое знание основ - причина больших бед
    С чего вы взяли что медиа-запросы не работают без тега meta viewport???
    Единственное, что происходит без этого тега - мобильники задают некую виртуальную ширину устройства, обычно это 980px, и в нее рендерят сайт.

    Соответственно вам никто не мешает прописать например@media only screen and (max-width: 990px) {}
    и там стили адаптива свои накидать. Просто держите в уме, что оно отрендерится в 980 а потом запихается в 360 например, т.е. размеры задавайте с учетом масштаба, вот и все.
    Ответ написан
    Комментировать
  • Как правильно зафиксировать меню с вкладками над контентом внутри страницы?

    @cssfish
    Плохое знание основ - причина больших бед
    1. замеряем сколько Px от верах страницы до табов (a)
    2. при скролле замеряем насколько проскроллили (b)
    3. если b > a, добавляем блоку табов класс is-active (например)
    4. в стилях описываем его положение, проще всего через fixed
    Ответ написан
    Комментировать
  • Почему изза текста блоки не стоят ровно?

    @cssfish
    Плохое знание основ - причина больших бед
    для полной ясности, отключаем все маржины ,паддинги и relative смещения, и видим базовую механику -это inline-block-и, выровненные по базовой линии (vertical-align: baseline по умолчанию)
    63ae019a8697a826424447.png
    Ответ написан
    Комментировать
  • Как скрыть ul первого и второго уровня, оставить только ul 3 уровеня вложенности?

    @cssfish
    Плохое знание основ - причина больших бед
    значит надо скрывать не UL а все LI кроме родительских по отношению к вашему меню 3 уровня.
    плюс скрывать текст/контент в самих родительских LI.

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

    @cssfish
    Плохое знание основ - причина больших бед
    Так и не понял, вам на десктопе или на мобильных (точнее на тач устройствах)?
    Т.к. видов скролла два:
    1) привычный "дектопный", который часть вьюпорта отъедает. Под него вы ничего не сунете. Только если использовать скриптовый скролл вместо него, тогда да.
    2) скролл "поверх" блока, как на тач девайсах. там вашу задачу решать вообще не надо, скролл и так будет сверху.
    Ответ написан
  • Как сделать, чтобы две owl карусели и input type="range" синхронно работали и переключали друг друга?

    @cssfish
    Плохое знание основ - причина больших бед
    зачем там Input? У owl carousel есть родной плагин для синхронизации каруселей - загуглите owl.linked.js
    Ответ написан
    Комментировать
  • Как сделать блок, пропорциональный своей высоте?

    @cssfish
    Плохое знание основ - причина больших бед
    1. aspect-ratio хорошо конечно, но поддержка пока не очень.
    2. способ с паддингом (т.н. padding hack) действительно работает только отталкиваясь от ширины, а от высоты - не получится.
    3. решение - использовать САМЫЙ древний способ - с картинкой :) Ведь картинка имеет ratio, следовательно может "раздвинуть" вложенный блок так, как нам нужно.

    Для этого создаем в графическом редакторе ПУСТОЙ файл с нужным соотношением сторон. Например, если нам нужно ratio 1:2, то можно создать файл как размером 1px*2px так и 100px*200px, разница будет только в размере файла (я создал png 1px*2px, размером 76 байт).

    Далее делаем разметку
    <div class="out">
      <div class="in">
       <img src="test_img.png" alt="">
      </div>
    </div>


    и стили
    .out {
    			position: relative;
    			width: 200px;
    			height: 100px;
    			background: #000;
    		}
    		.in {
    			position: absolute;
    			top: 0;
    			bottom: 0;
    			height: 100%;
    			right: 10%;
    			background: red;
    		}
    		.in img {
    			display: block;
    			height: 100%;
    			width: auto;
    		}


    общая идея - в relative внешний блок вкладываем absolute вложенный, растягиваем его по высоте, и как-то его по ширине позиционируем (я использовал right: 10%;. Ширину не указываем - ее сформирует img, который блочный и тоже растянут по высоте (смасштабирован к текущему блоку).

    Все, теперь габариты обертки можно менять как угодно, вложенный блок всегда имеет фиксированное соотношение сторон :)

    p.s.
    - картинку можно потом перевести в data:uri прямо на странице чтоб внешние файлы не грузить
    - пробовал еще грузить картинку через псевдоэлемент.in:before { content: url("test_img.png"); } но это не работает - картинка грузится, но не масштабируется как надо.

    Возможно, это как-то решается, не знаю.
    Ответ написан
    1 комментарий
  • Как придать div вот такую форму?

    @cssfish
    Плохое знание основ - причина больших бед
    вырезка через clip-path, закругление потом через svg #round . Правда, не везде это хорошо смотрится
    Ответ написан
    Комментировать
  • Как исправить отображение шрифта montserrat кирилический?

    @cssfish
    Плохое знание основ - причина больших бед
    Посмотрите мой ответ в соседней теме.
    Думаю что ситуация та же самая.

    upd:
    посмотрел на гитхабе, вот даже тема есть со ссылками на норм шрифт
    https://github.com/google/fonts/issues/5370
    Ответ написан
  • Как избавиться от неправильных символах в Gulp?

    @cssfish
    Плохое знание основ - причина больших бед
    Для начала смотреть кодировки и формат конца строк. В файле. В редакторе. В гите.

    Далее смотреть используемые плагины.
    Например, в gulp sass есть ошибка, если запускать с параметром компрессии, то оно "оптимизирует" и заменяет charset в css на bom метку. После этого utf символы в браузере отображаются некорректно...
    Ответ написан
    Комментировать
  • Объясните, какая ширина в пикселях у элемента с классом .item в следующем фрагменте кода?

    @cssfish
    Плохое знание основ - причина больших бед
    Если что-то мешает сделать html страничку и проверить, то прикидываем логически:

    Если другого css нет, получаем:

    1) по умолчанию box-sizing: content-box, поэтому "внутренняя" ширина у wrapper останется 1000px, а общая - 1100px.

    2) ширина list-items заявлена в 50%, рассчитывается от "внутренней" ширины родителя
    1000 * 0.5 = 500px
    но по умолчанию этому элементу задан отступ. В каждом браузере свой, возможно.
    В FF например это 40px паддинг слева. Но так как у нас box-sizing: content-box, то опять же "внутренняя" ширина у list-items останется 500px, а внешняя 500+40(или другое)

    3) ширина item заявлена в 70%, рассчитывается от "внутренней" ширины родителя, получаем
    500 * 0.7 = 350px

    У li вроде никаких отступов по умолчанию нет, поэтому это и будет ответом...
    Ответ написан
    Комментировать
  • Уменьшить размер видео?

    @cssfish
    Плохое знание основ - причина больших бед
    взять ffmpeg.exe и нагуглить пару команд для требуемого качества сжатия
    Ответ написан
    1 комментарий
  • Как копировать комментарии в Figma при дублировании страницы или файла?

    @cssfish
    Плохое знание основ - причина больших бед
    если верить данной странице помощи, то никак:

    If you duplicate a file, Figma won't copy comments to the new file. Comments are only kept on the original file.
    Ответ написан
    Комментировать
  • Можно ли сделать так, чтобы абсолютный элемент не вылазил за футер?

    @cssfish
    Плохое знание основ - причина больших бед
    даже закрытое меню сдвигает футер
    -конечно, visiblity ведь элемент никуда не девает из потока.

    если волнует дыра снизу то Overflow должно помочь.

    а если волнует что пункты меню не видно - тогда надо js делать, проверять что все входит. если нет, двигать куда-то, скролл внутрь ставить и тд
    Ответ написан
    Комментировать
  • Как сделать бесконечную бегущую ленту из изображения через @keyframes?

    @cssfish
    Плохое знание основ - причина больших бед
    чтобы при "уходе" картинки влево справа еще она вылезала, надо ее туда добавить :)
    т.е. внутрь .lenta надо не одну image поставить, а 2. чтобы они были в одну линию. И все ,анимацию делаем и закольцовываем
    пример - вверху справа
    Ответ написан
    1 комментарий
  • Как сверстать такие кнопки?

    @cssfish
    Плохое знание основ - причина больших бед
    пока нет времени сделать пример.

    но это можно сделать комбинацией clip-path (для угла) и border-radius (для скругления корректировочного). Это на самом блоке.

    А основное скругление (на обертке) через svg фильтр filter: url(#round);

    а сам фильтр в svg на страницу положить
    <defs>
    	<filter id="round">
    		<feGaussianBlur in="SourceGraphic" stdDeviation="2" result="blur"></feGaussianBlur>
    		<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 19 -9" result="goo"></feColorMatrix>
    		<feComposite in="SourceGraphic" in2="goo" operator="atop"></feComposite>
    	</filter>
    </defs>
    Ответ написан
    Комментировать
  • Откат в медии на 1 пиксель - костыль?

    @cssfish
    Плохое знание основ - причина больших бед
    По идее диапазоны пишут так, чтобы не было перекрытия, т.е. если брейкпоинт на 768, то выделяем 2 диапазона:
    1) 768+
    2) 0 - 767

    соответственно:
    @media screen and (min-width: 768px) {}
    @media screen and (max-width: 767px) {}


    Но тут есть нюанс, мы теряем пиксель между 767 и 768. В текущих реалиях, когда css и device pixels давно не равны, когда кругом все масштабируется ( и соответственно где-то внутри округляется) - все может быть. Поэтому дельту в пиксель уменьшают до 0.02px. Почему именно такая велична, сходу не нагуглю. Возможно , чисто эмпирическим путем выяснили что 0.01 не работает, например ))

    похожая тема на стеке


    upd:
    а, ну вот там и ответ:
    // Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
    // See https://bugs.webkit.org/show_bug.cgi?id=178261
    Ответ написан
    4 комментария
  • Как сделать чтобы текст рос вверх?

    @cssfish
    Плохое знание основ - причина больших бед
    если absolute, то прижимаем его к низу bottom- и он будет расти вверх.
    а если flex то flex-end
    Ответ написан
    Комментировать
  • Почему у меня в nextjs в css файлах не грузятся картинки?

    @cssfish
    Плохое знание основ - причина больших бед
    html и css лежат на одинаковом уровне вложенности? судя по одинаковым путям к картинке
    Ответ написан
  • Как нанести метки на картинку?

    @cssfish
    Плохое знание основ - причина больших бед
    1) делаем блок с фиксированным соотношением сторон (ratio), равным соотношению сторон картинки
    2) картинку внутрь, на 100% по ширине и высоте
    3) блоку relative
    4) метки делаем например как блоки с фоном. тоже с фикс соотношением сторон. Ширину прописываем как % от общего блока
    5) каждой дополнительно даем свое имя или модификатор. Расставляем как abs блоки, позиционируя через %
    6) соотв-но вешаем js который по клику выводим справа нужный текст (сравнивая с именем/модом/дата-атрибутом данного флажка)

    если все это неясно то проще заказать разработку
    размер устройства в дюймах тут вообще не важен
    Ответ написан
    Комментировать