Muszę dodać kilka stylów, jeśli ciało ma jakiś element z klasą .rtl. Jak to możliwe?

body:has(.app.rtl) {
   .blah {
       some: blah;
   }
}

To jest coś, czego potrzebuję

2
Reza Babaei 20 luty 2019, 22:29

2 odpowiedzi

Najlepsza odpowiedź

Nie można tego zrobić za pomocą CSS, ponieważ CSS nie ma selektora nadrzędnego i obecnie nie :has selektor.

Sass nie może ci pomóc, ponieważ wszystkie Sass może zrobić dla CSS, jest łatwiejsza do tworzenia treści CSS - w końcu każdy pre-procesor skompiluje kod do CSS, który jest jedyną rzeczą, jaką jest przeglądarka.

Twoja jedyna szansa jest JavaScript.

3
connexo 20 luty 2019, 19:39

Klasa: ma () CSS Pseudo reprezentuje element, jeśli którykolwiek z selektorów przekazywanych jako parametry (w stosunku do: zakresu danego elementu), dopasuj co najmniej jeden element.

Klasa: ma () Pseudo zyskuje listę selektorów jako argument. W bieżącej specyfikacji: nie jest oznaczony jako część profilu wyboru na żywo, co oznacza, że nie można go używać w arkuszach stylistycznych; tylko z funkcjami takimi jak dokument.QuerySelector ().

https://developer.mozilla.org/en-us/docs/web/css/:has.

1
prajeesh webandcrafts 7 grudzień 2019, 11:14