Як відцентрувати вміст у стовпці початкового завантаження?


126

Я намагаюся відцентрувати вміст колонки. Не схоже, що це працює для мене. Ось мій HTML:

<div class="row">
   <div class="col-xs-1 center-block">
       <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
   </div>
 </div>

Демонстрація JSFiddle


1
що ви намагаєтесь зробити, вирівняти spanпо центру .col-xs-1або вирівняти col-xs-1по центру .row?
Ігор Іванча

1
Я намагаюся вирівняти будь-який вміст усередині стовпця, а ще краще - у комірці.
Позначте

Ризикуючи здатися німим, відцентрувати його вздовж якої осі?
Люк Пуплетт,

Відповіді:


203

Використання:

<!-- unsupported by HTML5 -->
<div class="col-xs-1" align="center">

замість

<div class="col-xs-1 center-block">

Ви також можете використовувати bootstrap 3 css:

<!-- recommended method -->
<div class="col-xs-1 text-center">

Bootstrap 4 тепер має гнучкі класи, які будуть центрувати вміст:

<div class="d-flex justify-content-center">
   <div>some content</div>
</div>

Зверніть увагу, що за замовчуванням це буде, x-axisякщо flex-directionце не такcolumn


1
і до речі поміняти col-xs-1 на col-xs-12. це може бути ваша друкарська помилка.
інерція

48
Атрибут <div> align не підтримується в HTML5.
Abeer Sul

8
Навіть якщо атрибут "align" все ще був доступним, вважалося поганою практикою використовувати його протягом тривалого часу. Використовуйте клас "текстовий центр"
Омар Абдель Барі,

Дякую! Це вирішило це і для мене, використовуючи метод bootstrap 3.
Pat Doyle,

Клас "text-center" для мене не працював, оскільки у мене є одна кнопка та один завантажувальний div spinner. Додано клас завантаження "d-flex justify-content-around", вирішений для мене.
Роджер Сампайо

82

[Оновлено грудень 2020]: Тестована та включена 5.0версія Bootstrap.


Я знаю, що це питання давнє. І питання не згадувало, яку версію Bootstrap він використовував. Тож я буду вважати, що відповідь на це питання вирішена.

Якщо хтось із вас (як я) натрапив на це запитання і шукав відповідь, використовуючи поточну фреймворк bootstrap 5.0 (2020) та 4.5 (2019), то ось рішення.

Bootstrap 4.5 та 5.0

Використовуйте d-flex justify-content-centerу колонці div. Це відцентрує все усередині стовпця.

<div class="row">
    <div class="col-4 d-flex justify-content-center">
        // Image
    </div>
</div>

Якщо ви хочете вирівняти текст всередині col, просто використовуйте text-center

<div class="row">
    <div class="col-4 text-center">
        // text only
    </div>
</div>

Якщо у вас є текст і зображення всередині стовпця, вам потрібно використовувати d-flex justify-content-centerі text-center.

<div class="row">
    <div class="col-4 d-flex justify-content-center text-center">
        // for image and text
    </div>
</div>

23

Конвенції імен Bootstrap містять власні стилі, col-XS-1 відноситься до стовпця, що становить 8,33% від вміщуючого елемента в ширину. Ваш текст, швидше за все, розширився б далеко за межі вказаної ширини і не міг би бути в центрі в ньому. Якщо ви хотіли, щоб це обмежувало div, ви можете використовувати щось на зразок css word-break.

Для центрування вмісту в межах елемента, достатнього для розширення за межі тексту, у вас є два варіанти.

Варіант 1: Тег HTML Center

<div class="row">
  <div class="col-xs-1 center-block">
    <center>
      <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
    </center>
  </div>
</div>

Варіант 2: CSS Text-Align

<div class="row">
  <div class="col-xs-1 center-block" style="text-align:center;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

Якщо ви хотіли, щоб все обмежувало ширину стовпця

<div class="row">
  <div class="col-xs-1 center-block" style="text-align:center;word-break:break-all;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

ОНОВЛЕННЯ - Використання класу текстового центру Bootstrap

<div class="row">
  <div class="col-xs-1 center-block text-center">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

Метод FlexBox

<div class="row">
  <div class="flexBox" style="
    display: flex;
    flex-flow: row wrap;
    justify-content: center;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

http://jsfiddle.net/usth0kd2/13/


Так, це, здається, працює, якщо я використовую стовпець lg замість xs. Але якщо у мене є лише одна колонка, чи не повинна ця колонка займати стільки місця, скільки доступно? Як я дізнаюся, який стовпець використовувати, враховуючи факт роботи в трьох браузерах із трьома різними роздільною здатністю?
Позначте

У стовпцях Bootstrap використовуються чутливі відсотки на основі ширини, тому вони повинні бути досить подібними незалежно від роздільної здатності. Однак, якщо ви хочете, щоб вони зайняли 100% ширини, коли вони ізольовані, вам доведеться замінити властивості width та min-width.
Сідріель

17

Не потрібно ускладнювати справи. За допомогою Bootstrap 4 ви можете просто вирівняти елементи горизонтально всередині стовпця, використовуючи автоматичний клас поляmy-auto

         <div class="col-md-6 my-auto">
           <h3>Lorem ipsum.</h3>
         </div>

17

Bootstrap 4, горизонтальне та вертикальне вирівнювання вмісту за допомогою гнучкого вікна

<div class="page-hero d-flex align-items-center justify-content-center">
 <h1>Some text </h1>
</div>

Використовуйте клас bootstrap align-items-center і justify-content-center

Текст, вирівняний по вертикалі та горизонталі

.page-hero {
  height: 200px;
  background-color: grey;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="page-hero d-flex align-items-center justify-content-center">
  <h1>Some text </h1>
</div>


1
Це набагато краща відповідь, ніж прийнята відповідь
Mahir Islam

7

Використовуйте text-centerзамість center-block.

Або використовуйте center-blockна елементі span (я зробив стовпець ширшим, щоб ви могли краще бачити вирівнювання):

<div class="row">
   <div class="col-xs-10" style="background-color:#123;">
      <span class="center-block" style="width:100px; background-color:#ccc;">abc</span>
   </div>
</div>

3

Це простий спосіб.

<div class="row">
  <div class="col-md-6 mx-auto">
    <p>My text</p>
  </div>
</div>

У числі 6 управляє шириною стовпця.


2
//add this to your css
    .myClass{
          margin 0 auto;
          }

// add the class to the span tag( could add it to the div and not using a span  
// at all
    <div class="row">
   <div class="col-xs-1 center-block">
       <span class="myClass">aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
   </div>
 </div>

2

col-lg-4 col-md-6 col-sm-8 col-11 mx-auto

 1. col-lg-4 ≥ 1200px (popular 1366, 1600, 1920+)
 2. col-md-6 ≥ 970px (popular 1024, 1200)
 3. col-sm-8 ≥ 768px (popular 800, 768)
 4. col-11 set default smaller devices for gutter (popular 600,480,414,375,360,312)
 5. mx-auto = always block center



1

Ви можете додати float:none; margin:auto;стиль для центризації вмісту стовпця.


0

Якщо жодне з вищезазначеного не працює (як у моєму випадку, намагаючись відцентрувати вхід), я використав зміщення Boostrap 4:

<div class="row">
    <div class="col-6 offset-3">
        <input class="form-control" id="myInput" type="text" placeholder="Search..">
    </div>
</div>  
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.