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

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Ну потому что css транзишены не работают с градиентами. Самый простой трюк - создаете псевдоэлемент :before/:after с фоном и его показываете через изменение opacity от 0 до 1 (таким же способом например "анимируют" переход от одного градиента к другому).
    Ответ написан
    Комментировать
  • Как писать грамотный css код?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    >не могу ни добавлять классы, ни менять их названия в html
    >должен поддерживать работу ie8
    >дизайн сайтов делается без дизайнера
    >не могу использовать js

    Как там в аду, неплохо живется?
    Тут работу другую искать надо, а не деградировать в болоте, издеваясь на собой. Грамотный css невозможен без контроля над html и без адекватного дизайна (и общения с дизайнером, если речь идет о чем то сложнее говнолендинга). Ну а ие8 это вообще все равно что гроб засыпать не землей а говном. Я ие11 уже полгода+ не открывал и Edge чекаю "по желанию".
    Ответ написан
    Комментировать
  • Нюансы верстки email-письма?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если требуется во всех почтовых клиентах (допустим Outlook 2011+), то офк онли таблички с инлайн стилями. Респонсив поддерживается адекватно только в эпл почте + имеется гибридный подход для gmail, но он геморойный.
    Вообще норм люди делают подобные вещи с помощью вот таких штук foundation.zurb.com/emails.html
    Руками только наркоманы все верстают, ибо повесится можно.
    Ответ написан
    3 комментария
  • Зачем нужна концепция mobile first?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Mobile First хорош для контент-ориентированных сайтов. Блоги, интернет-магазины, всякие там соц-сети/форумы и новостные сайты. В общем для всех тех сайтов, на которые юзер будет заходить более 1 раза в своей жизни с телефона. Делать вообще все сайты в режиме mobile first - полный бред. Если у вас на руках проект для разработки промо-сайта со свистелками и перделками на канвасе/webGL, свг анимациями то вам необходимо будет сосредоточить все свои силы на этих тяжеловесных вещах для десктопа, и потом при понижении до планшета/телефона выпиливать все эти монструозные вещи без особых сожалений.

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

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Куча свг, анимация которых привязана к текущему "прогрессу" (скроллу страницы). Такое например можно замутить с помощью GSAP Timeline, создаете таймлайн, запихиваете вагон всех возможных анимаций, грамотно расставленных на определенных этапах и потом меняете прогресс таймлайна относительно отношения позиции скролла к общей высоте скролла.

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

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    А чего тут непонятного? Кликнули, ненужные блоки разлетелись по сторонам, у нужного увеличилась ширина, чтобы он стал фуллскрин. Внутри лежит картинка которая автоматом растянута на большую ширину. Ну и всякие там движения туда сюда. В целом эффект раскрытия в этом слайдере выглядит довольно таки некрасиво и топорно, слишком резкий прыжок слайда с последующим отскакиванием, халтурная работа.

    Я почти 2 недели назад сделал такую демку - codepen.io/suez/pen/AXQaEg, тут все намного плавнее и красивее, да еще и все реализовано с помощью css, js лишь 2 класса добавляет, но у меня правда отсутствует функционал слайдера, ибо концепт другой. Но можете изучить css чтобы понять как это дело работает.
    Ответ написан
    1 комментарий
  • От чего зависит плавность работы анимации на сайте?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вам необходимость использовать Timeline в Chrome DevTools для профилирования производительности анимаций и не только.

    Хотите знать основы оптимизации рендеринга - вам сюда https://www.udacity.com/course/browser-rendering-o...

    Причин плохой оптимизации может быть вагон и маленькая тележка. У вас там могут огромные элементы анимироваться с помощью top/left вместо transform: translate, у вас при каждом скролле может идти repaint огромных картинок, забирая по 60-100мс на каждый шаг и так далее. Скорее всего причины крайне простые и связаны с использованием древних и убогих методик для анимаций, аля jQuery.animate (который до 3й версии юзает setTimeout вместо requestAnimationFrame под капотом).
    Ответ написан
    Комментировать
  • Какой выбрать фреймворк для сложных веб-анимаций (с примером)?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Варианта 2 почти всегда:
    1) Greensock (GSAP). Самая крутая либа для анимаций, умеет наверное все, кроме разве что канваса/webgl (для этого обычно уже юзают threejs или ручками что-то пишут).
    2) Bodymovin. На второй гифке например последовательная анимация, не требующая интеракций от юзера, но содержащая при этом множество деталей и микродвижений. Пилить такое руками - ОЧЕНЬ много часов (разница между похожим прототипом и прототипом на 90% схожим с гифком - колоссальная). В то время как с bodymovin вы просто экспортируете всю анимацию из after effects и запустите ее на клиенте. Есть конечно же свои плохие стороны, отсутствие гибкости и весьма немалое количество кода, экспортируемого из AE, но обычно в таких ситуациях других способов не бывает.
    Ответ написан
    Комментировать
  • Можно ли сделать такую кнопку на CSS?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Ответ написан
    Комментировать
  • Как оптимизировать последовательность свойств в классе css?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Я делаю так:
    1) Z-index
    2) Display (flex и так далее)
    3) Позиционированние (position: absolute; left: 50%; top: 50%;)
    4) Padding
    5) Margin
    6) Border&border-radius
    7) Background/box-shadow и подобные свойства
    8) Шрифты/цвет и подобные вещи относящиеся к тексту
    9) Composite Layer Stuff (perspective/transforms/opacity и так далее)
    10) Cursor: pointer;
    Ответ написан
    Комментировать
  • Как разобраться с позиционирование элементов со свойством transform-style: preserve-3d в Mozille?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    К сожалению никак. Баг старый, и его по виду вообще фиксить не пытаются даже.
    Вот мой вопрос на SO из февраля прошлого года - stackoverflow.com/questions/28751990/firefox-bug-w...
    Сам спросил, сам кое-как хакнул (в комментах пояснил + в ласт комменте ссылка на демку, там вроде тоже комментарии оставлены).
    Я уже делал много демок с 3д трансформациями и множественным вложением элементов с transform-style: preserve-3d и каждый раз наступал на одни и те же грабли. Вот еще демка, в которой хакнуть не получилось, в итоге в фф все сломанное - codepen.io/suez/pen/WvaKpy А потом люди продолжают говорить что фф это хороший браузер для веб-разработчиков, что вызывает у меня больной смех.

    Что касается вашей конкретной ситуации, то вам надо просто избегать нестинга элементов и разделять их по своим отдельным контейнерам с перспективой и так далее. То есть вам нет смысла держать 3 блока в 1 контейнере, просто сделайте 3 контейнера, задайте нужные z-index, а внутри каждого сделайте 3д-эффекта и они по идее не будут друг с другом пересекаться. Вообще с трансформами, z-index и сочетанием прочих свойств часто имеются проблемы, самый простой способ фиксинга это увеличение количества враппер-контейнеров. Лень вдаваться в детали, просто поверьте наслово, у меня большой опыт страданий в этой области :)
    Ответ написан
    2 комментария
  • Как оценивать вёрстку?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Оценивать надо исходя из вашего желаемого часового рейта. И все.
    Ко мне если обратяться с просьбой сделать что-то простое, что требует N часов работы, то я и скажу им что это будет стоить N * hour-rate. При этом я естественно предупрежу людей, что обращаться ко мне с созданием чего-то простого нецелесообразно, ибо огромное количество более низкоспециализированных людей сможет это сделать за N * hour-rate/5 (или /10).
    Все остальные критерии не имеют никакого значения. Сложно это или нет. Это рыночные отношения, где все крутится вокруг спроса и предложения.
    Ответ написан
    4 комментария
  • Как вот так анимировать иконки, что используется для этого?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вариант с гиф это совсем уж извращение.
    1 вариант по идее можно сделать с помощью svg gooey фильтра (комбинация блюра с контрастом, которая дает эффект перетекания).
    Но чаще всего такое делают либо с помощью спрайтов (устаревший, но простой вариант), либо с помощью bodymovin (js плагин для After Effect, вы экспортите анимацию из AE и юзаете в нем).
    Ну и конечно есть вариант такое руками с помощью SVG запилить, но это крайне нерациональный подход на фоне того что я описал выше.
    Ответ написан
    Комментировать
  • Как сделать блок (адаптивную шапку) с косым нижним краем?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) Серый css-треугольник с помощью :after.
    2) Css clip-path (не пашет в ие и ФФ)
    3) Svg clip-path (слегка геморройно и не очень легко сделать идеально растягиваемым под все разрешения с сохранением пропорций).
    4) Еще есть варианты с псевдоэлементами и трансформами (skew/rotate и так далее), с помощью которых можно юзать не только монотонный бэкграунд, но и картинки. На тостере уже миллион раз подобные вопросы были.
    Ответ написан
  • Что думаете насчет квадратных скобок в атрибуте class?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Мешанина из классов в html - расстрелять. Надо юзать миксины/экстенды, а в хтмл держать БЕМ классы и некоторые клювые лэйаут классы иногда.
    Ответ написан
  • Как сделать сгибающие блоки при наведении, как здесь http://waaark.com/?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    У них это сделано на канвасе. То есть 3 бэкграунда для блока просто фоном сделаны канвасом, который реагирует на движения мышью. Есть конечно вариант сделать такое на свг, но там могут быть проблемы с адаптивностью и сохранением адекватного aspect ratio (даже со спец атрибутами viewBox и preserveAspectRatio можно будет помучаться).
    У меня имеется несколько демок с похожим эффектом (на свг):
    codepen.io/suez/pen/emjwvP - вот тут простой drag effect, который просто меняет одну координату арки.
    codepen.io/suez/pen/epgZjK - вот тут более продвинутый пример, где я уже юзаю Cubic Bezier Curve, а не арку или квадратичную Безье.
    У меня варианты на rAF велосипедах, с гсапом это все дело должно быть явно проще.
    Ответ написан
    Комментировать
  • CSS vs JS - Какой код работает быстрее?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если речь идет о столь примитивном сайте, то без разницы.
    Ответ написан
    Комментировать
  • Почему не срабатывает transition на градиенте?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Градиент транзишеном менять нельзя. Но можно сделать 2 блока конкретно для бэкграундов (или например через :before/:after) и менять у них прозрачность.
    Ответ написан
    Комментировать
  • Как сделать резиновый отступ у дива?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    % для марджинов и паддингов берутся от ширины элемента, даже если речь идет о margin-top/padding-bot и так далее.
    Ответ написан
    Комментировать
  • Как бы Вы сверстали вот такой блок?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Бордер топ и лефт для блока
    :before:after для линий снизу и справа.
    Ну или еще миллион вариантов.
    Ответ написан
    Комментировать