Ghi đè phong cách tooltip?


10

Tôi muốn ghi đè kiểu mặc định của các công cụ Leaflet 1.0.0, đặc biệt là bong bóng / khung. Tôi không thấy bất kỳ lựa chọn hoặc phương pháp nào cho việc này. Làm cách nào để nối vào CSS? Tôi muốn thay đổi từng lớp riêng lẻ, vì vậy tôi cần chọn từng chú giải công cụ của từng lớp bằng CSS.

Câu trả lời:


16

Các L.Tooltiplớp học bao gồm một classNametùy chọn (kế thừa từ DivOverlaylớp), mà sẽ được chuyển đổi thành một lớp CSS khi tooltip được hiển thị. ví dụ:

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

Sau đó, đó chỉ là vấn đề xác định lớp CSS đó. Mẹo này hơi phức tạp, vì nó cần làm việc với các phần tử giả và các lớp CSS tờ rơi:

.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;
}

Xem một ví dụ làm việc ở đây .


OK, tôi sẽ viết ra một lớp đầy đủ cho mỗi lớp và đính kèm thông qua tùy chọn đó. Cảm ơn!
Tom Chadwin

1
Tuy nhiên, có thể "đặt lại" CSS cho tất cả các nhãn của lớp hay không, nghĩa là xóa đường viền / bgcolor? Các kiểu riêng lẻ tôi đính kèm thông qua tên lớp chỉ có thể có các khai báo bổ sung cần thiết.
Tom Chadwin

Chỉ cần xem câu trả lời cập nhật của bạn. Tôi sẽ thử .leaflet-tooltip, và nó -left-rightcác lớp, với các yếu tố giả, và xem nơi tôi nhận được, Cảm ơn!
Tom Chadwin

1
Vâng, bạn có thể tự do kiểm tra và ghi đè lên các quy tắc CSS áp dụng cho .leaflet-tooltip(và -left-right). Chỉ cần chắc chắn rằng bạn làm điều đó sau khi tải CSS Tờ rơi.
IvanSanchez

Để sửa đổi tam giác trỏ phải hoặc trái nhỏ chỉnh sửa ::beforelớp. Ví dụ: để ẩn nó hoàn toàn: .leaflet-tooltip-left.myCSSClass::before {border-left-color: transparent;}(Mất một thời gian dài để tìm ra điều đó)
matt wilkie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.