Вёрстка по сетке на flexbox + интерактивный тренажёр

  Переглядів 30,296

Дмитрий Лаврик

Дмитрий Лаврик

6 років тому

Трежанёр - dmitrylavrik.ru/training/proc...
Сайт - dmitrylavrik.ru/video/html-cs...
Курс - smartgrid.dmitrylavrik.ru/

КОМЕНТАРІ: 115
@grantorino3465
@grantorino3465 6 років тому
Ну так это же очевидна и давно известная мудрость - "Скажи мне - и я забуду, покажи мне - и я запомню, дай мне сделать - и я пойму"
@justspartak
@justspartak 4 роки тому
Аминь!
@user-kp6dn5qt4l
@user-kp6dn5qt4l 6 років тому
Укоренилась стойкая ассоциация флексбокса с шашлыком, спасибо Дмитрий! )
@MrVolkoed
@MrVolkoed 5 років тому
спасибо большое! годно! доходчиво! Успехов тебе в добрых делах!
@maltesky4671
@maltesky4671 6 років тому
Ролик просто топ. Продолжай также!!
@user-ut3fx2zk4x
@user-ut3fx2zk4x 6 років тому
Тренажер кайф!!! Очень классная идея!
@ksuhinabod
@ksuhinabod 6 років тому
Отличная идея с тренажером!!! Очень понравилось!
@olatera
@olatera 6 років тому
Чувак, я твой фанат! 😍
@elenan894
@elenan894 6 років тому
Отличная идея с тренажером. Очень понравилось
@user-kc5xm2cs3i
@user-kc5xm2cs3i 6 років тому
И урок и тренажер оч. крутые. Дима как всегда молодец! Спасибо!
@_Fantom_.
@_Fantom_. 4 роки тому
Спасибо, очень полезный и познавательный урок!
@GutsWarhammer
@GutsWarhammer 6 років тому
Конечно помогают. Нужно больше тренажёров)
@user-ue8cg8xp3j
@user-ue8cg8xp3j 3 роки тому
Очень круто!Спасибо большое
@kvarkent
@kvarkent 6 років тому
Дима ты большой молодец ! очень доступно, тренажер крут.
@TamaraNikolaevna
@TamaraNikolaevna 2 роки тому
С трудом, но прошла. Идея отличная!!!
@user-np6fq5ir6d
@user-np6fq5ir6d 4 роки тому
Тонкости, а ведь какие они важные, СПАСИБО.
@user-fu1so8bj8l
@user-fu1so8bj8l 3 роки тому
Пишу комментари, чтобы продвинуть ролик в алгоритмах Ютуба. Спасибо автору за полезный ролик!
@serhiichernyshov7172
@serhiichernyshov7172 6 років тому
Спасибо! Очень полезная инфа!
@bramduss
@bramduss 2 роки тому
Очень толковое видео. Бриллиант на ютубе в данной теме. Спасибо автор.
@anyaegorova495
@anyaegorova495 2 роки тому
Отлично все объяснили, спасибо!!)
@websummon5266
@websummon5266 6 років тому
Очень разумный выпуск, побольше такого, мне вот как уже джуниору, очень в кайф иметь на заготовке такую сетку, спасибо большое Дмитрию за его супер обучающие видосы, с помощью них я делаю деньги с кода, огромное спасибо Дмитрий, вы топчик))
@alexpro8430
@alexpro8430 6 років тому
Хорошая задумка.
@zhamalnurmanov6751
@zhamalnurmanov6751 5 років тому
спасибо за тренажёр
@justspartak
@justspartak 4 роки тому
Нужно больше тренажёров!
@electricdrive21
@electricdrive21 6 років тому
Классная идея. Плюсую!
@user-eh7io8bp1h
@user-eh7io8bp1h 5 років тому
Очень все доступно объяснил
@olegantonina133
@olegantonina133 4 роки тому
Все круто!
@sv.sesvjanish5034
@sv.sesvjanish5034 5 років тому
Интерактивный тренажёр - хорошая идея!
@pavel-256
@pavel-256 6 років тому
Хороший, понятный урок. Тренажер штука нужная. Прошел задания, помогло упорядочить кашу в голове. В полноэкранном режиме F11 все видно нормально. Мне лично все понравилось
@ivanbiziuk9919
@ivanbiziuk9919 6 років тому
Классная тема)
@user-wo7vc6ow6d
@user-wo7vc6ow6d 4 роки тому
Отлично, я за!
@user-dv8sl7xh7d
@user-dv8sl7xh7d 6 років тому
Flexbox-Это тема !
@martoyas
@martoyas 2 роки тому
тема топ, вариант хорош
@electfreak
@electfreak 6 років тому
Дмитрий, наконец-то с npp перешли на sublime!
@oksanafedo971
@oksanafedo971 6 років тому
Круто.
@romanfanta6347
@romanfanta6347 6 років тому
Да,... шаШлык помню) Красавчик, хорошо объяснил.
@YusupOzdoyev
@YusupOzdoyev 2 роки тому
спасибо!
@slava_po
@slava_po 6 років тому
Крутая штука! Хорошая работа Дмитрий! Усваевается материал на 5 из 5. Вот что бы предложил изменить: шрифт в описании на 14, межстрочный интервал поставил бы 16 или 18, и font-weght уменьшил (поиграться). Мне кажется, что текст как будто разорван, строки сами по себе каждая (хотя возможно вы эту цель и преследовали). Это даст больше места, сделает текст компактным и более читаемым и даст больше места для нижней части эмулятора. И предложил бы сделать возможным возвращаться на предыдущие упражнения.
@WhiteBear141981
@WhiteBear141981 4 роки тому
Огонь!
@igorenzia
@igorenzia 5 років тому
отличный тренажер. а может запишешь курс по написанию тренажера. (PHP, JS, SQL) интересно написать для себя. понять как работает и потренироваться по ходу написания :)
@dmytro_pavliuchenko
@dmytro_pavliuchenko 6 років тому
идея с тренажёром хорошая
@PacoOfficial
@PacoOfficial 6 років тому
супер
@user-et3fj5he9h
@user-et3fj5he9h 6 років тому
Очень понравилось! За исключением нескольких грамматических ошибок (в стиле Дмитрия :)) и несовершенства системы проверки ответов все очень круто. Класно было бы разных уровней сложности добавить и рандомных цифр в задачах (чтоб не автоматом...) Класс!!! P.S. Вижу курс по WP появился - это тот что ранее был, или доработанный?
@elitcontent584
@elitcontent584 6 років тому
Дмитрий! Спасибо, за тренажер. Очень интересно и полезно. Как я понял, вы разработчик smart-grid ? Установил потестил, интересная вещь. Если не трудно, ответьте на 2 вопроса. 1. В качестве препроцессора, как я понял, можно использовать любой, в том числе sass|scss просто указав его при генерации сетки, или я не прав? 2. В 2-х словах, за что отвечает примесь .shift и другие ее разновидности - это что-то вроде offset в bootstrap? Или что-то другое? В качестве улучшения тренажера, на мой субъективный взгляд: 1. Примеры нужно вынести в верх экрана; 2. При описании того, что нужно сделать для выполнения задания, не стоит так детально описывать. Достаточно просто указать, к примеру, для того, чтобы выполнить задания используйте свойство justify-content. А не писать свойство, значения, и элемент которому его добавить. Это, ИМХО, лишнее. Ведь тренажер - своеобразный тест, после прочтения статьи. Спасибо!
@user-pn2wz2ns8q
@user-pn2wz2ns8q 5 років тому
А как рассчитывать колонки, если, к примеру, 2 итема, один занимает 5 колонок, второй - 7 колонок
@dispute777
@dispute777 5 років тому
Спасибо за труд! В ноябре планирутете платные уроки по верстке?
@MrReflection540
@MrReflection540 5 років тому
а если например один элемент в строке должен занимать 6 колонок, в второй 4 и 2 колонки как оставшееся расстояние между ними? Как тогда рассчитывать?
@uladzislaunazarau8184
@uladzislaunazarau8184 3 роки тому
За шашлык лайк)
@MrSlavjon
@MrSlavjon 6 років тому
Всё класс, но так привык к Emmet, что просто ппц, может получится добавить в тренажёр поддержку Emmet? :)
@satsat9791
@satsat9791 3 роки тому
могу ошибаться, но слева и справа остаются висеть хвосты блока row, образованные от отрицательных марджинов. Если они висят в пустоте то проблем нет. Если вы попробуете слева и справа от блока container воткнуть что-то еще (например меню, рекламу, блок новостей), то возникнут проблемы. Метод явно имеет ограничение по применению, о которых в видео вроде как не сказано
@dmytrylysytsya238
@dmytrylysytsya238 6 років тому
чтобы достичь прилегания блоков слева и справа на каком-то англоязычном ресурсе предлагалось применять свойство justify-content:space-evenly.Т.е оно должно исправить ошибку разработчиков флексов по неполному набору свойств.Приходилось применять это свойство?
@samelodyn
@samelodyn 6 років тому
А какая есть альтернатива по заданию количества столбцов/строк вместо Бутстраповского подхода?
@portfel4ik858
@portfel4ik858 3 роки тому
Тренажеры отличная вещь. Если бы еще на более реальном примере. Т.к. на кубиках, иногда понимание принципа, не происходит.
@pro-verstka
@pro-verstka 6 років тому
Вариант который я всегда использую это у row поставить margin: -30px 0 0 -30px; а у item padding: 30px 0 0 30px, и можно задавать ширину без всяких calc
@zulagwido1309
@zulagwido1309 4 роки тому
Мне казалось, что современные frontend-разработчики не используют сетки вообще. Во всяком случае встречал много подобных мнений. Насчёт формулы - нашёл это полезным для себя. И тренажёр хороший, мне понравился. Правда на 8 шаге произошёл казус: вроде всё верно сделал, вот пример: .container{ display: flex; flex-wrap: wrap; margin: 0 -20px; } .item{ width: calc(100% / 12 * 3 - 40px); margin: 20px; padding: 20px; box-sizing: border-box; } Но в итоге кнопка "Перейти к следующему" осталась неактивной.
@doomymax577
@doomymax577 6 років тому
надо вам Дмитрий сделать упражнения так чтобы люди сами думали куда вписывать что надо - а то там получается что всё время линейный сюжет и все понятно что делать
@antonbeletsky1277
@antonbeletsky1277 Рік тому
есть отступы между строками и стобацами вконтейнере
@Tube26218
@Tube26218 5 років тому
Формула расчета ширины: calc( 100% / columns * n - offset ) n = количество колонок, которые будет заимать элемент
@MrReflection540
@MrReflection540 5 років тому
А если например один элемент в строке должен занимать 6 колонок, в второй 4 и 2 колонки как оставшееся расстояние между ними? Как тогда рассчитывать?
@WhiteBear141981
@WhiteBear141981 4 роки тому
Mr Reflection, по той же формуле. Допустим ширина viewport 100% = 1920px. Тогда ширина 1-го эл-та = calc(100%/12*6 - 40px) = 920px. Ширина 2-го эл-та = (100%/12*4 - 40px) = 600px. Остаётся 2 пустые колонки: 2*160px = 320px. Плюс 2 отступа по 40px: 80px. Итого: 920 + 600 + 320 + 80 = 1920px
@serhiilytvyn8753
@serhiilytvyn8753 6 років тому
Очень полезная тема и после ваших классных и понятных объяснений материала тренажер позволяет очень хорошо закрепить в памяти пройденный материал. Нужно немножко доработать удобство использования тренажера (описал как по моему субъективному мнению нужно это сделать - prntscr.com/jjdgko)
@vvv7220
@vvv7220 5 років тому
тренажер +
@jonturnik
@jonturnik 6 років тому
Дмитрий, у меня к вам такой вопрос, нигде не могу найти. Можно ли методами PHP сжимать размер файлов изображений и вырисовывать их на загружаемой странице, без сохранения уменьшенной копии на сервере
@dmitrykorenko9033
@dmitrykorenko9033 6 років тому
Чтобы что-то отобразить нужно это где-то взять Или с вашего сервера, или с внешнего Разве, что можно настроить крон на удаление старых thumbnail'ов
@jonturnik
@jonturnik 6 років тому
Dmitry Korenko спасибо, это не подходит, так как, скорее всего, будет долго происходить. Дольше, чем выгружать просто оригиналы
@dobrynia777
@dobrynia777 6 років тому
Классы в html (в пределах разумного: container, row, cols), на мой взгляд единственное решение. Если контент менеджеру нужно изменить ширину абзаца в статье, например, ему в Sass нужно идти и сайт компилить? Или я что-то не понимаю?
@dmitrylavrik
@dmitrylavrik 6 років тому
На мой взгляд нужно и то и другое. Для контент менеджера в бутстрапе слишком много классов, он же не вёрсткой занимается. Сложные вещи делает верстальщик в препроцессорах примесями, а статическая сетка для контента статей и т.п. может быть в виде классов, просто их намного меньше. Но это уже зависит от проекта.
@user-qh9on6ez1m
@user-qh9on6ez1m 4 роки тому
Тренажёр крут) Но 8 урок, не получается пройти, хотя вроде бы всё правильно сделал. .container{ display: flex; flex-wrap: wrap; margin: 0 calc(-40px / 2);; } .item{ width: calc(100% / 12 * 3 - 40px); margin: calc(40px / 2); padding: 20px; box-sizing: border-box; }
@xerurg88
@xerurg88 3 роки тому
можно ли такое в 2021 сделать на свойстве gap?
@dmitrylavrik
@dmitrylavrik 3 роки тому
caniuse.com/?search=gap в 2023 авось и можно будет)
@Alias_s
@Alias_s 6 років тому
на 8 не пускает дальше, есть ошибка? .container{ display: flex; flex-wrap: wrap; margin: 0 -20px; } .item{ width: calc(100% / 12 * 3 - 40px); margin: 20px; padding: 20px; box-sizing: border-box; }
@dmitrylavrik
@dmitrylavrik 6 років тому
width: calc(25% - 40px); - буду совершенствовать систему проверки
@Alias_s
@Alias_s 6 років тому
спасибо за ответ!
@olderwolf1
@olderwolf1 4 роки тому
@@dmitrylavrik а почему не 100%, вроде можно их оставлять?((
@user-cf7nv7tm4g
@user-cf7nv7tm4g 6 років тому
В 9 задании @media screen and (max-width: 900px) { .item { width: calc(100% / 12 * 6 - 40px); } } что не так ?
@ksuhinabod
@ksuhinabod 6 років тому
У меня та же фигня получается. Думаю баг приложения т.к. работает адаптация
@andrewochych4831
@andrewochych4831 5 років тому
.item { width: calc(50% - 40px); }
@user-km8mj9xf5c
@user-km8mj9xf5c 5 років тому
пишу так же - не работает
@evgeniyshapovalov2867
@evgeniyshapovalov2867 4 роки тому
Такая ж хрень. Тренажёр бомба, но дальше этого места он не работает.
@WhiteBear141981
@WhiteBear141981 4 роки тому
50% - 40px - интуитивно понятно. 1 элемент занимает 50%. (2 x 50%) - 40px (margin с обеих сторон)
@manilovv1983
@manilovv1983 5 років тому
В хроме в режиме эмуляции мобильных устройств при изменении ширины экрана элементы так и стоят по 4 в ряд :( и не соскакивают в 3, 2, 1. Почему такое может быть? Код списан с видео дословно.
@dmitrylavrik
@dmitrylavrik 5 років тому
Viewport наверно забыт)
@manilovv1983
@manilovv1983 5 років тому
Спасибо!
@llwebstylell242
@llwebstylell242 4 роки тому
Что с 8 заданием в тренажере? не могу пройти, все сделал правильно на мой взгляд. .container{ display: flex; flex-wrap: wrap; margin: 0 -20px; } .item{ width: calc(100% / 12 * 3 - 40px); margin: 0 20px; }
@llwebstylell242
@llwebstylell242 4 роки тому
Решил его выполнить , что бы увидеть миксины ваши... , возможно просто так сбросите код миксинов?) без прохождения тренажера, раз он "возможно встал".
@serhiitarasov1998
@serhiitarasov1998 6 років тому
Идея хорошая!!! Только после выполнения 9-го упражнения к 10-му перейти не получается.... кнопка не активна. Это только у меня так?
@dmitrylavrik
@dmitrylavrik 6 років тому
Значит код как-то немного не так написан, я в принципе все шаги тестировал. @media screen and (max-width: 900px){ .item{ width: calc(50% - 40px); } }
@serhiitarasov1998
@serhiitarasov1998 6 років тому
я написал вот так: @media screen and (max-width: 900px){ .item{ width: calc(100% / 12 * 6 - 40px); } }
@dmitrylavrik
@dmitrylavrik 6 років тому
Точно, надо добавить такой вариант в альтернативные.
@serhiitarasov1998
@serhiitarasov1998 6 років тому
Спасибо, Дмитрий тебе за то, что ты делаешь!!!
@user-kp6dn5qt4l
@user-kp6dn5qt4l 6 років тому
Когда много знаешь, возникает больше вопросов, нежели когда не знаешь ничего)
@-hack__you
@-hack__you 6 років тому
Что я сделал не так в 8 задании? .container{ display: flex; flex-wrap: wrap; margin: 0 -20px; } .item{ box-sizing: border-box; width: calc(100% / 12 * 3 - 40px); margin: 20px; padding: 20px; }
@dmitrylavrik
@dmitrylavrik 6 років тому
Система проверки ответов пока что несовершенна - width: calc(25% - 40px);
@user-ph8vo3wk9l
@user-ph8vo3wk9l 6 років тому
вы забыли пробелы возле операторов +-/*
@-hack__you
@-hack__you 6 років тому
Евгений Шовган пробелы я не забыл
@user-ph8vo3wk9l
@user-ph8vo3wk9l 6 років тому
извините
@getmanele
@getmanele 5 років тому
.container{ display: flex; flex-wrap: wrap; margin: 0 -20px; } .item{ width: calc(25% - 40px); margin: 20px; padding: 20px; box-sizing: border-box; }
@artyom-h
@artyom-h 4 роки тому
и как теперь перестать думать о шашлыке :)
@user-ph8vo3wk9l
@user-ph8vo3wk9l 6 років тому
* { margin: 0; padding: 0; box-sizing: border-box; } .row { margin: auto; display: flex; justify-content: space-between; max-width: 1280px; flex-wrap: wrap; background-color: aqua; } .item { margin: 16px 0; /* width: calc(25% - 30px);*/ background-color: antiquewhite; width: calc(100% / 12 * 3 - 30px); } убираем лишнюю обертку и margin с минусом
@dmitrylavrik
@dmitrylavrik 6 років тому
Всё бы хорошо, но justify-content space-between часто делает не то, что нужно, при неполностью заполненных строках. Например карточки товаров по 4 в строке, а на последней строке их может быть 1, 2, 3 или 4 в зависимости от количества товаров в базе. При 2 и 3 justify-content space-between очень жёстко сделает)
@anzh6714
@anzh6714 6 років тому
если не хочешь писать медиа запросы каждый раз вручную пользуй less или sass что-то вроде: .colLg(@rules){@media screen and (min-width: 1200px){@rules();}} .colMd(@rules){@media screen and (min-width: 992px) and (max-width: 1199px){@rules();}} .colSm(@rules){@media screen and (min-width: 768px) and (max-width: 991px){@rules();}} .colXs(@rules){@media screen and (max-width: 767px){@rules();}} .colXXs(@rules){@media screen and (max-width: 460px){@rules();}} и потом уже запихивай в них (в .colSm например) вот такое .container{ max-width: 1280px; margin: 30px auto; .row{ display: flex; flex-wrap: wrap; padding: 0 30px; margin: 0 -15px; .item{ background: #CCC; padding: 50px 10px; box-sizing: border-box; width: ~'calc(25% - 30px)'; border: 1px solid #333; margin: 15px; .colSm({width: ~'calc(50% - 30px)';}); // Здесь для Sm .colXs({width: ~'calc(100% - 30px)';}); // Здесь для Xs } } }
@anzh6714
@anzh6714 6 років тому
width: ~'calc(25% - 30px)'; - обязательно дибо значения % и px заключать в кавычки, либо все выражение. и не забываем пробеля в выражении между знаками вычислений ставить
@shorohovvs
@shorohovvs 6 років тому
для меня проще видео смотреть и параллельно делать в саблайме что-то не понял - перемотал - сделал как по мне, достаточно просто продиктовывать в видео все, что пишешь, чтобы можно было видео только слушать а в тренажере, чтобы прописать несчастный маржин, нужно перечитать 5 абзацев текста, после чего теряешь всю нить работы.
@abilmansurashim9042
@abilmansurashim9042 3 роки тому
oooo
@borbakborbakov5284
@borbakborbakov5284 4 роки тому
А ты знаеш что гаврилов из вэйапа твоему смарт гриду за деньги обучает?
@user-zw5wn9cn7t
@user-zw5wn9cn7t 6 років тому
Нормуль. Надо только над дизайном поработать. Без шашлыков, котов и прочего не комильфо.
@dmitrijponkin
@dmitrijponkin 6 років тому
Это очень круто! Обалденная идея, обязательно надо развивать! Вот только с шага 7 не получается перейти, сделал скриншот: prntscr.com/jipay0
@dmitrylavrik
@dmitrylavrik 6 років тому
А padding задать? Первый пункт задания)
@dmitrijponkin
@dmitrijponkin 6 років тому
Да, все верно, моя невнимательность. Прошу меня извинить.
@olderwolf1
@olderwolf1 4 роки тому
я на восьмом застрял((
@TinTaBraSS777
@TinTaBraSS777 3 роки тому
заче постоянно смотреть видео на твоем ютуб канале !?
@michaelaleks
@michaelaleks 6 років тому
Нет проблемы в том, что на сегодняшний день css-grid поддерживается на 83 %. Все браузеры, которые нужны - входят в эти 83 %. остальные 17 % это мертвый мусор, никому не нужный.
@dmitrylavrik
@dmitrylavrik 6 років тому
Очень сильно зависит от тематики сайта. Многие заказчики умеют по метрике смотреть процент использования какого-либо браузера. Глянул тут в интернет магазине качелей за последнюю неделю 6.8% людей с разных IE, в основном с 11. Заказчик никогда не откажется от такой части аудитории. Так-то я тоже против старых браузеров, но 83% маловато.
@egorrublev5529
@egorrublev5529 Рік тому
тема огонь
Learn Flexbox CSS in 8 minutes
8:16
Slaying The Dragon
Переглядів 1,3 млн
маленький брат прыгает в бассейн
00:15
GL Show Russian
Переглядів 3,6 млн
Простая адаптивная флекс-сетка с помощью calc
10:08
MaxGraph - cайты как страсть
Переглядів 4,3 тис.
300 Сайдбаров ► Как сверстать структуру сайта?
26:13
Хауди Хо™ - Просто о мире IT!
Переглядів 406 тис.
Уроки Bootstrap 5 - Система сетки
12:16
Web Developer Blog
Переглядів 42 тис.
Типичные приёмы адаптивной вёрстки
1:44:53
Дмитрий Лаврик
Переглядів 62 тис.
Полиморфные React компоненты
11:53
Михаил Непомнящий
Переглядів 12 тис.
маленький брат прыгает в бассейн
00:15
GL Show Russian
Переглядів 3,6 млн