Ответы пользователя по тегу HTML
  • Использовать али нет единицы REM в CSS, как правильно использовать (три вопроса)?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    По вопросам:
    1) Однозначно вариант 2.
    2) Это всего лишь мнение. Не бывает серебрянных пуль. Бегло пробежался глазами по статье, в основном увидел ругания em, про rem ничего путнего не нашел, только упоминание ie8 и создание нового уровня абстракции.
    3) Выглядит как какой-то жуткий костыль и извращение, я бы прошел мимо такого.
    Ответ написан
    Комментировать
  • Как сделать смену текста на лендинге по таймеру?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    2 варианта, придуманных за полминуты:
    1) Если слоганы не будут менять/добавлять (или будут делать это очень редко) и не нужна будет смена слоганов по клику юзера, то создаешь блоки со слоганами в html, ставишь их в одном месте через position: absolute (например внутри основного контейнера слоганов) и затем пилишь keyframes анимации на css, которые циклично будут показывать/прятать нужные блоки изменяя opacity и прочие штуки, типа трансформов.
    2) Если слоганы надо подгружать с бэкенда где их будут часто менять/добавлять, то так же запихиваешь их в разметку, добавляя первому элементу со старта класс active, затем на js через $(".text-block").length получаешь их количество, создаешь переменную инкременту и setInterval. Внутри интервала с нужным тебе шагом увеличиваешь инкременту, и к нужному блоку добавляешь класс active, убирая его же с других блоков. То есть что-то такое в итоге:
    var len = $(".text-block").length;
    var intervalCounter = 1;
    setInterval(function() {
      intervalCounter++;
      if (intervalCounter > len) intervalCounter = 1;
      $(".text-block").removeClass("active");
      $(".text-block").eq(intervalCounter - 1).addClass("active");
    }, 5000);

    Если потребуется реализация смены слоганов при клике юзера, то заменяешь интервал на setTimeout, который вызывает сам себя, а на click биндишь очистку таймаута, изменение инкременты, смену классов и запуск таймаута. Часть этого кода тогда лучше будет обернуть в отдельную функцию.
    Анимации соответственно будут реализованы с помощью css transition, и будут срабатывать при добавлении/убирании класса.
    Ответ написан
    Комментировать
  • Как отменить прокрутку страницы наверх при клике по пустой ссылке?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Это напрямую связано с тем, что ваши радио кнопки имеют такие стили:
    input[type="radio"] {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    При клике на них, браузер пытается перевести окно к их положению.
    Задайте им примерно такие стили:
    .hidden-radio {
      position: absolute;
      left: 0;
      top: 0;
      opacity: 0;
      z-index: -9999;
    }

    Опасити спрячет кнопку визуально, отрицательный z-index сделает их некликабельными/неактивными для hover'а.
    Ответ написан
    1 комментарий
  • Как сделать эффект нажатия частей картинки?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вариант номер 1 - найти какое-нибудь полуготовое решение для работы с такими вещами. Думаю что на d3js.org такое уже сто раз решали, и есть какие-то готовые плагины.
    Вариант номер 2 - по идее, если такую карту нарисовать в каком-нибудь Иллюстраторе, то там же можно будет её экспортировать в виде svg. После этого лишь надо будет "подчистить" этот свг и затем для областей (отдельные path элементы) добавлять класс через js, который будет их как то перекрашивать и делать прочую нужную вам магию (с возможностью использования transition и так далее).
    Ответ написан
    Комментировать
  • Как разрабатывать при помощи bem-core и bem-tools?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Как по мне, дак для личного проекта или проекта где вы единственный фронтендер, юзать интструменты для БЭМА это извращение. Просто пишите классы по методологии, адаптировав её немного под себя, и не издевайтесь над собой.
    Ответ написан
    Комментировать
  • Как сделать эти стрелки?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Svg Path Q(или C). +можно будет анимировать их отрисвку без проблем.
    Ответ написан
    1 комментарий
  • Как реализовать 3D изображения на сайте?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Что конкретно вы подразумеваете под 3D изображением? Если речь идет о какой-нибудь полноценной 3D модели, то вам нужен WebGL (либо архимаги 2D канваса или 3D-css без поддержки IE). Если же речь идет о чем то плоском, что нужно вращать в 3d, то можно на css+js сделать.
    Ответ написан
    1 комментарий
  • Как реализовать смену класса по передвижению курсора вниз с зажатой кнопки мыши?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Код примерно будет выглядеть вот так (работает сразу для мыши и тача):
    $(document).on("mousedown touchstart", ".%класс_области_активности_ивентов%", function(e) {
      // если необходимо, сохраняем стартовую позицию ивента
      var startY =  e.pageY || e.originalEvent.touches[0].pageY;
    
      $(document).on("mousemove touchmove", function(e) {
        // получаем Y координаты во время движения с зажатой мышью/тачем
        var y = e.pageY || e.originalEvent.touches[0].pageY;
        // ваши действия со всей этой фигней
      });
    
    });
    
    $(document).on("mouseup touchend", function() {
      // отключаем обработчики маусмува/тачмува
      $(document).off("mousemove touchmove");
      // действия, которые вы возможно хотите сделать по окончании действий юзера
    });
    Ответ написан
    1 комментарий
  • Обязательно ли быть верстальщиком, чтобы устроиться на работу Junior Frontend'ером?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Верстка и фронтенд это как бы неразделимые вещи. Просто при запиливании каких-нибудь SPA приложений можно обойтись css фреймворком и почти все время уделять js-коду, но от верстки макетов вам никуда не уйти, если речь идет о чем то нормальном.
    Тоже ненавидел psd>html раньше, но обожал обычную верстку (запиливать демки на кодпене так сказать "из головы" или по картинке). Сейчас без проблем и агонии верстаю из psd, как оказалось я просто не умел адекватно пользоваться фотошопом (да и щас конечно не мастер) и мне не особо хотелось этому учиться. Сейчас на руки попадают макеты от хороших дизайнеров, где все удобно и качественно сделано + я адекватно использую инструменты фш = верстка идет отлично. Конечно этот процесс все равно намного более медлителен и приятен, чем запиливание демок, но за это хотя бы платят отличные деньги :)
    Ответ написан
    1 комментарий
  • Как сверстать дерево комментариев?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    За пример для подражания я бы взял https://disqus.com (там прямо на главной есть страницы, на которых комменты дискаса внизу).
    Смотрите как что сделано у них.
    По поводу большой вложенности - у всех нормальных систем комментариев есть определенный лимит на вложенность, у дискаса лимит вроде как равен 4, после чего комментарии этой ветки начинают идти ровно один под другим.
    Ответ написан
    Комментировать
  • Можно ли использовать единицы измерения rem (root em) вообще для всего в CSS?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Делаю вот так:
    html, body {
      font-size: 62.5%; // 1rem = 10px и никакой попаболи как с EM
    }

    И верстаю все только в rem уже более полугода (за исключение тонких бордеров в 2-3px и подобных микро-вещей, которые при снижении font-size для html, body могут выдавать становиться тоньше, чем надо).
    Главная фишка - возможность скейлить всю верстку под разные разрешения. Хочется сделать все на 25% больше для мониторов шире 1600px? Просто пишешь:
    html, body {
      @media (min-width: 1600px) {
        font-size: 78.125%;
      }
    }

    И вся верстка магическим образом идеально скейлится. Тоже самое касается и понижения, очень удобно в адаптивной верстке.
    Недостатки у rem есть, но они безобидные для нормальных людей - ie9+ и баг с небольшой неточностью приема 62.5% в каких-то версиях ie (вроде как в 10), что в общем то не заслуживает внимания.
    Ответ написан
    4 комментария
  • Как задать анимацию блоку?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    codepen.io/suez/pen/dcbdd6e94968897628766796c3956fa6
    Первый блок со старта имеет размеры 600х300, но невидим, ибо уменьшен с помощью transform: scale(0);
    Этот метод работает быстро и он никак не будет задевать рядом стоящие элементы (они со старта будут расположены так, как будто рядом с ними стоит блок 600х300), то есть минимум нагрузки при анимации. Но из-за этого вы получите sub-pixel rendering неточность, и границы будут чуточку размытыми. Так же важно уточнить, что я использую transform-origin: 0 0; для того чтобы анимация увеличения происходила с левого верхнего угла. Если этот параметр убрать, то увеличение будет происходить относительно центра.
    Второй блок имеет на старте ширину/высоту по нулям и при наведении на картинку происходит транзишен этих параметров до заданных величин. Соответственно этот процесс будет задевать все элементы в своем потоке + транзишен размеров само по себе затратное затратное действие и если внутри будет текст, то во время анимации с ним будут происходить страшные вещи.
    Ответ написан
    Комментировать
  • Как быстро войти в технологический пик html5 верстки?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вариант с обучением через верстку .psd макетов вас до "пика" не доведет. Максимум до уровня рядового "верстальщика". Сверстать статику может каждый второй, кто хоть иногда этим занимается. Если вы нацелены на реальный "пик", то вам надо учиться на основе живых примеров уровня www.awwwards.com www.cssdesignawards.com и www.thefwa.com
    Копайтесь, смотрите что как сделано, пытайтесь сами воссоздавать отдельные куски "не смотря под капот" (то есть только на основе того, что вы видите, не залезая в F12). Но перед этим вам надо будет нагнать основы, то есть все что связано с css трансформами, нестандартными лэйаутами и другими трендами дизайна, а то иначе когнетивный диссонанс вам обеспечен. После этого будете долго практиковать анимации, свг, 2d-canvas и в самом конце возможно даже WebGL. Обязателен к употреблению codepen.io
    Ну а если прочитав все это вы вдруг поняли, что вас на самом деле не интересуют всякие нестандартные промо-сайты, а вам просто надо уметь верстать странички для стандартных интернет-магазинов или еще чего подобного, то вам достаточно будет потратить 1-2 месяца на чтение вводных статей и начать штамповать сайты на бутстрапе. Вот.
    Ответ написан
    3 комментария
  • Какие ресурсы (желательно на русском) можно использовать для изучения применения svg в веб-разработке?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    По собственному опыту скажу, что с русскими ресурсами по свг все плохо. Знаю что Yoksel иногда пишет про свг вот тут (css.yoksel.ru) и знаю такую вот вводную.
    По англоязычным источникам:
    1) Сборная солянка №1
    2) Сборная солянка №2
    3) tutorials.jenkov.com/svg/index.html - много раз выручал этот сайт. Правда попадал я на него обычно с гугла, полностью все не читал.
    4) sarasoueidan.com/articles/index.html - ищите по SVG. Есть очень много отличнейших статей, прям эталон.
    5) Статьи на https://css-tricks.com/
    6) Конечно же великий tympanus.net/codrops
    7) Ну и самое самое важное - постоянно пилить демки и смотреть как пилят другие. Чекайте awwwards и подобные сайты, просматривайте codepen. На правах саморекламы - codepen.io/suez/tag/svg (изучаю свг третий месяц, полет нормальный).
    Ответ написан
    Комментировать
  • Как сделать тень у div четырехугольника?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если вы хотите использовать нестандартные формы, да еще и при этом делать для них правильные тени, то вам поможет только svg. Я не уверен насчет того, можно ли это реализовать с помощью какого-нибудь svg-mask, но вот для отдельного svg элемента тень делается легко.
    Так что в вашем случае это скорее всего выглядит как явный оверкилл, и эту самую тень лучше симулировать с помощью :before допустим.
    На случай если вам интересна тема с свг, я вот даже недавно делал демку с динамической тенью для svg (треугольник по центру) - codepen.io/suez/pen/GgGMGo
    *Примечание для комментаторов оригинального сообщения: нет, box-shadow не поможет для элемента, со скошенными углами, сделанными с помощью border. Тень будет рендерится прямоугольной, относительно width/height объекта.
    Ответ написан
    8 комментариев
  • Как решить проблему с SVG?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    По ходу нашел решение на основе этого stackoverflow.com/questions/19076655/svg-sprite-ba...
    В общем в background-size: необходимо указывать не только x но и y величину. На основе того, что у вашего оригинального svg спрайта (gamma.antikvarus.ru/themes/frontend_v2/images/svg/...) значения 960/560 (основываясь на viewBox), а на сайте у вас background-size: 424px; то в итоге получил такое значение
    background-size: 424px 247px;
    Как только его поставил, позиция svg стала одинаковой в хроме и фф, а если точнее, то стала как в ff, то есть смещенная вверх.
    Тестировал на основе иконки логина (Вход), у которой по умолчанию было background-position: -65px -28px;
    Вот так с измененными значениями (-22px вместо -28) выглядит в хроме
    XXAwS7e.png
    а так в FF
    IwmW7BX.png

    Так что просто добавляете y значение для background-size и увеличиваете y значение background-position на 6px.
    Ответ написан
    2 комментария
  • Есть ли библиотеки для организации интерактивных подсказок в интерфейсе?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    bootstraptour.com
    usablica.github.io/intro.js - с оврелеем.
    + на каком-то сайте видел тур как во втором примере, но с красивыми и реалистичными кривыми стрелочками на канвасе. Но боюсь что там было свое решение.
    Ответ написан
    Комментировать
  • Как сделать движущиеся полоски на заднем фоне?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Сделано это с помощью canvas'а, размещенного по центру. js у них минифицированный, так что вам самим все придется писать. А уж как это написать, ну это уже совсем другая история, и тут вам вряд кто-то будет такое кодить :)
    Ответ написан
    Комментировать
  • Vh - px. Как правильнее реализовать?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) calc про который вы уже написали сами
    2) Js (так себе вариант)
    3) Использовать padding-top: 120px для header, а nav поместить вверху с position: absolute. Внутри header создать блок с height: 100%, он в свою очередь благодаря паддингу родительского элемента займет все оставшееся пространство, вычитая паддинг. И там уже делайте что-хотите.
    Естественно у header должен быть position: relative и для элементов должен быть задан box-sizing: border-box;
    Ответ написан
    6 комментариев
  • Как вы делаете адаптивные SVG элементы?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Адаптивными svg элементы делаются с помощью атрибутов viewBox и preserveAspectRatio.
    Выбираете какой-нибудь удобное вам разрешение, например 1600*1080, хардкодите внутри этого svg элементы polygon с координатами, чтобы все получилось как надо. Потом собственно ставите viewBox="0 0 1600 1080" и ваш svg элемент начинает адекватно тянуться под любые разрешения.
    После этого выставляете второй аттрибут, допустим в значение preserveAspectRatio="xMidYMid slice" (другие варианты сами изучите). Он будет отвечать за то, чтобы ваш свг смотрелся нормально при нестандартных разрешениях, на квадратных мониторах и прочих странных моментах.
    Захардкодить координаты двух простых полигонов - элементарное дело. Я вообще от безделья сложные арки и дуги хардкожу, так сказать увлекаюсь "рисованием циферками", ибо боженька не одарил меня навыками обычного рисования :)
    Ответ написан
    Комментировать