Semantic UIでツールチップを要素へのマウスホバーで表示するにはdata-tooltip属性を使う
Semantic UIには Popup | Semantic UIというものがありますが, これはマウスホバーでツールチップを出すための専用の要素を作る使いにくいものです.
ボタンなどに注釈としてツールチップを追加したいですよね. しかしHTMLネイティブのものは見辛いから使いたくない. せっかくSemantic UIを使っているのですから.
調べてみたらGitHubのissueが出てきました.
Tooltip on disabled button · Issue #4296 · Semantic-Org/Semantic-UI
これによるとdata-tooltip
属性を追加することでツールチップを楽に要素に追加できるようです.
Reactの場合以下のようになります.
<div data-tooltip="foo" />
<Checkbox
data-tooltip="このボタンはhogeの場合無効"
disabled={this.props.foo}
toggle
/>
できました.
要素がdisabledの場合使えない
disabledに設定したButton
などはポインターイベントが発生しなくなるので,
ツールチップも表示されなくなります.
Tooltip on disabled button · Issue #4296 · Semantic-Org/Semantic-UI
その場合仕方がないので少し面倒ですがPopupを使うしか無さそうですね.
と思ったらPopupもtriggerの内容がdisabledだとポインターイベント取らないようですね.
ちょっと検索したら
Popup won't open when inside disabled FormField · Issue #1413 · Semantic-Org/Semantic-UI-React
span
で対象要素を囲めば出てくるという情報を発見しました.
実際囲むと出てきます.
function component() {
return (
<Popup
trigger={
<span>
<Checkbox label="foo" disabled={true} />
</span>
}
/>
);
}