Twitter Bootstrap araç ipuçlarının genişliğini ve yüksekliğini nasıl değiştirirsiniz?


163

Twitter Bootstrap kullanarak bir ipucu oluşturdum.

Araç ipucu üç satırla görüntüleniyor. Ancak, araç ipucunu yalnızca bir satırla görüntülemek istiyorum.

Araç ipucunun genişliğini nasıl değiştirebilirim? Bu Twitter Bootstrap veya araç ipuçlarına özgü mü?


1
Belki bir cevabı kabul edebilir misin? Bu başkalarına da yardımcı olacaktır.
MERose

Yanıtlar:


210

Sadece bootstrap.css dosyasını geçersiz kılın

BS2'deki varsayılan değer maksimum genişlik: 200 piksel; Böylece ihtiyaçlarınıza uygun olanı artırabilirsiniz.

.tooltip-inner {
    max-width: 350px;
    /* If max-width does not work, try using width instead */
    width: 350px; 
}

13
max-widthbenim için çalışmıyor ama çalışıyor width. Chrome ve IE9'da test edildi. Bir ipucu?
Rosdi Kasim

2
Benim durumumda, .tooltip-inner, maksimum metinlerden (200 piksel) az olmasına rağmen, hem maksimum genişlik hem de genişlik ayarı iyi çalıştı.
Nobu

Sadece şunu ekleyin: maksimum genişlik: 350 piksel!
Sohail Anwar

1
max-width@ Knobli'nin cevabını hala sorun yaşayan ve görmeyen herkes için lütfen data-container="body"HTML öğenizde kullanın .
kips15

CSS'nin değiştirilmesi son çözüm olmalıdır. Jquery, araç ipucunun görünümünü değiştirmek için işlevsellik sağlar, bu yüzden neden kullanmıyorsunuz?
E10

42

BS3'te

.tooltip-inner {
    min-width: 150px; /* the minimum width */
}

28

Bunun çok eski bir soru olduğunun farkındayım, ama buraya indiğimde diğerleri de olacak. Bu yüzden tartıldığımı düşündüm.

Araç ipucunun, ona ne kadar içerik eklediğinizden bağımsız olarak yalnızca bir satıra yanıt vermesini istiyorsanız, genişliğin esnek olması gerekir. Bununla birlikte, Bootstrap araç ipucunu bir genişliğe başlatır, bu nedenle en azından bu genişliğin ne olacağını bildirmeniz ve onu bu boyuttan itibaren esnek hale getirmeniz gerekir. Ben tavsiye ederim:

.tooltip-inner {
    min-width: 100px;
    max-width: 100%; 
}

min-widthBir başlangıç boyutunu bildirir. Maksimum genişliğin aksine, başkalarının önerebileceği gibi, bir durma genişliği bildirir . Sorunuza göre, son bir genişlik beyan etmemelisiniz, aksi takdirde araç ipucu içeriğiniz sonunda bu noktada sarılır. Bunun yerine, sonsuz genişlik veya esnek genişlik kullanırsınız.max-width: 100%;araç ipucu 100 piksel genişliğinde başlatıldığında, içeriğinizin içeriğinden bağımsız olarak büyümesini ve içeriğinize göre ayarlanmasını sağlar.

AKLINDA TUT Araç ipuçları çok fazla içerik taşımak için tasarlanmamıştır. Tüm ekranda uzun bir dizeniz olsaydı korkak görünebilirdi. Ve özellikle akıllı telefonunuz (320 piksel genişlik), duyarlı görünümlerinizde kesinlikle bir etkisi olacaktır.

Bunu mükemmelleştirmek için iki çözüm öneriyorum:

  1. İpucu: 320 piksel genişliğini aşmayacak şekilde araç ipucu içeriğinizi minimumda tutun. Ve bunu yapsanız bile, ekranın sağında vedata-placement:right ipucu içeriğiniz akıllı telefonlarda görünmeyecektir (bu nedenle bootstrap neden onları içeriğine duyarlı olacak şekilde tasarladı ve paketlemek)
  2. Bu tek satırlık araç ipucu kavramını kullanmak konusunda cehennem iseniz @media, araç ipucunuzu akıllı telefon görünümüne sığdırmak için bir sorgu kullanarak altı tanenizi kapatın . Bunun gibi:

Benim demo BURAYA içerik boyutu ve cihaz ekran boyutu yanı göre araç ipuçları üzerinde esneklik ve yanıt gösteriyor

@media (max-width: 320px) {
    .tooltip-inner {
         min-width: initial;
         width: 320px;
    }
}

23

Kendi css'nizi kullanarak özelliklerin üzerine yazmalısınız. şöyle:

div.tooltip-inner {
    text-align: center;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    border-radius: 0px;
    margin-bottom: 6px;
    background-color: #505050;
    font-size: 14px;
}

seçici, araç ipucunun tutulduğu div'ı seçer (araç ipucu javascript tarafından eklenir ve genellikle herhangi bir kaba ait değildir.


2
Merak etmeyin, geçersiz kılma stilini basit bir 'div.tooltip-inner' olarak değil 'div [class =' ​​tooltip-inner ']' olarak tanımlamanızın özel bir nedeni var mı?
slawek

6
CSS için çok yeni olduğumda bu kodu yazdım, bu yüzden saçma neden beni bu şekilde
yazmamı hatırlayamıyorum

21

Maksimum genişliği "önemli!" ve data-container = "body" kullanın

CSS dosyası

.tooltip-inner {
    max-width: 500px !important;
}

HTML etiketi

<a data-container="body" title="Looooooooooooooooooooooooooooooooooooooong Message" href="#" class="tooltiplink" data-toggle="tooltip" data-placement="bottom" data-html="true"><i class="glyphicon glyphicon-info-sign"></i></a>

JS betiği

$('.tooltiplink').tooltip();

18
data-container="body"yalnız benim için yaptım. Teşekkürler!
Izhaki

17

Genişlik sorununu gidermek için aşağıdaki kodu kullanın.

$('input[rel="txtTooltip"]').tooltip({
    container: 'body'
});

örnek: http://eureka.ykyuen.info/2014/10/08/bootstrap-3-tooltip-width/


4
Bence en iyi cevap çünkü bootstrap CSS değiştirmeyi içermiyor.
Tim Scarborough

1
Bu benim için en iyi cevap, ama bu soruya cevap vermiyor
Bengala

Bu bence en iyi çözüm. CSS Bootstrap geçersiz kılma yerine araç ipucu yapılandırmasını kullanır.
César León

Bu FAAAR tarafından en iyi cevaptır. Jquery araç ipucunda her türlü şeyi yapmak için işlevsellik sağlar, neden kullanmıyorsunuz? CSS'nin değiştirilmesi son çözüm olmalıdır.
E10

10

Başka bir çözüm; CSS'de yeni bir sınıf oluşturun (örneğin, araç ipucu çapında):

.tooltip-wide + .tooltip > .tooltip-inner {
     max-width: 100%;
}

Bu sınıfı geniş araç ipuçları istediğiniz öğelerde kullanın:

<div class="tooltip-wide" data-toggle="tooltip" title="I am a long tooltip">Long tooltip</div>

Bootstrap araç ipucu, araç ipucunu içeren öğenin altında işaretleme oluşturur, böylece biçimlendirme oluşturulduktan sonra HTML aslında böyle bir şey görünür:

<div class="tooltip-wide" data-toggle="tooltip" title="I am a long tooltip">Long tooltip</div>
<div class="tooltip" role="tooltip">
    <div class="tooltip-arrow"></div>
    <div class="tooltip-inner">I am a long tooltip</div>
</div>

CSS bunu bitişikteki öğeye (+) .tooltip genişliğine erişmek için kullanır ve maksimum genişlik özelliğini uygulamadan önce .tooltip-inner'e gider. Bu, yalnızca .tooltip-wide sınıfını kullanan öğeleri etkiler, diğer tüm araç ipuçları değişmeden kalır.


2
Harika bir çözüm çünkü kullanmak istediğiniz araç ipuçlarını seçebilirsiniz.
Will Schoenberger

1
Bootstrap 4'te, araç ipucu vücuda eklenir. Ancak, ile data-template="<div class='tooltip' role='tooltip'><div class='arrow'></div><div class='tooltip-inner tooltip-wide'></div></div>"ve .tooltip-wide { max-width: 100%; min-width: 80%; }bir işe alabilirsiniz.
Matteo Ferla

Bu, BS4 araç ipuçları içeren şablonları kullanırken gördüğüm ilk gerçek hayat örneğidir. Güzel demo ve buna özel sınıflar ekleme kolaylığı.
klewis

8

.Tooltip-inner css sınıfını bootstrap.css dosyasında düzenleyebilirsiniz. Varsayılan maksimum genişlik 200 pikseldir. Maksimum genişliği istediğiniz boyuta değiştirebilirsiniz.


Genişliği ayarlamak harika! Teşekkürler! Yukarıdaki cevap ile birlikte tam çözüm!
ATSiem

6
@Nglinh'in dediği gibi: "Gerçekten tavsiye edilmez". Bootstrap'i güncellerken tüm saldırılarınızı takip etmek istemezsiniz.
Valentin Despa

7

bazı deneylerden sonra, bu benim için en iyi çalıştı:

.tooltip-inner {
    max-width: 350px; /* set this to your maximum fitting width */
    width: inherit; /* will take up least amount of space */ 
}

6

Sadece varsayılanı max-widthihtiyaçlarınıza uygun şekilde geçersiz kılın .

.tooltip-inner {
  max-width: 350px;
}

Maksimum genişlik çalışmadığında (seçenek 1)

Maksimum genişlik çalışmazsa, bunun yerine ayarlı bir genişlik kullanabilirsiniz. Bu iyi, ancak araç ipuçlarınız artık metne sığacak şekilde yeniden boyutlandırılmayacak. Bunu beğenmediyseniz 2. seçeneğe geçin.

.tooltip-inner {
  width: 350px;
}

Küçük kaplarla doğru şekilde ilgilenmek (seçenek 2)

Bootstrap araç ipucunu hedefin kardeşi olarak eklediğinden, içerdiği öğe tarafından kısıtlanır. İçeren öğe,max-width , max-widthçalışmaz.

Yani, max-widthişe yaramadığında, sadece şunları değiştirmeniz gerekir container:

<div class="some-small-element">
  <a data-container="body" href="#" title="Your boxed-in tooltip text">
</div>

Pro İpucu: Kapsayıcı, yalnızca birkaç araç ipucundaki stilleri geçersiz kılmak istediğinizde güzel olan herhangi bir seçici olabilir.


4

Sınıfı ana araç ipucu div'ine ve iç araç ipucu için ayarlayın

div.tooltip {
    width: 270px;
}

div.tooltip-inner {
    max-width: 280px;
}

Minimum genişlik olmamalı mı?
Rippo

4

Lütfen aşağıdaki gönderiye bakın. cmcculloh'un cevabı benim için çalıştı. https://stackoverflow.com/posts/31683500/edit

İma gibi belgelerde , en kolay yolu hiç sarın gelmez ipucu kullanımına olmasını sağlamak için

.tooltip-inner {
    max-width: none;
    white-space: nowrap;
}

Bununla, boyut değerleri veya bunun gibi bir şey hakkında endişelenmenize gerek yoktur. Çok uzun bir metin satırınız varsa asıl sorun ekrandan çıkacaktır ( JSBin Örneğinde görebileceğiniz gibi ).



2

Bootstrap 4'te ve tüm araç ipuçları genişliğini değiştirmek istemiyorsanız, istediğiniz araç ipucu için belirli bir şablon kullanabilirsiniz:

<a href="https://stackoverflow.com/link" class="btn btn-info"
   data-toggle="tooltip"
   data-placement="bottom"
   data-template="<div class='tooltip' role='tooltip'><div class='arrow'></div><div class='tooltip-inner' style='max-width: 400px;'></div></div>"
   title="This is a long message displayed on 400px width tooltip !"
>
    My button label
</a>


1

Aynı problemi yaşadım, ancak tüm popüler cevaplar - .tooltip-inner{width}görevim için değişiklik yapmak işi doğru yapamadı. Diğer (daha kısa) ipuçlarına gelince, sabit genişlik çok büyüktü. Ben araç ipuçları zilions için ayrı html şablonları / sınıfları yazmak için tembel, bu yüzden sadece &nbsp;her metin satırında kelimeler arasındaki tüm boşlukları değiştirdi .


1

Bazı araç ipuçlarının genişliğini ayarlamam gerekiyordu. Ama genel bir ayar değil. Böylece bunu yaptım:

CSS

.large-tooltip .tooltip-inner {
    max-width: 300px;
}
@media screen and (max-width: 300px) {
  .large-tooltip .tooltip-inner {
    max-width: 100%;
  }
}

JQuery

$('[data-toggle="tooltip"]')
    .tooltip()
    .on('shown.bs.tooltip', function(e) {
        /**
         * If the item that triggered the event has class 'large-tooltip'
         * then also add it to the currently open tooltip
         */
        if ($(this).hasClass('large-tooltip')) {
            $('body').find('.tooltip[role="tooltip"].show').addClass('large-tooltip');
        }
    });

Html

<img src="/theimage.jpg" class="large-tooltip" data-toggle="tooltip" data-html="true" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." />

0

Sınıf ipucunun maksimum genişliğini ayarlamak araç içi benim için işe yaramadı , bootstrap 3.2 kullanıyorum

Maksimum genişlik ayarının yalnızca üst sınıf genişliğini ayarlarsanız nasıl çalıştığı (.tooltip) .

Ancak, tüm araç ipuçları belirttiğiniz boyutta olur. İşte benim çözümüm:

üst sınıfa bir Genişlik ekleyin:

.tooltip {
  width:400px;
}

Daha sonra maksimum genişliği ekler ve ekranı satır içi bloğa değiştirirsiniz, böylece tüm alanı kaplamaz

.tooltip-inner {
  max-width: @tooltip-max-width;
  display:inline-block;
}

Bu, araç ipucunun hizalanması ile kaos yaratır.
Ben

0

Tüm değişken uzunlukların ve ayarlanmış bir maksimum genişliğin benim için işe yaramayacağı benimki, bu yüzden css'imi% 100'e ayarlamak bir cazibe gibi çalıştı.

.tooltip-inner {
    max-width: 100%;
}

0

Bootstrap 4 ile kullanıyorum

.tooltip-inner {
    margin-left: 50%;
    max-width: 50%;
    width: 50%;
    min-width: 300px;
}

-1

bootstrap 3.0.3'te popover sınıfını değiştirerek yapabilirsiniz

.popover {
    min-width: 200px;
    max-width: 400px;
}

3
.popover sınıfı araç ipuçları için geçerli değildir.
Adriaan Tijsseling
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.