2008-09-16 21 views

Odpowiedz

24

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 */ 
} 
+1

W jaki sposób ten cel może trafić w Operę? Jest kierowany na Safari i Chrome, które korzystają z silnika WebKit. –

+1

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. –

2

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.

0

Aby przesłać CSS do Safari/WebKit, musisz użyć JavaScriptu lub serwera do sniffingu użytkownika.

5

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.

+1

To nie działa. –

+4

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. –

+0

Dobra uwaga. :-) –

-1

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.

0

ekran @media oraz (-webkit-min Urządzenie piksela stosunek: 0) {}

Wydaje się, że cel WebKit Chrome (włącznie), ..., czy jest to naprawdę Safari- tylko?

+0

jest również kierowany na chrome teraz - 2016 –

Powiązane problemy