web-dev-qa-db-ja.com

jQuery UI TooltipウィジェットのCSSスタイルをオーバーライドする

JQuery UIを使用しています Tooltip widget

<li>
    <div class="i1">
        <a href="#inf-1"title="ΕΝΤΟΠΙΣΜΟΣ">
            <span class="ui-icon ui-icon-search"></span>
        </a>
    </div>
</li>
<li><a href="#inf-2"title="ΠΛΗΡΟΦΟΡΙΕΣ"><span class="ui-icon ui-icon-info"></span></a></li>
<li><a href="#inf-3"title="ΕΠΙΠΕΔΑ"><span class="ui-icon ui-icon-copy"></span></a></li>

そして、私は彼らの例に基づいて次のCSSを書きました、それは魅力のように機能します:

.tooltip {
    display:none;
    background: black;
    font-size:12px;
    height:10px;
    width:80px;
    padding:10px;
    color:#fff; 
    z-index: 99;
    bottom: 10px;
    border: 2px solid white;
/* for IE */
  filter:alpha(opacity=80);
  /* CSS3 standard */
  opacity:0.8;
}


しかし、私は3〜4個のツールチップを入手したので、見た目を変えたい(上記のhtmlの例のように)ので、クラスにラップしてこれを行いました。

.i1 .tooltip  {
    display:none;
    background: red;
    font-size:12px;
    height:40px;
    width:80px;
    padding:20px;
    color:#fff; 
    z-index: 99;
    bottom: 10px;
    left: 50px important!;
    border: 2px solid white;
/* for IE */
  filter:alpha(opacity=80);
  /* CSS3 standard */
  opacity:0.8;
}

まったく何もしません。ジェネリック。tooltipをオーバーライドして、特定のツールチップを異なる方法でカスタマイズするにはどうすればよいですか?

前もって感謝します

24
elasticrash

カスタムツールクラスを新しいツールチップウィジェット(jQuery UI 1.9.1)に適用する場合、extraClassは機能しないようですが、tooltipClassという新しいオプションがあります。

$('.selector').tooltip({
        tooltipClass: "your_class-Name",
});

JQueryのcssとの潜在的な競合に対処するには、!importantをcssの行末まで。 それを指摘してくれた@sisharpに感謝:-)

64
Chaya Cooper

実際に

$( ".selector" ).tooltip( "option", "tooltipClass", "custom-tooltip-styling" );

こちら をご覧ください

1
FredTheLover

上記の優れた答えに基づいて、私はバブルのスタイルを整え、古いバブルを取り除くことを試みていました...

あなたが私のような初心者の場合(他の人は簡単な作業に数時間かかります)、同じ場所で同時にすべての回答を得ることができてうれしいです:)

<a href="#"  title="We are trying hard" class="mytooltip"><span title="">BETA</scan></a>

スパンにより、ブラウザのバブルが削除されます。

例としての新しいバブルのCSS:

.mytooltip:hover:after{
  background: #333;
  background: rgba(0,0,0,.9);
  border-radius: 5px;
  bottom: 26px;
  color: rgb(255, 77, 85);
  content: attr(title);
  right: 20%;
  padding: 5px 15px;
  position: absolute;
  z-index: 98;
  width: 220px;}
.mytooltip:hover:before{
    border: solid;
    border-color: #333 transparent;
    border-width: 6px 6px 0 6px;
    bottom: 20px;
    content: "";
    right: 50%;
    position: absolute;
    z-index: 99;
}

.mytooltip {
  radius: 4px !important;
  background-color: black;
   color: rgb(255, 77, 85) !important;
  padding: 5px 20px;
  border-radius: 20px;
  margin: 50px;
  text-align: center;
  font: bold 14px ;
  font-stretch: condensed;
  text-decoration: none;
  box-shadow: 0 0 10px black;
}

そして、フッターに挿入された上記のスクリプト:

<script>
$('.selector').tooltip({
        tooltipClass: "mytooltip",
});
</script>

this この質問に感謝し、他のソースを忘れました。

1
user2060451

上記のすべてのオプションを試してみましたが、うまくいきませんでした。

私はツールチップを調べました options docstheming に関するこの記事にリンクしています。

$('#my_selectr').tooltip({"classes": {"ui-tooltip": "my-custom-class-name", "ui-tooltip-content": "my-custom-class-name-content"}})

次に、スタイリングで2つのCSSクラスを追加します。

my-custom-class-name {
...
}
my-custom-class-name-content {
...
}

カスタムクラスで!importantを使用する必要がある場合があることに注意してください。

1
AmitF