リーフレットツールチップスタイルを上書きしますか?


10

Leaflet 1.0.0ツールチップのデフォルトのスタイル、特にバブル/フレームを上書きしたいと思います。このためのオプションや方法はありません。CSSにフックするにはどうすればよいですか?レイヤーを個別に変更したいので、CSSで各レイヤーのツールチップを個別に選択する必要があります。

回答:


16

L.Tooltipこのクラスは、className(から継承されたオプションDivOverlay、ツールチップが表示されたときにCSSクラスに変換されるクラス)。例えば:

L.marker(latlng).addTo(map).bindTooltip('Text', {className: 'myCSSClass'});

次に、そのCSSクラスを定義するだけです。擬似要素とリーフレットCSSクラスを操作する必要があるため、ヒントは少しトリッキーです。

.myCSSClass {
  background: green;
  border: 2px solid cyan
}
.leaflet-tooltip-left.myCSSClass::before {
  border-left-color: cyan;
}
.leaflet-tooltip-right.myCSSClass::before {
  border-right-color: cyan;
}

こちらで実際の例をご覧ください


OK、各レイヤーの完全なクラスを書き出し、そのオプションを使用してアタッチします。ありがとう!
トムチャドウィン2016年

1
しかし、すべてのレイヤーのラベルのCSSを「リセット」すること、つまり、border / bgcolorを削除することは可能ですか?クラス名を介してアタッチする個々のスタイルには、必要な追加の宣言のみを含めることができます。
トムチャドウィン2016年

ちょうどあなたの更新された答えを見ました。疑似要素を使って、.leaflet-tooltipそのクラス-left-rightクラスを試して、取得場所を確認します。ありがとうございます。
トムチャドウィン2016年

1
ええ、あなたは.leaflet-tooltip(と-left-right)に適用されるCSSルールを自由に検査して上書きできます。Leaflet CSSを読み込んだ後で、必ずそうするようにしてください。
IvanSanchez

少し右向きまたは左向きの三角形を変更するには、::beforeクラスを編集します。例:完全に非表示にするには:(.leaflet-tooltip-left.myCSSClass::before {border-left-color: transparent;}長い時間かけてそれを理解してください)
マットウィルキー2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.