Zastanawiam się, czy istnieje sposób na napisanie CSS specjalnie dla Safari przy użyciu tylko CSS. Wiem, że coś tam musi być, ale jeszcze go nie znalazłem.Jakie są specyficzne dla przeglądarki Safari ataki hakerskie CSS?
Odpowiedz
Myślę, że pytanie jest prawidłowe. Zgadzam się z innymi odpowiedziami, ale nie oznacza to, że jest to straszne pytanie. Wcześniej raz musiałem użyć hackowania Safari CSS jako tymczasowego rozwiązania, a później się go pozbyłem. Zgadzam się, że nie powinieneś kierować reklamy na Safari, ale nie zaszkodzi ci wiedzieć, jak to zrobić.
FYI, to tylko siekać skierowany Safari 3, a także cele Opera 9.
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* Safari 3.0 and Opera 9 rules here */
}
Więc czekaj, chcesz napisać CSS dla Safari używając tylko CSS? Myślę, że odpowiedziałeś na własne pytanie. Webkit ma naprawdę dobrą obsługę CSS. Jeśli szukasz stylów tylko dla webkitów, spróbuj here.
Aby przesłać CSS do Safari/WebKit, musisz użyć JavaScriptu lub serwera do sniffingu użytkownika.
Istnieje kilka hacków, których można używać w CSS do kierowania tylko na Safari, np. Umieszczając skrót/funt (#) po średniku, co powoduje, że Safari go ignoruje. Na przykład:
.blah { color: #fff; }
.blah { color: #000;# }
W Safari kolor będzie biały, we wszystkim innym będzie czarny.
Nie należy jednak używać hacków, ponieważ może to powodować problemy z przeglądarkami w przyszłości i może powodować niepożądane efekty w starszych przeglądarkach. Najbezpieczniejszym sposobem jest użycie języka po stronie serwera (takiego jak PHP), który wykrywa przeglądarkę, a następnie wyświetla inny plik CSS w zależności od przeglądarki, z której korzysta użytkownik, lub możesz użyć JavaScript, aby zrobić to samo i przejść na inny plik CSS.
Język po stronie serwera jest lepszym rozwiązaniem, ponieważ nie każdy ma włączoną obsługę JavaScript w przeglądarce, co oznacza, że nie widzą odpowiedniego stylu. Również JavaScript dodaje narzut do ilości informacji, które muszą się załadować, zanim strona zostanie poprawnie wyświetlona.
Safari używa WebKit, który jest bardzo dobry w renderowaniu CSS. Nigdy nie natknąłem się na nic, co nie działa w Safari, ale działa w innych nowoczesnych przeglądarkach (nie licząc IE, który ma swoje własne problemy razem). Proponuję upewnić się, że Twój CSS jest standards compliant, ponieważ problem może leżeć w CSS, a nie w Safari.
To nie działa. –
Prawdopodobnie dlatego, że WebKit został naprawiony, aby sobie z tym poradzić. Ta odpowiedź pochodzi z 2008 roku, kiedy powyższy hack działał w Safari. Fakt, że teraz nie działa, po prostu podkreśla, że nie robiłem haseł, ponieważ nie gwarantują, że zawsze będą działać w przyszłości. –
Dobra uwaga. :-) –
To naprawdę zależy od tego, co chce zrobić. Czy próbujesz zrobić coś wyjątkowego po prostu na safari, korzystając z niektórych funkcji CSS3 lub starasz się, aby witryna była zgodna z przeglądarką?
Jeśli próbujesz utworzyć witrynę zgodną z przeglądarką, polecam napisanie strony, aby wyglądała dobrze w Safari/firefox/opera przy użyciu prawidłowego CSS, a następnie wprowadzanie zmian w IE przy użyciu warunkowego CSS obejmuje w IE. Powinno to (miejmy nadzieję) zapewnić kompatybilność dla przyszłych przeglądarek, które są coraz lepsze w przestrzeganiu reguł CSS i zapewniają kompatybilność z przeglądarką. This is an example.
Używając warunkowych arkuszy stylów, można uniknąć hackowania wszystkich razem i docelowych przeglądarek.
Jeśli szukasz czegoś specjalnego w safari, sprawdź this.
ekran @media oraz (-webkit-min Urządzenie piksela stosunek: 0) {}
Wydaje się, że cel WebKit Chrome (włącznie), ..., czy jest to naprawdę Safari- tylko?
jest również kierowany na chrome teraz - 2016 –
W jaki sposób ten cel może trafić w Operę? Jest kierowany na Safari i Chrome, które korzystają z silnika WebKit. –
Oryginalne źródło hackowania: http://themechanism.com/blog/2008/01/08/safari-css-hack-redux/. Dodatek: Obsługiwano Operę 9, ale nie Operę 9.5. Ten hack został pierwotnie pomyślany w 2007 roku, więc prawdopodobnie jest dość nieaktualny w 2011 roku. –