Col sm bootstrap: Grid system · Bootstrap

Col sm bootstrap: Grid system · Bootstrap

Различная высота столбца в Bootstrap | Кэрол Скелли | WDstack

Примерно раз в неделю в Stack Overflow я вижу вопрос ровно тот же . Это , всегда имеет один и тот же ответ, но вопрос задается по-разному…

— «Почему новая строка сетки Bootstrap выглядит некрасиво

— «Почему в сетке моего изображения пробела

— «Почему столбцы Bootstrap переносятся неравномерно ?

— «Как я могу выровнять изображения разной высоты?»

— «Как уменьшить пробел между строками сетки?»

— «Почему столбцы сетки Bootstrap не переносятся равномерно?»

— «Что вызывает у меня проблемы с разметкой сетки

— «Как мне сложить столбца разной высоты?»

__” Нерегулярное обтекание колонок начальной загрузки”

Картинки всегда помогают, так что вот наглядное изображение. Обратите внимание, что столбцы, начиная с 4-го столбца, не переносите равномерно на следующую строку…

В идеале 4-й столбец должен располагаться под 1-м.

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

Проблема НЕ вызвана:

— номером столбцов.

— Тип содержимого внутри столбцов: Изображения, текст, или оба .

— Ширина столбцов.

— Наличие более 12 столбцов в одном файле . ряд элемент*.

Разные типы контента или ширина не вызывает проблему

Проблема вызвана одной вещью:

— Содержимое внутри колонок. Высота контента делает каждый столбец разной высотой .

Различное содержимое Высота действительно вызывает проблему0003 «проблема с высотой» .

Что действительно вызывает проблему высоты?

Проблема высоты Bootstrap возникает из-за того, что столбцы ( col-*-* ) используют float:left . Когда столбец «плавающий», он выбивается из обычного потока документа. Он сдвигается влево или вправо, пока не коснется края содержащего его прямоугольника. Таким образом, когда у вас неравномерная высота столбцов, правильное поведение состоит в том, чтобы складывать их к ближайшей стороне.

Прежде чем рассматривать решения, я хочу дополнительно уточнить проблему высоты .

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

Некоторые дизайнеры думают, что вы должны ограничить каждый . row 12 столбцами, и не понимают перенос столбца . К сожалению, я даже видел это плохое руководство в учебнике W3Schools Bootstrap.

Это руководство вводит в заблуждение:

«Обратите внимание, что числа в .col-*-* всегда должны в сумме давать 12 для каждой строки». — W3schools.com

Пожалуйста, , если вы думаете, что «в каждой строке может быть только 12 столбцов», или если вы не понимаете, почему в .row , может быть больше 12 столбцов. не читай дальше и читать вместо !

В большинстве случаев высота содержимого равна unknown , но есть несколько способов сделать каждый столбец такой же высоты, как и соседние столбцы… — Сделайте столбцы той же высоты, что и самый высокий столбец .

В этом сценарии каждая строка столбцов будет иметь высоту самый высокий столбец в строке. Это широко используемое решение проблемы высоты . Есть несколько вариантов сделать столбцы той же высоты, что и самый высокий столбец .

Важно! Люди часто предлагают использовать такие трюки, как table-cell или огромные отрицательные поля и заполнение , чтобы сделать столбцы одинаковой высоты. Когда дело доходит до адаптивного дизайна, это плохие идеи. Если вы не понимаете, почему эти нежизнеспособны «равной высоты» решения , или перенос столбцов дальше не читайте, а читайте это.

По состоянию на 2017 год, CSS3 flexbox является лучшим вариантом равной высоты только для CSS , чтобы сделать столбцы одинаковой высоты.

 .row.display-flex { 
display: flex;
flex-wrap: обертка;
}
.row.display-flex > [class*='col-'] {
display: flex;
flex-direction: столбец;
}

Перед флексбоксом…

Различная высота приводит к неравномерному обтеканию столбцов

Проблема с высотой решена с помощью flexbox одинаковой высоты…

Использовать flexbox для создания столбцов одинаковой высоты , чтобы быть равными по высоте:

Помимо создания столбцов одинаковой высоты с помощью flexbox, другой вариант — сделать содержимое столбца равным одинаковой высоты. Однако это вариант только для около вариантов использования.

Рассмотрим сетку «карточек» с текстовым заголовком и изображением в каждой. Изображения имеют одинаковую известную высоту, но иногда заголовки длиннее и, следовательно, заворачиваются. Классическая проблема высоты из-за float:left становится очевидной…

В этом случае простым решением может быть принудительное размещение заголовков в одну строку и предотвращение переноса текста:

 .panel-body h3 { 
overflow : скрытый;
пробел: nowrap;
переполнение текста: многоточие;
}

Проблема с высотой решена (длинные заголовки усечены многоточием)…

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

Одинаковая высота Вариант 3 —
Установить статическую высоту столбца:

Наконец, самое очевидное из решений CSS «одинаковой высоты». Я упоминаю об этом в последнюю очередь, потому что высота наших столбцов обычно неизвестна. Но это все равно самый простой вариант…

 .row.force-height>div { 
высота: 500 пикселей;
}

Одинаковая высота Вариант 4 —
Плагины JavaScript или jQuery:

Основное внимание в этой статье уделяется CSS, но есть несколько вариантов JavaScript для создания блоков div одинаковой высоты. Одним из наиболее популярных вариантов является плагин match-heights.

Другим решением проблемы высоты является использование «clearfix» , которое фактически удаляет плавающие элементы из крайнего правого столбца, чтобы следующий соседний столбец мог корректно переноситься в крайнее левое положение следующей строки.

Bootstrap 3 Clearifx

Clearfix Вариант 1 —
Адаптивный «сброс» DIV в HTML-разметке:

официальный рекомендуемый Bootstrap подход к решению проблемы высоты известен как «сброс ». Преимущество этого варианта clearfix заключается в том, что он отзывчивый, и все, что вам нужно, уже включено в Bootstrap.

Как объясняется в документации, вы просто добавляете div .clearfix для необходимых окон просмотра или уровней сетки. Итак, в нашей адаптивная верстка, нам нужен клирфикс каждые 2 столбца на маленьких экранах (xs) и каждые 3 столбца на больших (md и выше) экранах.

 

1

2




3




4




7
8




9

...

Проблема высоты решена с помощью адаптивного сброса…

Адаптивный сброс Демонстрация:
http://www. codeply.com/go/HmRrGFqrvl

Единственное, что может вызвать некоторые затруднения при адаптивном сбросе, — это динамически генерируемые столбцы. Итеративный цикл, который генерирует столбцы, должен вставлять соответствующий clearfix div после каждого столбца X, что может стать более сложным для нескольких уровней сетки.

Clearfix Option 2 —
Clearfix только для CSS с использованием селекторов n th-child:

Это решение аналогично предыдущему, за исключением того, что оно выполняется с использованием CSS n th-child(..) селекторы для конечных (самых правых) столбцов в каждой «строке» окна просмотра.

Поскольку средний (-md-) экран просмотра в Bootstrap применяется к экранам шириной 992 пикселя и выше, мы «очищаем» наши плавающие элементы через каждые 3 столбцов на больших экранах.

 @media (min-width:992px){ 
.row.auto-clear .col-md-4:nth-child(3n+1){clear:left;}
}

Аналогично очищаем числа с плавающей запятой менее 992 пикселей (-xs- и -sm-) каждые 2 столбцов на экранах меньшего размера. Хотя мы не используем col-sm-6 в разметке предполагается, поскольку col-xs-6 означает «маленький и вверху», если специально не переопределено для уровня сетки sm

 @media (min-width:992px){ 
.row.auto-clear .col-md-4:nth-child(3n+1){clear:left;}
}@media (max-width:991px){
.row.auto-clear .col-xs -6:nth-child(2n+1){clear:left;}
}

Демо Clearfix только для CSS:
http://www.codeply.com/go/3v7Q9kQVR6

Как я уже говорил, тип содержимого столбцов не имеет значения, а clearfix будет работать в во всех случаях. Вот пример столбцов clearfix с адаптивными таблицами , которые различаются по высоте.

Любой подход clearfix (HTML или CSS) будет работать, чтобы очистить float:left и исправить проблему неравномерного переноса сетки высоты . Однако важно отметить, что clearfix не является «каменным» решением.

Важно понимать, что ни «одинаковая высота», ни решение clearfix не превратят столбцы в макет, подобный масонству..

Макет Masonry

В Bootstrap 3.x нет ничего родного, что могло бы создать такой тип макета. По сути, макета Masonry выходят за рамки Bootstrap 3 , но все еще возможно с использованием опций на основе CSS или JavaScript.

Вариант Masonry 1 —
— Использовать столбцы CSS3 :

 .row.make-columns { 
-moz-column-width: 19em;
-webkit-column-width: 19em;
-moz-column-gap: 1em;
-webkit-column-gap:1em;
}.row.make-columns > div {
display: inline-block;
прокладка: .5rem;
ширина: 100%;
}

Masonry с столбцами CSS3 Демонстрация:
http://www.codeply.com/go/qnPaEqNcgE

Столбцы CSS3 будут предлагаться в предстоящем Bootstrap 4. В настоящее время с этим решением столбцы всегда упорядочены по сверху вниз , а затем слева направо. Иногда это является недостатком в случаях использования, когда ожидается нормальный поток слева направо.

Masonry Вариант 2 —
— Используйте «Masonry» или другой аналогичный плагин jQuery :

Другой способ создать макет Masonry — использовать очень популярный плагин или один из многих других. Вот пример Bootstrap Masonry для начала.

Таким образом, есть 3 способа решить проблему высоты Bootstrap :

Столбцы одинаковой высоты

Clearfix

«Масонское» решение

Все еще здесь? С бета-версией Bootstrap 4, «проблема с высотой» перестанет быть проблемой, поскольку Bootstrap 4 использует flexbox, и поэтому столбцы в каждой строке будут иметь одинаковую высоту. Хотя, возможно, это внесет альтернативную проблему? https://stackoverflow.com/questions/44710785/bootstrap-4-i-dont-want-columns-to-have-the-same-height/44710904

Пожалуйста, дайте мне знать ваши мысли в комментариях!

html — Bootstrap-framework — col-sm — сетка для маленьких экранов не работает

Задавать вопрос

спросил

Изменено 1 год, 2 месяца назад

Просмотрено 499 раз

Я много чего перепробовал, но не смог найти решение своей проблемы.

Я хочу выровнять 3 разные части определенным образом для всех типов экранов, но col-sm и col-xs из бутстрапа не работают.

Я пробовал это:

 
<дел> <дел> а
<дел> б
<дел> с

Но он отображается в одной строке только для больших и средних экранов, а не для маленьких.

Единственный способ заставить это работать, это написать col вместо col-sm-4 , но если я так сделаю, я не смогу манипулировать сеткой так, как мне хотелось бы

1

Чтобы решить проблему, когда ширина меньше 576px , следует применить стиль col-4 .

 		
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Содержание

Bootstrap Grid: освоение наиболее полезных свойств Flexbox

В этой статье я познакомлю вас с ключевыми классами Bootstrap CSS для построения макетов с помощью системы сетки Bootstrap.

Bootstrap 4 использует Flexbox в качестве основы для своей сеточной системы. Я объясню свойства CSS Flexbox, которые лежат в основе функциональности новой сетки, и определю, как работают служебные классы Flex Bootstrap, чтобы помочь вам быстро и безболезненно создавать великолепные макеты.

Что такое Flexbox?

Давайте сначала представим Flexbox . Он обозначает гибкий блок и является передовой системой макетов CSS, которая позволяет легко создавать макеты для динамических или неизвестных размеров экрана. (Контейнер flex имеет возможность настраивать и контролировать размер своих дочерних элементов для адаптации к различным областям просмотра.)

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

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

Введение в систему Bootstrap Grid

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

Среди новых функций последней системы сетки Bootstrap вы найдете xl прерывания сетки xl (очень большой), соответствующую очень большому размеру экрана, и использование Flexbox вместо плавающих элементов в качестве базового механизма компоновки.

Ключевые классы системы начальной загрузки

Вы можете создать макет, используя сеточную систему Bootstrap, применив несколько классов Bootstrap: .row , .row и .col-*-* . (Первый * в .col-*-* должен быть заменен спецификатором точки останова, таким как xs, sm, md, lg, xl а второй * должен быть заполнен размером диапазона столбца. Сумма всех столбцы должны быть равны 12.)

Давайте теперь посмотрим на основные компоненты сетки Bootstrap.

Контейнер

Контейнер является внешней оболочкой для сетки. Это div который имеет класс .container для фиксированной ширины или .container-fluid для 100% полной ширины.

Строка

Строка служит логическим контейнером для столбцов.

колонка

Столбец – это то, что делает блок в сетке. Это должно содержаться в ряд.

Система сетки Bootstrap предоставляет следующие дополнительные классы столбцов:

  • .col-xs-* : предназначен для очень маленьких экранов шириной менее 576 пикселей
  • .col-sm-* : предназначен для небольших экранов с шириной, равной или превышающей 576 пикселей
  • .col-md-* : предназначен для средних экранов с шириной> = 768 пикселей
  • .col-lg-* : предназначен для больших экранов с шириной> = 992px
  • . col-xl-* : предназначен для очень больших экранов, ширина которых равна или превышает 1200 пикселей .

Вам не нужно добавлять несколько классов, если вы хотите указать одинаковую ширину для разных размеров экрана; просто добавьте класс с наименьшей точкой останова. Так, например, вместо

.col-sm-6 и .col-md-6 вам нужно только применить .col-sm-6 .

Схемы загрузочной сетки с Flexbox против Floats

Благодаря Flexbox вы можете легко достигать таких вещей, как столбцы одинаковой высоты или столбцы одинаковой ширины, чего раньше можно было достичь только с помощью хаков CSS.

CSS-методы float и clearfix для создания макетов были среди таких хаков, которые затрудняли создание и отладку сложных макетов.

Например, рассмотрим макет с двумя столбцами. Если вы создадите этот макет с помощью Bootstrap 3, он будет выглядеть так:

Если вы создаете тот же макет с Bootstrap 4, это то, что у вас есть:

С помощью Bootstrap 4 и его сетки на основе flexbox вы получите более реалистичный столбец (как в таблице), поскольку столбцы в одной строке будут занимать одинаковую высоту.

Давайте рассмотрим макеты столбцов одинаковой ширины. Благодаря Flexbox вы можете легко разделить доступное пространство между несколькими столбцами в одной строке. Если вы создаете сетку с несколькими столбцами без указания ширины столбца (т.е. с использованием классов .col-* ), доступное пространство будет автоматически и поровну разделено между этими столбцами.

Вот простой и быстрый пример:

<div> <div> .col </div> <div> .col </div> <div> .col </div> <div> .col </div> </div> 

Четыре экземпляра .col-sm будут автоматически иметь ширину 25% от маленькой точки останова и выше.

С некоторым минимальным стилем, вот что вы получаете:

Flexbox с автоматическими полями

Сочетание Flexbox с автоматическими полями приводит к некоторым интересным трюкам.

Например, посмотрите на приведенный выше макет: вы можете расположить элементы справа от элемента, добавив к . mr-auto класс Bootstrap .mr-auto , который обозначает margin-right: auto; в обычном CSS, или также поместите некоторые элементы слева от указанного элемента с помощью класса Bootstrap .ml-auto ( margin-left: auto; в обычном CSS). Это можно увидеть как перемещение элемента с .mr-auto или .ml-auto в .mr-auto или .mr-auto левое положение соответственно, а других элементов – в противоположное направление.

Вы можете достичь этого результата либо горизонтально, либо вертикально. Чтобы добиться такого же поведения, перемещая flex-элементы вверх или вниз (а не вправо или влево), вам нужно использовать mb-auto ( margin-bottom: auto; ) и mt-auto ( margin-top: auto; ), установите flex-direction для column и примените класс align-items-(start|end) .

Полезные концепции Flexbox для работы с классами служебной программы Bootstrap Flex

Bootstrap 4 использует специальные классы утилит flex , которые могут показаться эзотерическими тем, кто никогда не слышал о Flexbox или не знает, как ведут себя контейнеры flex и элементы flex.

Например, Bootstrap теперь применяет свойство display:flex к своим элементам контейнера сетки. Кроме того, Bootstrap позволяет превратить любой HTML-контейнер в гибкий контейнер, просто применив .d-flex к выбранному элементу.

Также доступны .d-sm-flex классы, такие как .d-sm-flex .d-md-flex и т. Д.

Однако, если вы не знаете, что такое гибкий контейнер и как он влияет на его дочерние элементы, использование вспомогательных классов Bootstrap может быть проблематичным. То же самое можно сказать и о других утилитах flex, таких как .flex-row , .flex-row-reverse , .flex-column и .flex-column-reverse .

Давайте кратко рассмотрим, как работает Flexbox. Скорее всего, вы найдете это полезным при работе с служебными классами Bootstrap flex.

Flex контейнеры

Flexbox определяет контейнер flex, применяя свойство display со значениями flex или inline-flex :

. mycontainer { display: flex; } 

Утилита Bootstrap flex для создания flex-контейнера называется d-flex .

Гибкие элементы

Каждый прямой дочерний элемент гибкого контейнера превращается в гибкий элемент.

Вы можете определить направление элементов Flex, используя свойство CSS flex-direction с одним из следующих значений: row , row-reverse , column и column-reverse .

  • row устанавливает горизонтальное направление слева направо
  • row-reverse устанавливает горизонтальное направление справа налево
  • column устанавливает вертикальное направление сверху вниз
  • column-reverse устанавливает вертикальное направление снизу вверх.

Bootstrap использует классы flex-row ,

flex-row-reverse , flex-column и flex-column-reverse для определения направления элементов Flex.

Кроме того, Flexbox позволяет явно изменять визуальный порядок определенных элементов Flex, используя свойство order , которое по умолчанию равно нулю:

.item { order: 1; } 

Bootstrap предлагает свои собственные служебные классы для создания первого, последнего элемента flex или для сброса свойства порядка в порядок DOM по умолчанию. Например, чтобы элемент flex отображался первым по отношению к его родным элементам, добавьте order-1 к разметке.

Выравнивание элементов Flex

Flexbox позволяет быстро и легко выровнять гибкие элементы любым удобным для вас способом.

Например, свойство justify-content в контейнере flex позволяет выравнивать элементы flex по главной оси (по умолчанию для оси x, которую можно изменить, установив для

flex-direction значение column ). Доступные значения:

  • flex-start : это начальное значение, которое выстраивает элементы в начале контейнера
  • flex-end выравнивает элементы по концу родительского элемента
  • center выравнивает элементы по центру контейнера
  • space-between создает пространство между flex-элементами после их размещения
  • space-around создает равное количество пространства справа и слева от каждого элемента flex.

Вспомогательные классы Bootstrap для применения значений justify-content к элементам:

  • justify-content-start
  • justify-content-end
  • justify-content-center
  • justify-content-between
  • justify-content-around

Свойство flexbox align-items позволяет изменять выравнивание flex-элементов по поперечной оси. (Если вы установите основную ось как горизонтальную, поперечная ось будет вертикальной, и наоборот.)

Возможные значения для align-items :

  • stretch : это начальное значение, которое заставляет flex-элементы растягиваться до высоты их самых высоких родственных элементов
  • flex-start выстраивает позиции в начале flex-контейнера
  • flex-end выстраивает элементы в конце гибкого контейнера
  • center отвечает за центрирование гибкого элемента внутри своего контейнера.

Вы можете быстро применить это поведение с помощью следующих классов Bootstrap:

  • align-items-stretch
  • align-items-start
  • align-items-end
  • align-items-center

Посмотрите код этого пера для примера того, как вы можете применять вспомогательные классы Bootstrap flex:

Вы можете найти другие доступные утилиты в документах Bootstrap flex .

Вывод

В этой статье мы рассмотрели, как Flexbox делает систему сетки Bootstrap более универсальной с такими функциями, как автоматические макеты одинаковой ширины и столбцы одинаковой высоты. Затем мы рассмотрели некоторые свойства Flexbox, которые являются ключевыми для освоения классов утилит Flex Bootstrap и получения максимальной отдачи от их мощных возможностей компоновки.

Если вы слышали о Bootstrap, но откладывали его изучение, потому что оно кажется слишком сложным, то изучите наш курс Введение в Bootstrap 4, чтобы быстро и весело познакомиться с мощью Bootstrap.

Научитесь использовать col-sm в своем коде

Когда мы узнали об использовании служебных классов Bootstrap, мы обсудили те, которые используются для изменения размера. В этой главе вы познакомитесь с Bootstrap Col-SM — небольшими классами, которые вы можете использовать при создании макетов Bootstrap.

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

Чтобы продолжить изучение и узнать больше о средних классах (для экранов шире 768 пикселей), посетите наш следующий урок. Кроме того, не забывайте, что вы всегда можете вернуться к нашему руководству по очень маленьким классам для экранов, которые уже, чем 576 пикселей. 1. Bootstrap Col-SM: основные советы
  • Система сетки Bootstrap 4 предлагает набор адаптивных классов, чтобы указать, на каких экранах работает определенный макет.
  • Классы
  • Bootstrap Col-SM ( small ) применяют класс столбца сетки к элементу, когда экран шире 576 пикселей.
  • Вы можете добавить их в свои макеты, набрав col-sm-* .

Использование малых сеток

Bootstrap small Классы столбцов сетки применяются, когда экран шире 576 пикселей, и сворачивается в противном случае:

col-sm-3

col-sm-6

Столбцы, подобные приведенным выше, создаются с использованием префикса класса

.col-sm-* :

Пример

 
<дел> <дел> ...
<дел> ...

Попробуйте вживую. Учитесь на Udacity

Pros

Основные функции