• Можно ли одновременно использовать flexbox и grid на одной странице?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Можно и нужно. Grid создали не для того, чтобы заменить Flex. Это 2 разных метода построения лейаута, если грубо:

    - Grid = 2D (расположение элементов по 2м осям одновременно, по горизонтали и по вертикали)
    - Flex = 1D (расположение элементов только по 1й оси, горизонтали или вертикали)

    Еще грубее - flex хорош для "инлайна", выравнивая элементов в одной строке или колонке, как правило это конкретно контент-элементы, а grid - хорош для контейнеров и более общих элементов (карточек и тд). То есть, гридом задали общую структуру и лейаут, флексами внутри блоков расставили контент-элементы.
    Ответ написан
    2 комментария
  • Используем google fonts?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Или где-то какая-нибудь подлость всё же всплывёт?

    Роскомнадзор может заблокировать адреса, с которых гугл раздает шрифты. И будет печалька.
    Ответ написан
    1 комментарий
  • Как изменять положение элемента content в ::before?

    UnluckySerivelha
    @UnluckySerivelha
    position: relative элементу, которому задаёшь before/after, position:absolute и top: 5px left: 0px для псевдоэлемента, ещё родителю можно левый паддинг, размером с иконку + отступ
    Ответ написан
    1 комментарий
  • Путь начинающего веб-разработчика, как быть и куда двигаться?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    1) Такой вопрос на тостере раз в пару недель, тру программист должен уметь гуглить
    2)
    в планах познакомиться в дальнейшем с angular, node, react, python
    звучит как "в планах научиться водить машину, готовить плов, выстраивать архитектуру БД и завести собаку". Определитесь, что вы хотите? Бэкенд или Фронтенд? Или, хотя бы, с чего вы хотите начать?
    3) Вам же в курсе дают php и js, пускай и базово. Углубляйтесь в них. Это не на один месяц/год задачка.
    4)
    какие инструменты для каких языков лучше использовать
    - так сначала языки выучить надо)) Их же просто тонна. Про какие инструменты вообще речь? Инструменты, как и языки, подбираются под конкретную цель

    Вы сначала определитесь, с чем именно хотите работать (бэк/фронт/верстальщик/...), от этого выбирайте язык и инструменты.

    Конкретно для вашего нынешнего стэка, ИМХО, следующий этап - сборщики (Gulp, Webpack) + babel + разного рода минификаторы, автопрефиксеры, ...
    Ответ написан
    7 комментариев
  • Верстка с нуля: какие основные этапы работы?

    pavelkarinin
    @pavelkarinin Автор вопроса
    Full Stack Web Developer
    На этот вопрос есть подписчики, не ожидал, что столько, но это говорит о том, что вопрос интересен и это хорошо. Поэтому хоть и я его автор, но отвечу тоже. Я, как человек, который пережил эпохи Mosaic, Netscape и IE (старички меня поймут), отвечу ещё и по той причине, что часто, нет … очень часто сталкиваюсь с тем, что действительно "талантливые" начинающие Front-End тратят попусту свое время, из-за незнания такого, казалось бы, вопроса ни о чем (как выразился Froggyweb) об организации своего workflow и начинают не с того, с чего стоило бы начинать в результате это приводит к тому, что некоторая работа просто дублируется, переделывается и т.д. лишь потому, что изначально об этом не подумал.

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

    Я работаю на трёх мониторах: центральный - вёрстка, левый - результат, правый - дизайнерский макет + чего ещё что надо по ходу пьесы, типа киношки, статейки и т.д.;

    Среда:
    в Visual Studio - для сложных и крупных проектов, плотно подсевших на Back-End;
    в Visual Studio Code - для проектов попроще;
    хе-хе в Блокноте - для совсем простых))

    Музыка – это святое, тем более я её тоже иногда пишу, но слушаю всегда чужую на SoundCloud))

    Создаю папку решения

    Создаю в ней подпапку всегда с одним и тем же имеем: _native_design, в которую (в зависимости от формата портирую дизайн)

    Выбираю явственно общие компоненты страниц (шапка, контент, меню, боковые меню, подвал и д.р.) и для каждого создаю простой пустой файл scss с названием, соответствующим компоненту.

    На этих компонентах выбираю неизменяемые и изменяемые элементы и определяю для них селекторы в соответствующих файлах scss (тут всегда туго с названиями, поскольку от природы я не очень одарён)

    Часто встречающиеся типовые элементы также удостаиваются собственного каскада, выделенного в отдельный файлик)) для записи в него миксинов и т.п.

    Исходя из сетки, и из минимально необходимой версии браузеров (речь конечно же об IE), создаю файл _base.scss который наполняю сбросом стиля, и объявлениями для grid (ну все это не вручную, а сниппетами, импортами, инклудами, которые у меня подготовлены почти на все случаи жизни).

    Стараюсь придерживаться отлично зарекомендовавшего себя принципа "one base", который подразумевает единую основу для всего макета, т.е. есть одни базовый каркас (основа), и эта основа является местом для навешивания на неё всего необходимого. Часто вижу ошибки в этом плане, когда доходит до того, что ради одно "нестандартного" компонента страницы, встречающегося НЕ на каждой странице, используется отдельный (и не один) базовый стиль (по сути, файл), в котором 90% каскада продублировано с другим и т.п.

    После такой подготовительной работы начинается HTML, и когда он готов, перехожу к непосредственно блокам в каскад, разумеется, в постоянном контакте с HTML – это самый долгий этап во всей работе, я думаю все это прекрасно понимают.

    Шрифты, тоже достойны внимания, т.к. не все дизайнеры знают, что это такое с точки зрения Web, и используют их не по назначению (такое бывает), что требует согласования.

    Потом начинается работа с адаптивностью. Я всегда сворачиваю контент, т.е. начинаю с широкого формата, потом desktop, tablet, mobile. Тут ничего сложного нет, особенно когда есть сетка, исходя из того насколько много компонентов плотно зависят от размеров, выбираю как прописывать медиа-запросы, т.е. либо запрос внутри селекторов блоков, либо селекторы внутри запроса. Как правило, используется 4-6 точек + по две на каждую основную точку, т.е. на 1px больше и на 1px меньше, но не всегда, зависит от макета. Не забываем про DPI.

    Потом начинается работа с картинками. Ее я выношу отдельным этапом из-за умений или неумений дизайнера. Поскольку графика не всегда векторная там, где она таковой желательно должна быть, не всегда сразу это обнаруживаешь, тогда начинаешь трясти дизайнера, чтоб доводил до ума. Тут я думаю особо вопросов быть не должно. Оптимизация растра, оптимизация вектора и т.п.

    Потом начинается JS, т.е. наполнение интерактивом уже не средствами CSS, а именно скриптовым.

    Потом начинаем крутить-вертеть макет везде, где-только можно, исходя из требований клиента о поддержке минимальной версии браузеров. Тут сложностей особо не бывает, так как с браузерами в плане поддержки стандартов уже полегче, и юзеры стали обновлять чаще свои браузеры. Так или иначе изначально верстаешь с оглядкой на тут самую минимальную версию. Хотя бывают еще запросы на поддержку IE7, особенно часто от клиентов из средней Азии.

    Короче, как-то так… ради ответа, открыл Word и накатал этот текст. Уверен, что что-то пропустил, о чем-то не сказал, но не судите строго))

    UPD:
    Забыл сказать: про измерения скорости загрузки и скорости отрисовки. Этому стоит уделять внимание особенно в макетах со сложной композицией! Следует помнить о том, что перед отрисовкой браузеры проводят серьезный анализ DOM и каскада стилей, есть способы оптимизировать эти моменты, это важно для мобильных устройств, если у сайта нет для них отдельной версии. Это же касается и JS в части вашего ручного кода.

    UPD2:
    Ребят, я Skype указывал не для того, что вы присылали мне на него вопросы. Есть уточнения, пишем сюда или создаем новый вопрос на Тостере. Спасибо за понимание.
    Ответ написан
    4 комментария
  • Верстка с нуля: какие основные этапы работы?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    1) Определение инструментов, их настройка
    2) Выделение общих/переиспользуемых компонентов
    3) Самое сложное - придумывание названий
    4) Вёрстка
    Ответ написан
    1 комментарий
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Как сделать скролл через(сквозь) псевдоэлемент?

    @holfza
    .class:after {
        pointer-events: none;
    }
    Ответ написан
    Комментировать
  • Как правильно переписать scss?

    qork
    @qork
    { background: #F00B42 }
    .test{
      $root: &;
      &:hover{
        #{$root}__title,
        #{$root}__name{
          color: red;
        }
      }
    }
    Ответ написан
    1 комментарий
  • Как правильно переписать scss?

    .test {
      &:hover &__title { 
            
      }
      &:hover &__name{ 
            
      }
    }


    Либо (но это не удобный вариант):
    .test {
      &:hover { 
            .test__title{}
            .test__name{}
      }
    }


    UPD: А если поискать на стековерфлоу, то можно узнать как все-таки это делается: https://stackoverflow.com/questions/34021910/bem-w...

    UPD: Сам для себя, да и для вас выбрал самый нормальный вариант реализации:

    .test { 
    
        &__name {
            color: red;
        }
    
        &:hover & {
            &__name  {
                color: green;
            }   
        }
    }


    Важно не забывать про амперсанд после :hover, тогда можно будет писать в "привычном" для вас виде.
    Ответ написан
    2 комментария
  • Как удаленно работать в команде с дизайнером?

    lambesis
    @lambesis
    Слабоумие и отвага!
    Там в комментарии писали, мол зачем вообще дизайнеру и верстальщику прямая связь - не слушайте. Сколько дедлайнов было просрочено, сколько фич нереализовано или реализовано не так, сколько идей было потеряно, и т.д. из-за того что в какой-то момент дизайнер с кодером не пообщались.
    Работаем на удаленке, и регулярно с дизайнером попадаем в глупые ситуации из-за того что друг друга не поняли, или что-то не обсудили.
    У вас правильный подход к делу, придерживайтесь его дальше.
    Рассинхрон во времени тут не столь важен, главное не стесняйтесь обговаривать с дизайнером самые глупые вопросы, уточнять размытые детали, и не додумывать за других.
    Рекомендую сервис invision - крайне удобная штука. На лету можно обсудить макеты, прокомментировать как нажимается кнопочка, выгрузить картинки в один клик и т д. Для кодеров есть шикарный просмотрщик макетов, полностью заменит фотошоп, и даже больше. И к тоски же в этом режиме нельзя похерить макет) в итоге все счастливы: дизайнер что-то изменил в макете, нажал кнопку в фш/скетче, и макет автоматом улетел в облако, и отправил уведомляху. Кодер увидел обнову, и побежал радостно тыкать и шуршать по макету, не боясь что-то поломать (и в последствии неправильно сверстать).
    А кще там можно анимашками показать какие элементы с чем взаимодействуют. Годнота! И есть бесплатный тариф)
    Ответ написан
    1 комментарий
  • Как сверстать такую кнопку?

    @rusglov
    Можно через псевдокласс иконку
    Ответ написан
    Комментировать