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

Поделиться
HTML-код
  • Опубликовано: 15 май 2018
  • Трежанёр - dmitrylavrik.ru/training/proc...
    Сайт - dmitrylavrik.ru/video/html-cs...
    Курс - smartgrid.dmitrylavrik.ru/

Комментарии • 115

  • @grantorino3465
    @grantorino3465 6 лет назад +70

    Ну так это же очевидна и давно известная мудрость - "Скажи мне - и я забуду, покажи мне - и я запомню, дай мне сделать - и я пойму"

  • @user-kp6dn5qt4l
    @user-kp6dn5qt4l 6 лет назад +30

    Укоренилась стойкая ассоциация флексбокса с шашлыком, спасибо Дмитрий! )

  • @MrVolkoed
    @MrVolkoed 5 лет назад

    спасибо большое! годно! доходчиво! Успехов тебе в добрых делах!

  • @maltesky4671
    @maltesky4671 6 лет назад

    Ролик просто топ. Продолжай также!!

  • @ksuhinabod
    @ksuhinabod 6 лет назад

    Отличная идея с тренажером!!! Очень понравилось!

  • @user-ut3fx2zk4x
    @user-ut3fx2zk4x 6 лет назад

    Тренажер кайф!!! Очень классная идея!

  • @user-ue8cg8xp3j
    @user-ue8cg8xp3j 3 года назад

    Очень круто!Спасибо большое

  • @TamaraNikolaevna
    @TamaraNikolaevna 3 года назад +1

    С трудом, но прошла. Идея отличная!!!

  • @elenan894
    @elenan894 6 лет назад

    Отличная идея с тренажером. Очень понравилось

  • @user-kc5xm2cs3i
    @user-kc5xm2cs3i 6 лет назад

    И урок и тренажер оч. крутые. Дима как всегда молодец! Спасибо!

  • @user-np6fq5ir6d
    @user-np6fq5ir6d 4 года назад

    Тонкости, а ведь какие они важные, СПАСИБО.

  • @GutsWarhammer
    @GutsWarhammer 6 лет назад +2

    Конечно помогают. Нужно больше тренажёров)

  • @user-fu1so8bj8l
    @user-fu1so8bj8l 3 года назад

    Пишу комментари, чтобы продвинуть ролик в алгоритмах Ютуба. Спасибо автору за полезный ролик!

  • @_Fantom_.
    @_Fantom_. 4 года назад +4

    Спасибо, очень полезный и познавательный урок!

  • @serhiichernyshov7172
    @serhiichernyshov7172 6 лет назад

    Спасибо! Очень полезная инфа!

  • @kvarkent
    @kvarkent 6 лет назад

    Дима ты большой молодец ! очень доступно, тренажер крут.

  • @olatera
    @olatera 6 лет назад +1

    Чувак, я твой фанат! 😍

  • @anyaegorova495
    @anyaegorova495 2 года назад

    Отлично все объяснили, спасибо!!)

  • @bramduss
    @bramduss 2 года назад

    Очень толковое видео. Бриллиант на ютубе в данной теме. Спасибо автор.

  • @electricdrive21
    @electricdrive21 6 лет назад

    Классная идея. Плюсую!

  • @justspartak
    @justspartak 4 года назад

    Нужно больше тренажёров!

  • @websummon5266
    @websummon5266 6 лет назад

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

  • @sv.sesvjanish5034
    @sv.sesvjanish5034 6 лет назад

    Интерактивный тренажёр - хорошая идея!

  • @user-eh7io8bp1h
    @user-eh7io8bp1h 5 лет назад

    Очень все доступно объяснил

  • @alexpro8430
    @alexpro8430 6 лет назад

    Хорошая задумка.

  • @zhamalnurmanov6751
    @zhamalnurmanov6751 5 лет назад

    спасибо за тренажёр

  • @pavel-256
    @pavel-256 6 лет назад

    Хороший, понятный урок. Тренажер штука нужная. Прошел задания, помогло упорядочить кашу в голове. В полноэкранном режиме F11 все видно нормально. Мне лично все понравилось

  • @olegantonina133
    @olegantonina133 4 года назад

    Все круто!

  • @romanfanta6347
    @romanfanta6347 6 лет назад

    Да,... шаШлык помню) Красавчик, хорошо объяснил.

  • @user-wo7vc6ow6d
    @user-wo7vc6ow6d 4 года назад

    Отлично, я за!

  • @user-dv8sl7xh7d
    @user-dv8sl7xh7d 6 лет назад

    Flexbox-Это тема !

  • @ivanbiziuk9919
    @ivanbiziuk9919 6 лет назад

    Классная тема)

  • @electfreak
    @electfreak 6 лет назад +1

    Дмитрий, наконец-то с npp перешли на sublime!

  • @oksanafedo971
    @oksanafedo971 6 лет назад +1

    Круто.

  • @user-et3fj5he9h
    @user-et3fj5he9h 6 лет назад

    Очень понравилось! За исключением нескольких грамматических ошибок (в стиле Дмитрия :)) и несовершенства системы проверки ответов все очень круто. Класно было бы разных уровней сложности добавить и рандомных цифр в задачах (чтоб не автоматом...) Класс!!!
    P.S. Вижу курс по WP появился - это тот что ранее был, или доработанный?

  • @dmytro_pavliuchenko
    @dmytro_pavliuchenko 6 лет назад +3

    идея с тренажёром хорошая

  • @elitcontent584
    @elitcontent584 6 лет назад

    Дмитрий! Спасибо, за тренажер. Очень интересно и полезно. Как я понял, вы разработчик smart-grid ?
    Установил потестил, интересная вещь.
    Если не трудно, ответьте на 2 вопроса.
    1. В качестве препроцессора, как я понял, можно использовать любой, в том числе sass|scss просто указав его при генерации сетки, или я не прав?
    2. В 2-х словах, за что отвечает примесь .shift и другие ее разновидности - это что-то вроде offset в bootstrap? Или что-то другое?
    В качестве улучшения тренажера, на мой субъективный взгляд:
    1. Примеры нужно вынести в верх экрана;
    2. При описании того, что нужно сделать для выполнения задания, не стоит так детально описывать. Достаточно просто указать, к примеру, для того, чтобы выполнить задания используйте свойство justify-content. А не писать свойство, значения, и элемент которому его добавить. Это, ИМХО, лишнее. Ведь тренажер - своеобразный тест, после прочтения статьи. Спасибо!

  • @WhiteBear141981
    @WhiteBear141981 4 года назад

    Огонь!

  • @dispute777
    @dispute777 5 лет назад

    Спасибо за труд! В ноябре планирутете платные уроки по верстке?

  • @YusupOzdoyev
    @YusupOzdoyev 2 года назад

    спасибо!

  • @martoyas
    @martoyas 2 года назад

    тема топ, вариант хорош

  • @slava_po
    @slava_po 6 лет назад

    Крутая штука! Хорошая работа Дмитрий! Усваевается материал на 5 из 5. Вот что бы предложил изменить: шрифт в описании на 14, межстрочный интервал поставил бы 16 или 18, и font-weght уменьшил (поиграться). Мне кажется, что текст как будто разорван, строки сами по себе каждая (хотя возможно вы эту цель и преследовали). Это даст больше места, сделает текст компактным и более читаемым и даст больше места для нижней части эмулятора. И предложил бы сделать возможным возвращаться на предыдущие упражнения.

  • @igorenzia
    @igorenzia 5 лет назад

    отличный тренажер. а может запишешь курс по написанию тренажера. (PHP, JS, SQL) интересно написать для себя. понять как работает и потренироваться по ходу написания :)

  • @user-pn2wz2ns8q
    @user-pn2wz2ns8q 5 лет назад +3

    А как рассчитывать колонки, если, к примеру, 2 итема, один занимает 5 колонок, второй - 7 колонок

  • @satsat9791
    @satsat9791 3 года назад

    могу ошибаться, но слева и справа остаются висеть хвосты блока row, образованные от отрицательных марджинов. Если они висят в пустоте то проблем нет. Если вы попробуете слева и справа от блока container воткнуть что-то еще (например меню, рекламу, блок новостей), то возникнут проблемы. Метод явно имеет ограничение по применению, о которых в видео вроде как не сказано

  • @MrReflection540
    @MrReflection540 5 лет назад +2

    а если например один элемент в строке должен занимать 6 колонок, в второй 4 и 2 колонки как оставшееся расстояние между ними?
    Как тогда рассчитывать?

  • @pro-verstka
    @pro-verstka 6 лет назад

    Вариант который я всегда использую это у row поставить margin: -30px 0 0 -30px; а у item padding: 30px 0 0 30px, и можно задавать ширину без всяких calc

  • @MrSlavjon
    @MrSlavjon 6 лет назад +8

    Всё класс, но так привык к Emmet, что просто ппц, может получится добавить в тренажёр поддержку Emmet? :)

  • @Tube26218
    @Tube26218 5 лет назад +1

    Формула расчета ширины: 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

  • @portfel4ik858
    @portfel4ik858 3 года назад +1

    Тренажеры отличная вещь. Если бы еще на более реальном примере. Т.к. на кубиках, иногда понимание принципа, не происходит.

  • @PacoOfficial
    @PacoOfficial 6 лет назад

    супер

  • @samelodyn
    @samelodyn 6 лет назад

    А какая есть альтернатива по заданию количества столбцов/строк вместо Бутстраповского подхода?

  • @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;
    }
    Но в итоге кнопка "Перейти к следующему" осталась неактивной.

  • @dmytrylysytsya238
    @dmytrylysytsya238 6 лет назад

    чтобы достичь прилегания блоков слева и справа на каком-то англоязычном ресурсе предлагалось применять свойство justify-content:space-evenly.Т.е оно должно исправить ошибку разработчиков флексов по неполному набору свойств.Приходилось применять это свойство?

  • @Alias_s
    @Alias_s 6 лет назад +2

    на 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 лет назад +1

      width: calc(25% - 40px); - буду совершенствовать систему проверки

    • @Alias_s
      @Alias_s 6 лет назад

      спасибо за ответ!

    • @olderwolf1
      @olderwolf1 4 года назад

      @@dmitrylavrik а почему не 100%, вроде можно их оставлять?((

  • @serhiilytvyn8753
    @serhiilytvyn8753 6 лет назад

    Очень полезная тема и после ваших классных и понятных объяснений материала тренажер позволяет очень хорошо закрепить в памяти пройденный материал. Нужно немножко доработать удобство использования тренажера (описал как по моему субъективному мнению нужно это сделать - prntscr.com/jjdgko)

  • @uladzislaunazarau8184
    @uladzislaunazarau8184 3 года назад

    За шашлык лайк)

  • @doomymax577
    @doomymax577 6 лет назад

    надо вам Дмитрий сделать упражнения так чтобы люди сами думали куда вписывать что надо - а то там получается что всё время линейный сюжет и все понятно что делать

  • @antonbeletsky1277
    @antonbeletsky1277 Год назад

    есть отступы между строками и стобацами вконтейнере

  • @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;
    }

  • @manilovv1983
    @manilovv1983 6 лет назад

    В хроме в режиме эмуляции мобильных устройств при изменении ширины экрана элементы так и стоят по 4 в ряд :( и не соскакивают в 3, 2, 1. Почему такое может быть? Код списан с видео дословно.

  • @user-cf7nv7tm4g
    @user-cf7nv7tm4g 6 лет назад +3

    В 9 задании @media screen and (max-width: 900px) {
    .item {
    width: calc(100% / 12 * 6 - 40px);
    }
    }
    что не так ?

    • @ksuhinabod
      @ksuhinabod 6 лет назад +2

      У меня та же фигня получается. Думаю баг приложения т.к. работает адаптация

    • @andrewochych4831
      @andrewochych4831 5 лет назад +2

      .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 с обеих сторон)

  • @vvv7220
    @vvv7220 5 лет назад

    тренажер +

  • @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 лет назад +1

      Спасибо, Дмитрий тебе за то, что ты делаешь!!!

    • @user-kp6dn5qt4l
      @user-kp6dn5qt4l 6 лет назад

      Когда много знаешь, возникает больше вопросов, нежели когда не знаешь ничего)

  • @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 года назад

      Решил его выполнить , что бы увидеть миксины ваши... , возможно просто так сбросите код миксинов?) без прохождения тренажера, раз он "возможно встал".

  • @xerurg88
    @xerurg88 3 года назад

    можно ли такое в 2021 сделать на свойстве gap?

    • @dmitrylavrik
      @dmitrylavrik  3 года назад

      caniuse.com/?search=gap в 2023 авось и можно будет)

  • @-hack__you
    @-hack__you 6 лет назад +1

    Что я сделал не так в 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 лет назад +2

      Система проверки ответов пока что несовершенна - width: calc(25% - 40px);

    • @user-ph8vo3wk9l
      @user-ph8vo3wk9l 6 лет назад

      вы забыли пробелы возле операторов +-/*

    • @-hack__you
      @-hack__you 6 лет назад

      Евгений Шовган пробелы я не забыл

    • @user-ph8vo3wk9l
      @user-ph8vo3wk9l 6 лет назад +1

      извините

    • @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 года назад +1

    и как теперь перестать думать о шашлыке :)

  • @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 заключать в кавычки, либо все выражение. и не забываем пробеля в выражении между знаками вычислений
      ставить

  • @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 очень жёстко сделает)

  • @shorohovvs
    @shorohovvs 6 лет назад

    для меня проще видео смотреть и параллельно делать в саблайме
    что-то не понял - перемотал - сделал
    как по мне, достаточно просто продиктовывать в видео все, что пишешь, чтобы можно было видео только слушать
    а в тренажере, чтобы прописать несчастный маржин, нужно перечитать 5 абзацев текста, после чего теряешь всю нить работы.

  • @abilmansurashim9042
    @abilmansurashim9042 3 года назад

    oooo

  • @user-zw5wn9cn7t
    @user-zw5wn9cn7t 6 лет назад

    Нормуль. Надо только над дизайном поработать. Без шашлыков, котов и прочего не комильфо.

  • @dmitrijponkin
    @dmitrijponkin 6 лет назад

    Это очень круто! Обалденная идея, обязательно надо развивать!
    Вот только с шага 7 не получается перейти, сделал скриншот: prntscr.com/jipay0

    • @dmitrylavrik
      @dmitrylavrik  6 лет назад +1

      А padding задать? Первый пункт задания)

    • @dmitrijponkin
      @dmitrijponkin 6 лет назад

      Да, все верно, моя невнимательность. Прошу меня извинить.

    • @olderwolf1
      @olderwolf1 4 года назад

      я на восьмом застрял((

  • @borbakborbakov5284
    @borbakborbakov5284 4 года назад

    А ты знаеш что гаврилов из вэйапа твоему смарт гриду за деньги обучает?

  • @TinTaBraSS777
    @TinTaBraSS777 3 года назад

    заче постоянно смотреть видео на твоем ютуб канале !?

  • @michaelaleks
    @michaelaleks 6 лет назад

    Нет проблемы в том, что на сегодняшний день css-grid поддерживается на 83 %. Все браузеры, которые нужны - входят в эти 83 %. остальные 17 % это мертвый мусор, никому не нужный.

    • @dmitrylavrik
      @dmitrylavrik  6 лет назад +2

      Очень сильно зависит от тематики сайта. Многие заказчики умеют по метрике смотреть процент использования какого-либо браузера. Глянул тут в интернет магазине качелей за последнюю неделю 6.8% людей с разных IE, в основном с 11. Заказчик никогда не откажется от такой части аудитории.
      Так-то я тоже против старых браузеров, но 83% маловато.

  • @egorrublev5529
    @egorrublev5529 Год назад

    тема огонь