Як відцентрувати вкладки завантажувальної стрічки на сторінці?


87

Я використовую twitter bootstrap для створення перемикаються вкладок. Ось css, який я використовую:

<div class="container">
  <ul class="nav nav-tabs">
    <li><a href="#home" data-toggle="tab">Home</a></li>
    <li><a href="#profile" data-toggle="tab">Profile</a></li>
    <li><a href="#messages" data-toggle="tab">Messages</a></li>
    <li><a href="#settings" data-toggle="tab">Settings</a></li>
  </ul>
</div>

Цей html відображає вкладки правильно, але відтягується ліворуч (саме це має відбутися). Я спробував попрацювати з CSS, щоб перекласти вкладки в центр сторінки, але поки що не везло. Я думав, хтось із більшим досвідом роботи з CSS знатиме, як це зробити.

Як примітка, є ще одне питання про центрирування навігаційних таблеток, яке я спробував, але воно не працювало лише з простими навігаційними вкладками.

Дякую.


можливий дублікат Twitter Bootstrap: Center Pills
— Marijn

Відповіді:


221

nav-tabsЕлементи списку автоматично завантажуються вліво за допомогою завантажувальної стрічки, тому вам доведеться скинути це і замість цього відобразити їх як inline-block, а до центральних пунктів меню ми повинні додати атрибут text-align:centerв контейнер, наприклад:

CSS

.nav-tabs > li, .nav-pills > li {
    float:none;
    display:inline-block;
    *display:inline; /* ie7 fix */
     zoom:1; /* hasLayout ie7 trigger */
}

.nav-tabs, .nav-pills {
    text-align:center;
}

Демо: http://jsfiddle.net/U8HGz/2/show/ Редагувати тут: http://jsfiddle.net/U8HGz/2/


Редагувати: виправлена ​​версія, яка працює в IE7 +, надана користувачем @My Head Hurts у коментарях нижче.

Демо: http://jsfiddle.net/U8HGz/3/show/ Редагувати тут: http://jsfiddle.net/U8HGz/3/


3
Якщо ви додасте, *display: inline; *zoom: 1;це також буде працювати в IE7 ( display: inline-blockне підтримується). jsfiddle.net/U8HGz/3
— Моя голова болить

1
@MyHeadHurts, ох, дуже дякую, не звернув уваги на старіші версії IE, оскільки я почав працювати лише з підтримкою IE8 +, але ваше виправлення є надійним та необхідним, оскільки завантажувальна стрічка офіційно підтримує IE7 +. Оновив свою відповідь.
— Andres Ilich

Що робити, якщо це повинно впливати лише на .nav-tabs?
— Андерс Метник,

1
@AndersMetnik ви можете обмінювати цільові класи на будь-який вибраний навігатор, навіть на власний клас або ідентифікатор.
— Андрес Іліч

1
Чому хтось приймає цю відповідь, оскільки вона змінює базові правила css?
— Sachin Sharma,

21

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

.nav-tabs.centered > li, .nav-pills.centered > li {
    float:none;
    display:inline-block;
    *display:inline; /* ie7 fix */
     zoom:1; /* hasLayout ie7 trigger */
}

.nav-tabs.centered, .nav-pills.centered {
    text-align:center;
}

Щоб використовувати його, додайте клас "по центру" до елемента ваших вкладок

<ul class="nav nav-tabs centered" >
..
</ul>

18

Додавання класу nav-justifiedпрацює для мене. Це не тільки центр вирівнює вкладки, але й красиво розподіляє їх у верхній частині.

<ul class="nav nav-tabs nav-justified">
    <li><a href="#Page1">Page1</a></li>
    <li><a href="#Page2">Page2</a></li>
    <li><a href="#Page3">Page3</a></li>
    <li><a href="#Page4">Page4</a></li>
  </ul>

Незважаючи на те, що прийнята відповідь працює добре, я знайшов вищезгадане більш природним для Bootstrap.


2

Просто додаючи

margin-left:50%;

коли я встановлював свої вкладки, працював на мене.

Наприклад,

<ul class="nav nav-tabs" style="margin-left:50%; margin-right:50%;">

на жаль, це не стосується ширини або штабелювання, необхідних для правильного їх вирівнювання.
— noinput

2

Ви можете просто використовувати сітку bootstrap для центрування ваших навігаційних вкладок. Оскільки сітка bootstrap розділена на 12 рівних стовпців, ви можете легко використовувати 4 стовпці для навігації зі зміщенням 4 стовпців:

<div class="col-sm-4 col-sm-offset-4">.

Тому ви отримуєте навігацію посередині сторінки (також адаптивне рішення) із 4 вільними стовпцями зліва та праворуч.

Я знайшов сітку справді корисною для створення адаптивних веб-сторінок. Удачі!

<div class="row-fluid">
  <div class="col-sm-12">
    <div class="col-sm-4 col-sm-offset-4">
      <ul class="nav nav-tabs">
        <li><a href="#home" data-toggle="tab">Home</a></li>
        <li><a href="#profile" data-toggle="tab">Profile</a></li>
        <li><a href="#messages" data-toggle="tab">Messages</a></li>
        <li><a href="#settings" data-toggle="tab">Settings</a></li>
      </ul>
    </div>
  </div>
</div>

1

якщо ви використовуєте bs4, ви можете просто додати justify-content-centerклас до своїх навігаційних вкладк, щоб відцентрувати його на сторінці. якщо ви хочете, щоб ваші вкладки були виправданими (повноцінними), додайте nav-justifiedдо них клас, у цьому випадку, якщо у вас є 3 елементи у навігаційній системі, кожна з них має 33%. якщо є 5 предметів, кожен має 20%.

інший спосіб - просто додати, text-centerякщо ви використовуєте bs3 .


1

Itself Сам Bootstrap має клас для цього назви nav-justified. Просто додайте його так:

<ul class="nav nav-tabs nav-justified">

Якщо ви також хочете вирівняти вміст центру <li>, зробіть його disply: inline-block.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.