Тёмный

Шапка на гридах и флексах с гэпами и БЭМ 

Вадим Макеев
Подписаться 40 тыс.
Просмотров 21 тыс.
50% 1

00:00 Интро
00:27 Разметка и стили шапки
04:31 Раскладка шапки на гридах
06:02 Раскладка поля поиска
11:53 Отступы между блоками
15:57 Вёрстка примеров поиска
21:04 Отступы между кнопками
26:11 Выводы и предыстория
Нравится? Становитесь патронами - / pepelsbey
Демо - pepelsbey.github.io/playgroun...
Код - github.com/pepelsbey/playgrou...
Миксы в БЭМе - ru.bem.info/methodology/css/#...
Свойство gap в спецификации - drafts.csswg.org/css-align-3/...
* * *
Камера: Blackmagic Pocket Cinema 4K
Объектив: Panasonic 15 мм, f/1,7
Микрофон: Audio-Technica AT4053b
Свет: Aputure Light Storm 120d II + Light Dome
Софт: DaVinci Resolve, iZotope RX

Опубликовано:

 

8 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 199   
@pepelsbey
@pepelsbey 4 года назад
00:27 Разметка и стили шапки 04:31 Раскладка шапки на гридах 06:02 Раскладка поля поиска 11:53 Отступы между блоками 15:57 Вёрстка примеров поиска 21:04 Отступы между кнопками 26:11 Выводы и предыстория
@JoKer-it3mf
@JoKer-it3mf 4 года назад
Здравствуйте Вадим! Восхищен вашей подачей! Недавно наткнулся на такие вещи как "Elm, ClojureScript, ReasonML". Могли бы вы поделиться своим мнением по поводу этих технологий? Благодарю!
@pepelsbey
@pepelsbey 4 года назад
Скажу сразу, я не программист. То есть я умеют что-то делать на JS, но мне интерфейсы ближе, чем алгоритмы. Так что вопрос не ко мне - я знаю, что это такое, но не мне что-то вам советовать.
@interceptorlt1268
@interceptorlt1268 4 года назад
​@@pepelsbey о, мне тоже больше по душе интерфейсы, чем js, но так то в реакты/ангуляры, простихоспади, php это я умею, но не хочу. И тут возникает проблема, что чисто разработчики интерфейсов (в простонародье верстальщики) особо никому не нужны, всем подавай js'серов. А то, что условный js'сер не умеет в фиксание визуальных багов на ios под её uiwebkit view - это никого не интересует. Может есть совет в какую сторону развиваться в рамках интерфейсов, чтоб это было востребовано?
@user-jx8zx8uk2m
@user-jx8zx8uk2m 4 года назад
Настолько я обожаю этот канал, что он единственный из образовательных выигрывает у развлекательного контента, когда я захожу на RU-vid что-нибудь посмотреть. Очень рад, что вы вернулись.
@mirislamus
@mirislamus 4 года назад
Привет, Вадим рад что ты вернулся. Хотелось бы видео, про единицы измерения, как и где что лучше использовать
@user-tb3mm6dl3z
@user-tb3mm6dl3z 10 месяцев назад
Вадим такой человек вот внатуре эксперт в каждой вещи видит больше чем даже в доке можно вычитать ❤
@user-zg9eg9es8j
@user-zg9eg9es8j 3 года назад
Какое же доходчивое объяснение миксов в контексте независимых блоков по БЭМ. Словами не передать как меня это порадовало. Тайминг 13:30
@nikolaifedotov5107
@nikolaifedotov5107 4 года назад
Единственный человек на RU-vid, у которого каждое слово бесценно! Не бросайте пожалуйста больше так на долго :)
@sashabeep
@sashabeep 4 года назад
Нужно видео с обзором vscode. Ну и всяких плагинов для него
@pepelsbey
@pepelsbey 4 года назад
Принято!
@capstanfearless
@capstanfearless 4 года назад
Поддерживаю автора комментария!
@angrybeaver3425
@angrybeaver3425 4 года назад
Работа с git в vs code
@MaksymMinenko
@MaksymMinenko 3 года назад
По-моему, это не самый оптимальный вариант потратить время Вадима...
@user-yv8uy2mw3x
@user-yv8uy2mw3x 4 года назад
Вадим, делай больше такого контента с реальным программированием. Мастерство вёрстки надо повышать!
@vkuznetsov44
@vkuznetsov44 4 года назад
Один из самые адекватных каналов по вёрстке) Спасибо!
@svetlana_wo
@svetlana_wo 4 года назад
Как здорово, что вы к нам вернулись с новым видео ❤️
@TamaraNikolaevna
@TamaraNikolaevna Год назад
Очень много полезной информации. Надо потренироваться, чтобы запомнить. Получается, в одной вёрстке можно использовать и flexbox, и grid. Объясняете классно!
@pepelsbey
@pepelsbey Год назад
Именно! Кажется вам понравится и это видео ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ST1EvRemB_U.html
@returnobject
@returnobject 2 года назад
открыл для себя этот канал совсем недавно и скажу что еще не попадался такой годный контент на тему фронтэнда. спасибо вадим за профессиональную подачу и просто за то что делишься опытом 🙏
@SamaraDjVitek
@SamaraDjVitek 4 года назад
Спасибо за видео! Как всегда интересно и познавательно, а главное - даёт повод к изучению чего-то нового!
@b-o-t-l-y
@b-o-t-l-y 4 года назад
Самое лучшее, что со мной случилось за сегодняшний день - я увидел, что Вадим выпустил новое видео. ))))) С возвращением!!! Спасибо!
@vladislavderzhavin2065
@vladislavderzhavin2065 4 года назад
Вадим, очень хороший звук. Спасибо!
@eidenblock
@eidenblock 4 года назад
Большое спасибо за твой труд.
@mrborodist611
@mrborodist611 4 года назад
Спасибо Вадим, как всегда годнотища спасибо!
@user-xc6ns4tl3z
@user-xc6ns4tl3z 4 года назад
Вадим, я очень надеюсь, что Вы будете продолжать свой блог. Одна из самых полезных вещей в наполненном мусором ютюбе. Такие блоги должны заслуживать максимального внимания.
@andyvi3116
@andyvi3116 4 года назад
Очень классное видео. Верстаю на гридах, но для себя почерпнул некоторые классные фишки, такие как грид авто флоу. Безумно полезно, Вадим, продолжай в том же духе. Хотелось бы увидеть реализации вёрстки карточек с одинаковой высотой, допустим в следующих выпусках.
@nikonovilya
@nikonovilya 4 года назад
Спасибо тебе Вадим!
@dmitriyzyuzin7260
@dmitriyzyuzin7260 4 года назад
Спасибо за видео. Похоже, я влюбился в гриды. Пора прекращать верстать всё на флексах)
@MaksymMinenko
@MaksymMinenko 3 года назад
Огромное спасибо за эти (кодинг, реальные примеры) Ваши видео, Вадим! Смотришь и не верится, что в Ютубе (особенно в русскоязычном сегменте) может быть насколько качественный контент.
@pepelsbey
@pepelsbey 3 года назад
Вам спасибо, что смотрите :) Подписывайтесь, будет ещё
@VladimirSalygin
@VladimirSalygin 2 года назад
Очень классно. Спасибо!
@VladyslavZubko69
@VladyslavZubko69 4 года назад
Спасибо Вадим, крутой видос ❤️
@alexelkin2502
@alexelkin2502 4 года назад
Большое спасибо за видео!
@MaksymMinenko
@MaksymMinenko 3 года назад
Вот это очень полезное видео, спасибо!
@user-td6vu1hh3y
@user-td6vu1hh3y 4 года назад
Дядя, очень годно!
@Ruslan-ki4dn
@Ruslan-ki4dn 4 года назад
Сними пожалуйста о фокусе, свойстве outline и вот этом всем) как сделать красиво, подходы и как ты это видишь. Спасибо! Очень круто что вернулись такие ролики!
@pepelsbey
@pepelsbey 4 года назад
Есть план, расскажу!
@user-zi8le4nm4d
@user-zi8le4nm4d 4 года назад
Flex gap появился в хроме за флагом. Наконец-то!
@velyar
@velyar 4 года назад
Смотришь видео, всё понятно, всё логично, всё разложено по полочкам. Идёшь верстать и вся логика куда-то пропадает:) Спасибо за труды:)
@andrei8299
@andrei8299 4 года назад
я так сверстал по 3-м урокам 3 разных макета, сделал конспекты, разобрал сложные для меня моменты. А потом начал сам с нуля и просто сел в лужу с header. Так что не знаю даже, как лучше учиться, наверно стоит сперва самостоятельно сверстать какой-то блок/элемент, а потом уже видео посомтреть и если надо отрефакторить код.
@sunnyday5187
@sunnyday5187 3 года назад
Спасибо, вы лучший(:
@o.kiryukhin
@o.kiryukhin 2 года назад
Спасибо! Опять шапку переделывать)
@denisholovko6797
@denisholovko6797 4 года назад
Добрый день, большое спасибо за видео! Было бы очень интересно послушать о :focus-visible
@jorgen5462
@jorgen5462 4 года назад
О, круто, кака раз гриды допонять хотел.
@user-ou6sc3vl4h
@user-ou6sc3vl4h 4 года назад
Чудовий формат відео, побільше такого матеріалу )
@forestspirit5446
@forestspirit5446 4 года назад
Вадим - раз в две недели видосы? мало мало малооооо... давай больше
@pepelsbey
@pepelsbey 4 года назад
Принципиально никакой регулярности, чтобы не вымучивать из себя. Есть время и хорошая идея - снимаю. Может и по два видео в неделю будет, кто знает :) Ну и сейчас была пауза потому, что сменил аппаратуру для съёмки и сотф для монтажа. Научусь пользоваться - будет проще.
@drewmorama
@drewmorama 4 года назад
Годно, продолжайте
@pepelsbey
@pepelsbey 4 года назад
Витебск, спасибо
@drewmorama
@drewmorama 4 года назад
@@pepelsbey Вадим,😂
@pepelsbey
@pepelsbey 4 года назад
Вот вы поправили реплику и мой ответ теперь выглядит глупо :)
@drewmorama
@drewmorama 4 года назад
@@pepelsbey просто я из Витебска, все норм)
@Anodoree
@Anodoree 2 года назад
Забавный факт: подписан совсем недавно, но посмотрев именно это видео, которое выскочило просто в рекомендациях, решил глянуть на Патреон (где был приятно удивлён расценкам), и понял, что цвета уровней там очень неспроста!) Вот теперь интересно, в районе именно этого видео появился Патреон у Вадима, или, может, цвета добавились в это время, или просто какое-то магическое совпадение) А по теме, как всегда - шикарный разбор! Внимать инфо просто в кайф!)
@pepelsbey
@pepelsbey 2 года назад
Цвета для тиров на Патреоне взялись как раз из этих демок )
@Anodoree
@Anodoree 2 года назад
@@pepelsbey благодарю за удовлетворение моего любопытства!)
@_kie
@_kie 4 года назад
С возвращением! На интенсивах использовал твои уроки, наставники даже спрашивали, где ты всё это находишь? :)
@pepelsbey
@pepelsbey 4 года назад
Жизнь подсказывает :) Ну и новости читаю, где только могу
@ProstoAkk
@ProstoAkk 4 года назад
Очень толково! Захотелось на Grid-ах что-то сделать, а то флексить надоело.
@user-xc6ns4tl3z
@user-xc6ns4tl3z 4 года назад
Инструменты отладки верстальщиков: 1) Новичок: border: 1px solid red; 2) Продвинутый: outline: 1px solid red; 3) Профешинал: outline: 1px solid palevioletred; :D :D
@SYVlive
@SYVlive 4 года назад
4) стажёр: расширение pesticide для хрома ^_^
@alexelkin2502
@alexelkin2502 4 года назад
суперпрофи: * outline-color: palevioletred *>* outline-color: palegreen *>*>* outline-color: teal ...
@modusvivaldi7701
@modusvivaldi7701 4 года назад
...и добавить outline-offset: -1px;
@modusvivaldi7701
@modusvivaldi7701 4 года назад
Вадим, огромное спасибо за видео! Было бы круто посмотреть Ваше объяснение таких вещей, как minmax(), fit-content(), и новых значений свойств, описывающих размеры: min-content, max-content, fit-content, available, и как всё это применять для продвинутой адаптивной вёрстки. Судя по примерам на MDN, мощь этих значений и функций огромна, но взять и с ходу применить на боевом проекте сложно.
@lionstar3189
@lionstar3189 4 года назад
Жду ваши новые видео как ожидал серии игры престолов, до 7 сезона кончено же.
@pepelsbey
@pepelsbey 4 года назад
У меня пока никто не умер хотя бы
@user-ir5zd2jy9e
@user-ir5zd2jy9e 4 года назад
gap для flexbox - класно, но в хроме только вот вот как за флагами появился, ура!! Кстати в FireFox иногда бывают проблемы с flex при печати. Хром иногда тоже косячит. Какбы уже давно не новая технология, но боляки еще есть
@wolazant
@wolazant 4 года назад
Отличное видео, спасибо! Недавно отсмотрел целый курс на udemy созданный в таком стиле, когда происходит вёрстка реального проекта с небольшими вкраплениями теории и комментариями в процессе верстки. Это отличная идея курса для Html Academy. Русскоязычных таких я не видел. Он бы подошёл веб-программистам с пробелами в css и самое главное с пробелами в хороших паттернах использования css для вёрстки. Возможно и для начинающих но не желающих работать с наставниками студентов это тоже был бы отличный курс и он мог бы быть дешевле, чем обычные курсы на вашей платформе.
@pepelsbey
@pepelsbey 4 года назад
Мы уже делаем что-то такое в Академии, видели курс по анимации htmlacademy.ru/intensive/animation и вёрстке писем? htmlacademy.ru/intensive/email
@wolazant
@wolazant 4 года назад
@@pepelsbey Спасибо! Не видел их раньше.
@nagorny19
@nagorny19 3 года назад
У кнопок, конечно же, фоновый цвет должен быть какой-то дурацкий © Вадим Я как дизайнер, обязательно возьму это на вооружение ) Спасибо за видео
@bekamez
@bekamez 4 года назад
Спасибо за видео). Еще как вариант во флексе гэпы можно делать с помощью псевдоклассов. .options__button:not(:first-child) { margin-left: 20px; }
@pepelsbey
@pepelsbey 4 года назад
Не наберёшься псевдоклассов на все нужные гэпы (
@AlexandrShushunov
@AlexandrShushunov 4 года назад
@@pepelsbey Это не про гэпы, а про более читаемый вариант селектора .class + .class
@pepelsbey
@pepelsbey 4 года назад
Теперь понял. Только вот мне такой селектор не кажется более читаемым )
@maksimlegit5264
@maksimlegit5264 3 года назад
ещё с флексами можно юзать примерно так margin-left/right: 20px; колонкам и margin-left/right: -20px; флекс контейнеру
@BossRus32
@BossRus32 4 года назад
По идее, у .options стили размещения по строкам и колонкам тоже, аналогично как и margin ранее в ролике, должны подмиксовываться им от шапки, т.е. быть в header__options
@pepelsbey
@pepelsbey 4 года назад
Да, вы правы. Я показал принцип, но не применил его сам, а стоило бы.
@ParaAvis3
@ParaAvis3 4 года назад
Повезло след потоку академии) те кто на гридах будет верстать.) особенно мишку) он бы там как раз вписался. мне как ученику последнего потока на флексах пришлось повозиться)
@AlexanderT89
@AlexanderT89 4 года назад
А уже известно, что последующие потоки будут на гридах? Блин, надо решаться и идти на курсы..))
@DimitarRad
@DimitarRad 4 года назад
Спасибо, Вадим. Для такого контента, как по мне, слишком короткие видео. Я бы смотрел часами ;)
@pepelsbey
@pepelsbey 4 года назад
А вы приходите на лайвы, они часовые )
@DimitarRad
@DimitarRad 4 года назад
@@pepelsbey К сожалению, не знаю о чем речь. Вы там тоже кодите?
@pepelsbey
@pepelsbey 4 года назад
Пока не кодил, скорее на вопросы отвечаю, см. прошлый ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-9eAwN6z55M0.html
@timurkhudiyev
@timurkhudiyev 4 года назад
.el + .el - вот оно че)
@maximchernenkov6876
@maximchernenkov6876 3 года назад
Вадим, лучше все-таки grid-column: 2/3 поставить - так понятнее и доступнее думаю)
@pepelsbey
@pepelsbey 3 года назад
Мне span 2 очень напоминает времена, когда я верстал на таблицах и писал rowspan=2, так что извините )
@user-vu7oy1ii3y
@user-vu7oy1ii3y 4 года назад
Расскажите пожалуйста про сборщики проектов, слышал только про gulp. Интересно узнать не по настройку и работу с ними, а о возможностях этих штуковин и для чего они нужны
@it_doc2319
@it_doc2319 4 года назад
Шикарная информация! Спасибо большое, Вадим) У меня вопрос, а для чего вы задаёте класс head? Это именно у вас такое правило или и на другие практики это распространяется?
@pepelsbey
@pepelsbey 4 года назад
Если вы про , то это я просто обозначаю блок в БЭМ-нотации, чтобы потом делать его детей header__search и т.п. Опираться на имена тегов - более хрупкий подход.
@it_doc2319
@it_doc2319 4 года назад
@@pepelsbey Не я про то, что вы в теге head написали класс page.
@pepelsbey
@pepelsbey 4 года назад
Это был тег :) Дело в том, что его тоже можно оформлять, а опираться на имя тега не очень единообразно, поэтому я делаю блок page и его элемент page__body.
@lenaryan
@lenaryan 4 года назад
Как ни анекдотично, но всё же - смеюсь на слове "лопата"...)
@pepelsbey
@pepelsbey 4 года назад
Сработало!
@user-zb3fy2je8b
@user-zb3fy2je8b Год назад
Вадим, спасибо за видео! А где можно узнать, какие шорткаты ты используешь при кодинге?
@pepelsbey
@pepelsbey Год назад
Есть два видео, которые могут ответить на ваш вопрос: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-vF3Ho6YJSbQ.html ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-_8MwZ_cgvZ8.html
@egoist2956
@egoist2956 4 года назад
like
@capstanfearless
@capstanfearless 4 года назад
Вадим, спасибо за видео, узнал много нового. У меня вопрос - в настоящее время уже можно использовать `display: grid` на всю катушку? И вопрос про атрибут loading="lazy" у картинок у хрома, стоит ли его использовать сейчас? Спасибо.
@pepelsbey
@pepelsbey 4 года назад
Можно вам гриды или нет - это вам скажет только ваша статистика. Атрибут loading=lazy уже работает в Chrome и Firefox, так что смело используйте - но только осознанно, как меру оптимизации, а не атрибут по умолчанию.
@danmelnichuk4318
@danmelnichuk4318 4 года назад
Вадим, спасибо за видео! Но есть вопрос к БЭМу в классе options. Ты указал там grid-row-start и grid-column, добавив блоку информацию о его расположении. Я правильно понимаю, что такое лучше делать миксом .header__options?
@pepelsbey
@pepelsbey 4 года назад
Да, вы правы, упустил этот момент, но к счастью показал принцип :)
@modusvivaldi7701
@modusvivaldi7701 4 года назад
@@pepelsbey (Слегка оффтоп) Если у блока задано свойство width в процентах, это внешняя или внутренняя геометрия? В каком классе должно находиться такое width в пределах БЭМ-микса: в блоке или в элементе родительского блока?
@ivanm9674
@ivanm9674 4 года назад
Отличное видео! Спасибо! Только у меня вопрос, если мы в .options описываем позицию разве это не тоже самае когда мы задаем margin? не должна ли позиция .options выведена в mixin?
@pepelsbey
@pepelsbey 4 года назад
Да, вы правы, адресацию в гриде стоило вынести в header__options и смиксовать с options.
@jorgen5462
@jorgen5462 4 года назад
Вадим, если можно, рассмотри фреймворки для верстки. Лично я всегда был их тихим противником, но при необходимости быстрой разработки вроде как полезно? Некоторые просто сетку используют...
@pepelsbey
@pepelsbey 4 года назад
Тут не ко мне, я умею верстать руками, а фреймворками пользоваться не умею и не понимаю зачем.
@jorgen5462
@jorgen5462 4 года назад
@@pepelsbey спасибо. Для меня это ответ на вопрос)
@indagadir
@indagadir 4 года назад
Спасибо! Пара вопросов: 1. 6:58 - по умолчанию значение атрибута type для button и так submit. Допустимо ли его явно не указывать? 2. 11:07 - магические отступы у инпута же должны помочь решить normalize.css и reset.css?
@pepelsbey
@pepelsbey 4 года назад
Атрибут type у кнопки слишком опасный, чтобы полагаться на умолчание. Когда крестик закрытия окна с формой может отправить это окно из-за неудачной вложенности или плохо закрытого тега, то лучше указывать тип кнопки всегда. Такой у меня принцип, рекомендую.
@pepelsbey
@pepelsbey 4 года назад
Я не очень люблю включать файлы, в которых группа малоизвестных мне людей решила за меня, что мне нужно :) Ну и глобальные стили тоже не добавляют переносимости вашей вёрстке.
@SomeTimesCoding
@SomeTimesCoding 4 года назад
Вадим, спасибо за видео! Вопрос по гэпам во флексах. Если я правильно помню, "совиный" селектор * + * не подойдет, если мы разрешаем перенос на другую строку (flex-wrap: wrap), т. к. первый элемент на второй строчке также получит гэп. Как правильно обходить такие моменты?
@pepelsbey
@pepelsbey 4 года назад
Вы правы, тут уже нужны гэпы (
@SomeTimesCoding
@SomeTimesCoding 4 года назад
@@pepelsbey, иногда может спасти отрицательный margin у родителя и соответствующий margin у вложенных элементов. Более детально такой трюк описан на MDN: Making things wrap, раздел Creating gutters between items.
@user-zi8le4nm4d
@user-zi8le4nm4d 4 года назад
Вадим, по поводу доступности вопрос - есть ли какие преимущества использования label с классом sr-only, вместо aria-label? Недостатки вижу - лишний DOM элемент и генерация уникального id, когда форма берется из шаблона и используется несколько раз на странице. Или действительно лучше использовать aria-label?
@pepelsbey
@pepelsbey 4 года назад
В целом, подход с элементов label нагляднее, работает с онлайн-переводчиками, но я иногда использую aria-label. Мне кажется, что если у вас хотя бы какая-нибудь шаблонизация, то проблем с генерацией id быть не должно.
@user-zi8le4nm4d
@user-zi8le4nm4d 4 года назад
@@pepelsbey Спасибо за ответ. Тогда пока помучаюсь с label.
@AndreyMorkovin
@AndreyMorkovin 3 года назад
Вадим, привет! Ты говоришь, что на сайте вебстандартов используется генератор статики для статей. Интересно, какой именно. Гетсби?
@pepelsbey
@pepelsbey 3 года назад
Eleventy www.11ty.dev/, Gatsby пробовали и в ужасе сбежали. На 11ty, в частности, работает web.dev и много других сайтов.
@AndreyMorkovin
@AndreyMorkovin 3 года назад
Vadim Makeev понял, большое спасибо за ответ.
@zaharavsievich5944
@zaharavsievich5944 4 года назад
Привет! Я слышал, что браузер читает и применяет селекторы справа-налево. Всегда боюсь использовать селекторы типа .class > * + * , потому что браузер сначала применит стили ко всем элементам, потом ко всем элементам, перед которыми есть все элементы, а уже потом применит к элементам, которые находятся на первом уровне вложенности элемента .class . Стоит ли так заморачиваться или браузер совсем по-другому обрабатывает селекторы и падения в производительности нет?
@pepelsbey
@pepelsbey 4 года назад
Мне кажется я ещё лет пять назад слышал реплику то ли Пола Айриша, то ли Алекса Рассела о том, что перфоманс CSS-селекторов оптимизировали настолько, что сейчас нужно исхитриться, чтобы написать медленный селектор. Допускаю, что можно создать такое DOM-дерево, в котором такой селектор будет медленный, но сначала по перфомансу браузера ударит само дерево :)
@zaharavsievich5944
@zaharavsievich5944 4 года назад
Vadim Makeev хах! Я понял, спасибо)
@Necroomsk
@Necroomsk 4 года назад
Я обычно в таких случаях использую .class-children:not(:last-child), а вот о варианте .class > * + * никогда даже не задумывался
@MrToshkin
@MrToshkin 4 года назад
Вадим, заметил что некоторые верстают с обязательным присвоением класса если необходимо обратиться к элементу. Например в css не писать обращение к body, а обязательно к .body или .page__body. Либо не обращаться к вложенности .header__article p, а обращаться непосредственно к .header__article-p. Почему так? Ведь данные примеры не добавляют читаемости коду, вложенность лишь одна.
@pepelsbey
@pepelsbey 4 года назад
Это такой приём из промышленной разработки, который захватил умы фронтендеров уже давно. Чаще всего это связано с БЭМ и позволяет вам описывать классами исключительно визуальную составляющую интрфейса, а теги использовать более гибко. Почитайте про БЭМ здесь, станет понятнее ru.bem.info/methodology/quick-start/
@Necroomsk
@Necroomsk 4 года назад
Доброго времени суток. Очень люблю гриды, но как на счёт поддержки их в ie? Часто приходится верстать кросбраузерно с учётом ie9, по тому стараюсь использовать display:table, который поддерживается везде
@Necroomsk
@Necroomsk 4 года назад
Да, забыл написать: спасибо за видео, как всегда смотрел с большим интересом)
@pepelsbey
@pepelsbey 4 года назад
Если вам нужно поддерживать IE любой версии, гриды лучше не трогать. В IE10-11 есть флексы, но в вашем случае с IE9 (соболезную) лучший вариант - это dispay: table или display: inline-block.
@Necroomsk
@Necroomsk 4 года назад
Спасибо за ответ, убедился, что всё делаю правильно. И да, есть такие товарищи, которым обязательна поддержка ie9, а некоторые категорически против bootstrap, он мол на сео плохо влияет. Как я не пытался, доказать обратное не получилось
@Kempriol
@Kempriol 4 года назад
а на сколько костыльно будет для потомков использовать flex-basis: calc(25% - 10px); а в родителе justify-content: space-beetwen, если, как в примере, известно количество?
@pepelsbey
@pepelsbey 4 года назад
Выглядит весьма костыльно, я бы лучше отступы вставил через звёздочки
@MaksymMinenko
@MaksymMinenko 3 года назад
Получается, что align-items во флексбоксе меняется в зависимости от того, как задать направление флекса, а в гриде всегда идет по оси колонок, я правильно понимаю?
@pepelsbey
@pepelsbey 3 года назад
Да, в гридах тоже можно поменять автораскладку, но это не то же самое, что ось во флексах codepen.io/pepelsbey/pen/VwPLywx
@MaksymMinenko
@MaksymMinenko 3 года назад
@@pepelsbey В последней секции косяк там с названиями классов. :) Причем это на самом интересном месте. ;) А вообще, спасибо! Я этого (что в гриде не меняется) не знал.
@dimadjunaev
@dimadjunaev 4 года назад
Как вариант можно же было написать .options__button:not(:first-child) { margin-left: 20px; }, верно?
@kolyaraketa8300
@kolyaraketa8300 4 года назад
Даешь уроки по гридам
@Minobi
@Minobi 4 года назад
Вадим, а почему input type="text" а не input type="search" для поля поиска? Так ведь будет более семантично или есть какие-то подводные камни?
@pepelsbey
@pepelsbey 4 года назад
«Семантично» это сомнительная цель. «Удобно пользователю» (или полезно проекту) - совсем другое дело. У type=search есть принципиальная проблема: некоторые браузеры начинают поверх таких полей рисовать всякие скругления, кнопочки и вообще усложнять вам жизнь, а пользователю дают кнопку. Чтобы получить кнопку без сложностей, лучше использовать атрибут inputmode=search developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
@Minobi
@Minobi 4 года назад
@@pepelsbey Согласен, что главное это удобство пользователя) Специально проверил сейчас работу атрибута inputmode="search", на iOS Safari 13 (на других мобильных браузерах проверить не могу сходу) кнопку Search на клавиатуре мы с ним не получаем, просто нейтральная кнопка Go, как и без него, если input завёрнут в form (накидал быстрый пример для демонстрации codepen.io/Minobi/pen/QWjaxRP) а о той ссылке что вы дали видно что поддержка его отсутствует у настольных Firefox и Safari, если даже забыть об IE, так что не могу согласиться что inputmode="search" является полноценной заменой input type="search". Часть проблем с другим внешним видом поля input type="search" решается стилями, а в реальных проектах поля ввода обычно и так полностью стилизуют, ну и если используется normalize.css то он также приводит все поля ввода к одному виду, хотя все дополнительные элементы что показывает браузер убрать будет сложно да. Понимаю что видео было совсем на другую тему и ни в коем случае не ставлю целью придраться, в этом демонстрационном проекте действительно разницы не было, просто взгляд зацепился при просмотре)
@pepelsbey
@pepelsbey 4 года назад
Хотите кнопку «Search», добавьте атрибут enterkeyhint="search", см. html.spec.whatwg.org/multipage/interaction.html#input-modalities
@Minobi
@Minobi 4 года назад
Согласно caniuse enterkeyhint атрибут поддерживает всего лишь iOS Safari 13.4+ так что сложно рекомендовать его для продакшена( Благодарю за ответы, всегда узнаю что-то новое благодаря вам. Не осмеливаюсь продолжать не относящуюся к теме видео дискуссию, возможно тема полей ввода могла бы быть темой одного из следующих видео на вашем канале.
@romankonashenkov1498
@romankonashenkov1498 4 года назад
Вадим, что за тема для vscode?
@pepelsbey
@pepelsbey 4 года назад
GitHub Light
@faintx4
@faintx4 4 года назад
Привет. А что юзаешь для записи экрана?
@pepelsbey
@pepelsbey 4 года назад
Обычно QuickTime на macOS, но сейчас подключаю ноутбук к микшеру ATEM Mini Pro и пишу экран там, но это вам не нужно :)
@faintx4
@faintx4 4 года назад
Vadim Makeev просто показалось все так плавненько)
@mouratibraguimov7964
@mouratibraguimov7964 3 года назад
На сегодняшний день, "column-gap" и "gap" у флекса работают в последних версиях Chrome, Firefox, Opera, Edge. Safari не смог. Вот мои стили, codepen.io/coder_space/pen/QWKENwK Информация на caniuse не соответствует действительности. Еcли им верить, то gap работает только в Edge, Firefox и Chrome. Написано что в версии TP (полагаю, что это текущая версия для тестеров) будет поддержка гапа для Сафари.
@vkuznetsov44
@vkuznetsov44 4 года назад
Кстати, я вот столкнулся с проблемой, как сверстать на гридах такую адаптивность табов yadi.sk/i/C5-32wawqYqv1w (когда сами табы на десктопе располагаются сверху таб_контента). Возможно это будет интересно многим, так как дизайн-решение достаточно типовое.
@djon8810
@djon8810 3 года назад
На счет замены gap. Я делаю так: .options__button:not(:last-child)
@meg6pat
@meg6pat 4 года назад
В конце прям детектив про Safari. Но что с футболкой? Фоновую стенку покрасили, а переодеться забыли?
@pepelsbey
@pepelsbey 4 года назад
Это такая молодёжная мода
@barr.mrjohn
@barr.mrjohn 3 года назад
единственное мне тут подсветка не понравилось ( а так всё классно
@pepelsbey
@pepelsbey 3 года назад
Подсветка в чужом редакторе редко нравится, тут ничего не поделаешь )
@dahamyr
@dahamyr 4 года назад
Вадим, почему input type text, а не input type search? У него есть дополнительные фишки в стиле специфичной кнопки ввода на мобильных. И почему aria-label, а не title?
@pepelsbey
@pepelsbey 4 года назад
Поле type=search проблематичное, лучше использовать атрибут inputmode=search developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
@pepelsbey
@pepelsbey 4 года назад
Атрибут title плохой, он внушает разработчикам ложную идею, что пользователи наведут, увидят подсказку и им станет понятно. Но на мобильных не навести, а для скринридеров это работает нестабильно. Поэтому лучше явно говорить: я добавляю доступный лейбл для скринридеров с помощью атрибута aria-label.
@dahamyr
@dahamyr 4 года назад
​@@pepelsbey "type=search проблемотичное". Бесспорно, есть дополнительные сложности со стилизацией (и ещё некоторыми вещами adrianroselli.com/2019/07/ignore-typesearch.html), но не будет ли игнорирование стандартов вредным? Этот тип поля добавлен в официальную спеку и рекомендуется WHATWG, а все проблемы с ним как всегда решаем workaround'ами и PRами в спеку. Вы не думаете, что лучше использовать стандарт и прикладывать усилия к тому чтобы делать его лучше, чем просто игнорировать его потому что он проблематичен? К тому же inputmode не поддерживается никем кроме хрома (caniuse.com/#search=inputmode) в то время как type=search поддерживается даже IE10 несмотря на то что inputmode это изначально затея майков
@pepelsbey
@pepelsbey 4 года назад
Стандарты тоже ошибаются. Атрибуты inputmode или enterkeyhint - это способ разделить монолитные решения «всё в одном» (type=search, date, email) на удобные части. Теперь вы можете сами выбрать какую клавиатуру показать и какую валидацию (pattern) использовать. То есть нет никакого преступления в том, чтобы не использовать type=search, преступлением будет не помочь или даже помешать пользователю. Как и у вас, так и у стандартов - это основная цель.
@ndrewhas
@ndrewhas 4 года назад
Вадим привет. Не приходилось ли тебе встретить багу в Firefox: в верстке интерфейса чата (например), когда в окне сообщений делаешь column-reverse, чтобы сообщения начинались снизу и ползли вверх - пропадает вертикальный скролл. bugzilla.mozilla.org/show_bug.cgi?id=1063967
@pepelsbey
@pepelsbey 4 года назад
Звучит печально, подписался на баг в трекере. Вот активный: bugzilla.mozilla.org/show_bug.cgi?id=1042151
@detro1821
@detro1821 2 года назад
не считаете ли вы что от margin-left, top стоит отказаться и использовать только right, bottom
@pepelsbey
@pepelsbey 2 года назад
Не думаю, что такое правило на самом деле поможет.
@AlexKozack
@AlexKozack 4 года назад
А что за редактор? VSC? Что за плагин для плавного курсора?
@pepelsbey
@pepelsbey 4 года назад
Мне все почему-то говорят про плавный курсор - я ничего специального для это не делал, кажется. Да, это VS Code на macOS, может он всегда так работает или это особенности записи экрана.
@dobermanpharaoh7567
@dobermanpharaoh7567 Год назад
а почему нельзя было использовать normalize.css для кроссбраузерной вёрстки, чтобы привести несоответствия стилей к единому знаменателю?
@pepelsbey
@pepelsbey Год назад
Не даст вам normalize.css кроссбраузерности, только выровняет какие-то дефолты, но заодно замусорит панель в отладке. Я не вижу причин втыкать в свой код большие части чужого с мнениями. Я лучше скопирую из него нужные мне части и поставлю конкретным блокам, а не глобально. И то, если нужно.
@dimovich85
@dimovich85 4 года назад
Исходники видео где-то 1.5 часа были? :)
@pepelsbey
@pepelsbey 4 года назад
Нет, уложился в полчаса и без дублей в этот раз :)
@dimovich85
@dimovich85 4 года назад
@@pepelsbey это надо уметь так записывать)
@user-xd7vj5cf9f
@user-xd7vj5cf9f 2 года назад
100500 лайков
@user-tb3mm6dl3z
@user-tb3mm6dl3z 10 месяцев назад
Я для проверки пишу цвет Red потому что если и его не видно значит че то не так 😅
@pepelsbey
@pepelsbey 10 месяцев назад
Попробуйте tomato: результат почти такой же, а звучит круче
@omarkertis5294
@omarkertis5294 2 года назад
Почему не &:not(:first-child) { margin: ... ?
@pepelsbey
@pepelsbey 2 года назад
Нипочему :) Одну и ту же задачу почти всегда можно решить разными способами.
@mefesto_
@mefesto_ 2 года назад
А зачем классы на тегах HTML и BODY? Они же всегда в 1 экземпляре на странице. Можно по тегу обращаться.
@pepelsbey
@pepelsbey 2 года назад
Для последовательности: если для всего используются классы, но не нужно вспоминать, кто сколько раз на странице используется. Плюс бывает, что нужно сдвинуть контейнер вглубь или нет доступа к шаблону - тогда можно просто перевесить классы.
@baileysli6235
@baileysli6235 4 года назад
8:46 А чому не type="search"?
@pepelsbey
@pepelsbey 4 года назад
Обсудили ниже, посмотрите в комментариях (не получается дать ссылку)
@RedkeiGost
@RedkeiGost 3 года назад
Насколько нормально добавлять тегу класс с именем тега, header.header? Я верстал в начале 10х и мне это странно.
@pepelsbey
@pepelsbey 3 года назад
Думаю, вы должны были застать БЭМ, вот я и верстаю по этой методологии. Плюс может быть не один на странице. Ну и как-то не очень последовательно: приходится думать - это уникальный тег на странице или нет? Если уникальный - тег, если не уникальный - класс. А если тег нужно будет поменять. В общем, так удобнее.
@RedkeiGost
@RedkeiGost 3 года назад
@@pepelsbey Спасибо за ответ. Да помню. Коллега говорил "ну, вот как ты обратишься к главному заголовку сайта, если он не имеет .main_taitle?", а я "h1 и есть мэйн тайтл". Я ретроград, который считал, что бэм избыточен для малых сайтов, добавляет излишнюю вложенность и кучу ненужных классов. Но я не собираюсь спорить о методике, которая победила и завоевала. И не сочтите за грубость, это просто воспоминание. Вот, за что бы я был благодарен, так это за рекомендации актуальных книг по css. Даю совет ребенку знакомых по изучению верстке, раньше бы предложил почитать что-нибудь вроде Итана Маркотта, но он устарел. Вот, пришел посмотреть, как тут Вадим Макеев без флоэтов колонки делает (посмотрел, понял и просветился). Раньше на на web-standards.ru был раздел "рекомендуемые книги". А щас нету.
@pepelsbey
@pepelsbey 3 года назад
Задачи с тех пор усложнились, просто поверьте :) Из книг: debuggingcss.com/ www.smashingmagazine.com/printed-books/
@RedkeiGost
@RedkeiGost 3 года назад
@@pepelsbey отладку css утащил, спасибо. А в издательстве Smashing Magazine что бы порекомендовали? За тайпскрипт я сам расскажу. Может не так хорошо, как в книге, но ребенку (20ти лет) зайдет. Inclusive Components наверно норм книга для новичка.
@asmint1987
@asmint1987 4 года назад
Вадим, к сожалению если строки врапаються, то селекторы из видео мало помогают(
@pepelsbey
@pepelsbey 4 года назад
Если строки врапаются, то вам помогут только гриды (
@olkhovikmi
@olkhovikmi 4 года назад
Как называется тема в vscode?
@pepelsbey
@pepelsbey 4 года назад
GitHub Light
@rinat9685
@rinat9685 4 года назад
Я не силен в БЭМ, но разве нельзя было для header сделать так: .header > *:not(:last-child) { margin-right: 20px; }
@pepelsbey
@pepelsbey 4 года назад
Можно и так да, но это магия, по сравнению с простым column-gap: 20px
@BMikel
@BMikel 4 года назад
какой смысл, если отсутствует адаптив?
@pepelsbey
@pepelsbey 4 года назад
Такой, что это не «вёрстка адаптивной шапки», а «гэпы в гридах и флексах»
@angrybeaver3425
@angrybeaver3425 4 года назад
Вадим, хорошо растет щетина, тебе нужно отпустить бороду!
@pepelsbey
@pepelsbey 4 года назад
Не, я помято-лохмато с ней выгляжу, не нужно )
@SingleFeniks
@SingleFeniks 4 года назад
Гриды - хорошо, но пока flexbox наше всё. #ieсдохни Отдельно соболезную бедолагам, кому нужно поддерживать ie9.
@lomkuvaldych
@lomkuvaldych 4 года назад
У меня БЭМ ассоциируется с острой формой классянки.
@pepelsbey
@pepelsbey 4 года назад
Поначалу и правда страшновато, но потом втягиваетесь. Гибкость перевешивает неудобство с классами.
@alexelkin2502
@alexelkin2502 4 года назад
Удивительно, откуда берутся противники классов, часто их встречаю в комментариях в разных местах. вот буквально только что принесли на переделку баннер, в котором какой то фрилансер на классах сэкономил - задал стиль для дива - position: abosolute; что бы всем дивам внутри баннера одинаковые классы не писать... представляете что стало с сайтом на который такой баннер вставили?
@danielkhachaturian951
@danielkhachaturian951 3 года назад
Какой смысл давать классы html и body, это уже жир, я считаю, к ним можно обратится по тегу, так как они единственные на странице, в одном экземпляре
@pepelsbey
@pepelsbey 3 года назад
Да как хотите :) Мне нравится последовательность и не нужно считать сколько тегов на странице: всегда классы и всё.
Далее
Амина кикидо кампус
00:15
Просмотров 43 тыс.
Есть айтишники ?😂
00:21
Просмотров 355 тыс.
Сверстать Блюскай, часть 1
3:25:18
Амина кикидо кампус
00:15
Просмотров 43 тыс.