Próbuję stworzyć styl dla pudełka z cieniem w kolorze tego samego koloru co jego tekst. Ponieważ mam kilka pól, z których każdy ma inny kolor tekstu, chciałbym uniknąć powtarzania tego samego koloru w każdym zestawie reguł dla każdego pudełka.Jak zrobić, aby tekst-shadow i box-shadow używały koloru tekstu we wszystkich przeglądarkach?
Teraz, Tła i granic państwa modułów, na box-shadow
(który stosuje się również do text-shadow
):
Gdzie
<shadow> = inset? && [ <length>{2,4} && <color>? ]
Składniki każdej
<shadow>
są interpretowane następująco:
...
Kolor jest kolorem cienia. Jeśli kolor jest nieobecny, używany kolor pochodzi z właściwości "kolor".
Oznacza to, że jeśli nie zostanie określony kolor cienia na danym elemencie, wtedy kolor cienia, który jest używany należy podjąć od koloru tekstu, który jest wyliczana dla tego elementu. Jest to podobne do zachowania związanego z obramowaniem bez wyraźnego koloru, które datuje się z powrotem do CSS1 i pozostaje niezmienione w CSS2.
Jednak zdaję sobie sprawę, że nie zawsze tak było w przypadku cieni - wcześniej (dopiero w 2011 roku!) Wybrany kolor pozostawiono przeglądarce do wyboru w module tekstowym i B & B . I rzeczywiście, testowanie w przeszłości, pamiętam, pokazało, że niektóre przeglądarki wybrały black
, a inne wybrały transparent
(lub całkowicie zignorowały styl cienia). Mogło to nawet różnić się między text-shadow
i box-shadow
. Oczywiście jest to zrozumiałe, ponieważ jak wspomniano, każdy kolor wybrany przez przeglądarkę byłby w porządku w tym czasie.
Ale teraz, gdy definicja została jednoznacznie sformułowana, a najnowsze wersje wszystkich przeglądarek również odzwierciedlają tę zmianę, czy jest coś, co mogę zrobić, aby starsze wersje poszły w ich ślady? Wiem, że mogę określić kolor wiele razy - raz dla tekstu i raz dla każdego cienia - ale tak jak powiedziałem, chciałbym tego uniknąć, jeśli to możliwe.
pamiętać, że w połowie 2012 WD, który jest ostatni w tym piśmie, wcześniejsze stwierdzenie w tej samej sekcji zaprzecza jeden cytowany tu jednak oświadczenie cytowane tutaj jest kanoniczna jeden; patrz this mailing list thread i ED, gdzie zostało to naprawione.
To prawda, ale jest to stosunkowo nowe słowo kluczowe. Czy jest to obsługiwane przez starsze przeglądarki, których dotyczy OP? –
@Mr Lister: To nie jest nowe - w rzeczywistości 'currentColor' został zaimplementowany przez Firefox * przed *' box-shadow' lub '-moz-box-shadow'. Wyjątek od "prawie każdej przeglądarki", jak stwierdzono w mojej odpowiedzi, to Safari na komputery <4 (obsługuje '-webkit-box-shadow', ale nie' currentColor'), ale wątpię, aby było już powszechnie używane. – BoltClock
@Mr Lister: Okazuje się, że Safari 5.x ma problemy z 'currentColor', mimo że nie jest niczym nowym. Właśnie zaktualizowałem swoją odpowiedź, stwierdzając więcej niezgodności przeglądarek, które, jak należy przyznać, powinny pojawić się na samym początku. – BoltClock