Twitter önyükleme sekmelerini sayfada nasıl ortalayabilirim?


87

Değiştirilebilir sekmeler oluşturmak için twitter bootstrap kullanıyorum. İşte kullandığım 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>

Bu html, sekmeleri doğru bir şekilde görüntüler, ancak sola doğru çekilir (olması gereken budur). Sekmeleri sayfada ortalamak için CSS ile uğraşmayı denedim, ancak henüz şans yok. Daha fazla CSS tecrübesi olan birinin bunu nasıl yapacağını bileceğini düşündüm.

Not olarak, gezinti haplarını ortalamakla ilgili başka bir soru var, denedim ama bu sadece düz gezinme sekmeleriyle çalışmadı.

Teşekkürler.


Yanıtlar:


221

nav-tabsliste öğeleri otomatik olarak önyükleme tarafından sola kaydırılır, bu nedenle onu sıfırlamanız ve bunun yerine bunları olarak görüntülemeniz gerekir inline-blockve menü öğelerini ortalamak text-align:centeriçin kapsayıcıya özniteliğini eklememiz gerekir , örneğin:

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

Demo: http://jsfiddle.net/U8HGz/2/show/ Burada düzenleyin : http://jsfiddle.net/U8HGz/2/


Düzenleme: Aşağıdaki yorumlarda @ My Head Hurts down kullanıcı tarafından sağlanan IE7 + 'da çalışan yamalı sürüm.

Demo: http://jsfiddle.net/U8HGz/3/show/ Burada düzenleyin : http://jsfiddle.net/U8HGz/3/


3
Eğer eklerseniz *display: inline; *zoom: 1;o zaman bu da IE7 çalışacak ( display: inline-blockdesteklenmez). jsfiddle.net/U8HGz/3
My Head

1
@MyHeadHurts oh waoh, çok teşekkürler, yalnızca IE8 + desteği üzerinde çalışmaya başladığımdan beri IE'nin eski sürümlerine aldırış etmedim, ancak önyükleme resmi olarak IE7 + 'ı desteklediği için düzeltmeniz sağlam ve gerekli. Cevabım güncellendi.
Andres Ilich

Ya yalnızca .nav-sekmelerini etkilemesi gerekiyorsa?
Anders Metnik

1
@AndersMetnik Hedeflenen sınıfları, tercih ettiğiniz nav seçiciye, hatta özel bir sınıf veya id'ye bile değiştirebilirsiniz.
Andres Ilich

1
Temel css kurallarını değiştirdiği için neden birisi bu yanıtı kabul etsin?
Sachin Sharma

21

Kabul edilen cevap mükemmel. Standart sola hizalanmış sekmelerle yan yana kullanabilmeniz için daha da özelleştirilebilir.

.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;
}

Bunu kullanmak için sekmelerinize "ortalanmış" sınıf ekleyin

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

18

Sınıfı eklemek nav-justifiedbenim için çalışıyor. Bu sadece sekmeleri ortalamakla kalmaz, aynı zamanda üstte güzel bir şekilde yayar.

<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>

Kabul edilen cevap iyi çalışsa da, yukarıdakileri Bootstrap için daha doğal buldum.


2

Basitçe eklemek

margin-left:50%;

sekmelerimi oluşturduğumda benim için çalıştı.

Örneğin

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

bu maalesef bunların düzgün bir şekilde hizalanması için gereken genişliklere veya istiflemeye uymuyor.
noinput

2

Gezinti sekmelerinizi ortalamak için sadece önyükleme ızgarasını kullanabilirsiniz . Önyükleme ızgarası 12 eşit sütuna bölündüğünden, gezinmeniz için 4 sütun ofsetiyle kolayca 4 sütunu kullanabilirsiniz:

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

Bu nedenle, gezinmenizi sayfanın ortasında (aynı zamanda duyarlı çözüm) sol ve sağ tarafta 4 sütun ücretsiz olarak alıyorsunuz.

Duyarlı web sayfaları yapmak için ızgarayı gerçekten yararlı buldum. İyi şanslar!

<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 kullanıyorsanız, sayfada ortalamakjustify-content-center için gezinme sekmelerinize sınıf ekleyebilirsiniz . sekmelerinizin yaslanmasını (dolu) nav-justifiedistiyorsanız ona sınıf ekleyin , bu durumda nav'ınızda 3 öğe varsa her birinin% 33'ü vardır. 5 madde varsa her birinin% 20'si vardır.

başka bir yol da bs3text-center kullanıyorsanız eklemektir .


1

‌Bootstrap'in kendisi bu açıdan adlandırılmış bir sınıfa sahiptir nav-justified. Basitçe şöyle ekleyin:

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

Merkez içeriğini de hizalamak istiyorsanız <li>, onun disply: inline-block.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.