Yayılma elemanına nasıl araç ipucu ekleyebilirim?


364

Aşağıdaki kodda, kullanıcı açıklığı gezdiğinde bir araç ipucu gelmesini istiyorum, bunu nasıl yaparım? Hiçbir bağlantı kullanmak istemiyorum.

<span> text </span>

Yanıtlar:


677

İşte basit ve yerleşik yol:

<span title="My tip">text</span>

Bu size düz metin araç ipuçları verir. İçinde biçimlendirilmiş HTML bulunan zengin araç ipuçları istiyorsanız, bunu yapmak için bir kitaplık kullanmanız gerekir. Neyse ki bir sürü var .


1
Ancak, aralıkta herhangi bir metin yoksa bu işe yarar mı? Örneğin, bg resimli boş bir açıklık var mı?
Augiwan

1
@UGS: Öğenizin, sandığınız boyutta olduğundan emin misiniz? Benimki gibi pembe bir arka plan vermeyi deneyin. :-)
RichieHindle

Çok teşekkürler.! Ama sadece tipsy.js kullandım ve istediğimden daha iyi görünüyor. : D Ve bu yazı karışıklığımı destekledi: htmlgoodies.com/tutorials/html_401/article.php/3479661/… burada araç ipucu "metin" için çalıştığını söylüyor
Augiwan

1
Merhaba, Birisi bunun bazı / tüm HTML lezzetlerinde standart olup olmadığını netleştirebilir mi?
Jonathan dos Santos

@jonathan: En azından HTML4'ten
RichieHindle

97

Saf CSS ile Özel Araç İpuçları - JavaScript gerekmez:

Burada örnek (kodlu) / Tam ekran örneği

Varsayılan titleözellik araç ipuçlarına alternatif olarak :before/ :after pseudo öğeleri ve HTML5 data-*niteliklerini kullanarak kendi özel CSS araç ipuçlarınızı oluşturabilirsiniz .

Sağlanan CSS'yi kullanarak, data-tooltipözelliği kullanarak bir öğeye araç ipucu ekleyebilirsiniz .

Özel araç ipucunun konumunu, data-tooltip-positionözniteliği (kabul edilen değerler: top/ right/ bottom/ left) kullanarak da kontrol edebilirsiniz .

Örneğin, aşağıdakiler span öğesinin altına yerleştirilmiş bir araç ekleyecektir.

<span data-tooltip="Custom tooltip text." data-tooltip-position="bottom">Custom bottom tooltip.</span>

resim açıklamasını buraya girin

Bu nasıl çalışıyor?

Özel araç ipuçlarını, attr()işlevi kullanarak özel öznitelik değerlerini alarak sözde öğelerle görüntüleyebilirsiniz .

[data-tooltip]:before {
    content: attr(data-tooltip);
}

Araç ipucunu konumlandırma açısından, nitelik seçiciyi kullanın ve yerleşimi özelliğin değerine göre değiştirin.

Burada örnek (kodlu) / Tam ekran örneği

Örnekte kullanılan tam CSS - bunu ihtiyaçlarınıza göre özelleştirin.

[data-tooltip] {
    display: inline-block;
    position: relative;
    cursor: help;
    padding: 4px;
}
/* Tooltip styling */
[data-tooltip]:before {
    content: attr(data-tooltip);
    display: none;
    position: absolute;
    background: #000;
    color: #fff;
    padding: 4px 8px;
    font-size: 14px;
    line-height: 1.4;
    min-width: 100px;
    text-align: center;
    border-radius: 4px;
}
/* Dynamic horizontal centering */
[data-tooltip-position="top"]:before,
[data-tooltip-position="bottom"]:before {
    left: 50%;
    -ms-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}
/* Dynamic vertical centering */
[data-tooltip-position="right"]:before,
[data-tooltip-position="left"]:before {
    top: 50%;
    -ms-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}
[data-tooltip-position="top"]:before {
    bottom: 100%;
    margin-bottom: 6px;
}
[data-tooltip-position="right"]:before {
    left: 100%;
    margin-left: 6px;
}
[data-tooltip-position="bottom"]:before {
    top: 100%;
    margin-top: 6px;
}
[data-tooltip-position="left"]:before {
    right: 100%;
    margin-right: 6px;
}

/* Tooltip arrow styling/placement */
[data-tooltip]:after {
    content: '';
    display: none;
    position: absolute;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
}
/* Dynamic horizontal centering for the tooltip */
[data-tooltip-position="top"]:after,
[data-tooltip-position="bottom"]:after {
    left: 50%;
    margin-left: -6px;
}
/* Dynamic vertical centering for the tooltip */
[data-tooltip-position="right"]:after,
[data-tooltip-position="left"]:after {
    top: 50%;
    margin-top: -6px;
}
[data-tooltip-position="top"]:after {
    bottom: 100%;
    border-width: 6px 6px 0;
    border-top-color: #000;
}
[data-tooltip-position="right"]:after {
    left: 100%;
    border-width: 6px 6px 6px 0;
    border-right-color: #000;
}
[data-tooltip-position="bottom"]:after {
    top: 100%;
    border-width: 0 6px 6px;
    border-bottom-color: #000;
}
[data-tooltip-position="left"]:after {
    right: 100%;
    border-width: 6px 0 6px 6px;
    border-left-color: #000;
}
/* Show the tooltip when hovering */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
    display: block;
    z-index: 50;
}

2
@SearchForKnowledge Gerçekten mi? Bir noktada buna bakacağım. Teşekkürler.
Josh Crozier

5
Evet ben sadece test ve aynı zamanda işe yaramadı şaşırdım.İyi eski IE! ;)
SearchForKnowledge

@JoshCrozier çok yardımcı oldu
JIBIN BJ

20

Çoğu tarayıcıda, title özelliği bir araç ipucu olarak oluşturulur ve genellikle ne tür öğelerle çalışacağı konusunda esnektir.

<span title="This will show as a tooltip">Mouse over for a tooltip!</span>
<a href="http://www.stackoverflow.com" title="Link to stackoverflow.com">stackoverflow.com</a>
<img src="something.png" alt="Something" title="Something">

Bunların hepsi, her tarayıcıda araç ipuçlarını oluşturur.


6

Temel araç ipucu için şunları yapabilirsiniz:

<span title="This is my tooltip"> Hover on me to see tooltip! </span>


4

"title"bazı eklentiler kullanmayı düşünmek için stil uygulamak istiyorsanız , özellik tarayıcı tarafından araç ipucu metni olarak kullanılacaktır.

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.