próbuję znaleźć hack css dla safari po prostu NIE chrome, wiem, że są to obie przeglądarki, ale mam problemy z wyrównaniem div w chrome i safari, każdy wyświetla się inaczej.
Próbowałem tego użyć, ale wpływa to również na chrom,
@media screen and (-webkit-min-device-pixel-ratio:0) {
#safari { display: block; }
}
czy ktoś wie o innym, który będzie dotyczył tylko safari?
Odpowiedzi:
UWAGA: Filtry i kompilatory (takie jak silnik SASS) oczekują standardowego kodu „cross-browser” - NIE hacków CSS takich jak te, co oznacza, że będą przepisywać, niszczyć lub usuwać hacki, ponieważ nie robią tego hacki. Znaczna część tego jest niestandardowym kodem, który został starannie dopracowany, aby był przeznaczony tylko dla pojedynczych wersji przeglądarki i nie może działać, jeśli zostaną zmienione. Jeśli chcesz go używać z tymi, musisz załadować wybrany hack CSS PO dowolnym filtrze lub kompilatorze . To może wydawać się oczywiste, ale było wiele zamieszania wśród ludzi, którzy nie zdają sobie sprawy, że cofają włamanie, uruchamiając je za pomocą takiego oprogramowania, które nie zostało zaprojektowane do tego celu.
Safari zmieniło się od wersji 6.1, jak zauważyło wielu.
Uwaga: jeśli używasz Chrome [a teraz także Firefox] na iOS (przynajmniej w wersji iOS 6.1 i nowszych) i zastanawiasz się, dlaczego żaden z hacków nie oddziela Chrome od Safari, to dlatego, że wersja Chrome na iOS korzysta z silnika Safari. Używa hacków Safari, a nie Chrome. Więcej informacji na ten temat tutaj: https://allthingsd.com/20120628/googles-chrome-for-ios-is-more-like-a-chrome-plated-apple/ Firefox na iOS został wydany jesienią 2015 roku. Safari Hacks, ale żaden z nich nie jest taki sam jak iOS Chrome.
RÓWNIEŻ: Jeśli wypróbowałeś jeden lub więcej hacków i masz problemy z ich uruchomieniem, opublikuj przykładowy kod (jeszcze lepiej strona testowa) - hack, którego próbujesz, oraz jakie przeglądarki (wersja)! używasz tak samo jak urządzenia, którego używasz. Bez tych dodatkowych informacji nie jestem w stanie pomóc tobie ani nikomu innemu.
Często jest to prosta poprawka lub brakujący średnik. W przypadku CSS zwykle jest to problem lub problem, którego kolejności kod jest wymieniony w arkuszach stylów, jeśli nie tylko błędy CSS. Proszę przetestować hacki tutaj na stronie testowej. Jeśli to działa, oznacza to, że włamanie naprawdę działa dla twojej konfiguracji, ale jest coś innego, co należy rozwiązać. Ludzie tutaj naprawdę uwielbiają pomagać, a przynajmniej wskazywać ci właściwy kierunek.
Strona testowa:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
I LUSTRO!
https://browserstrangeness.github.io/css_hacks.html#safari
To na uboczu są hacki, których możesz użyć w nowszych wersjach Safari.
Powinieneś wypróbować ten pierwszy, ponieważ obejmuje on bieżące wersje Safari i jest wyłącznie Safari:
Ten nadal działa poprawnie z Safari 13 (początek 2020 r.):
Aby objąć więcej wersji, 6.1 i nowsze, w tej chwili musisz użyć następnej pary hacków css. Ten dla wersji 6.1-10.0 jest kompatybilny z tym, który obsługuje 10.1 i więcej.
Tak więc - oto jeden, który opracowałem dla Safari 10.1+:
Ważne jest tutaj zapytanie o podwójne media, nie usuwaj go.
Wypróbuj ten, jeśli SCSS lub inny zestaw narzędzi ma problemy z zagnieżdżonym zapytaniem o media:
Ten następny działa w wersji 6.1-10.0, ale nie 10.1 (aktualizacja z końca marca 2017 r.)
Ten hack stworzyłem przez wiele miesięcy testowania i eksperymentowania, łącząc wiele innych hacków.
UWAGI: podobnie jak powyżej, podwójne zapytanie multimedialne NIE jest przypadkiem - wyklucza wiele starszych przeglądarek, które nie mogą obsłużyć zagnieżdżania zapytań multimedialnych. - Ważna jest także brakująca spacja po jednym z „i”. To przecież hack ... i jedyny, który działa obecnie w wersji 6.1 i wszystkich nowszych wersjach Safari. Należy również pamiętać, jak podano w komentarzach poniżej, hack jest niestandardowym css i musi być zastosowany PO filtrze. Filtry, takie jak silniki SASS, przepisują / cofają lub całkowicie usuwają je całkowicie.
Jak wspomniano powyżej, sprawdź moją stronę testową, aby zobaczyć, jak działa bez zmian (bez modyfikacji!)
A oto kod:
Aby zapoznać się z bardziej szczegółowymi wersjami Safari CSS, czytaj dalej.
Jeden dla Safari 11.0:
Jeden dla Safari 10.0:
Nieznacznie zmodyfikowane działa w wersji 10.1 (tylko):
Safari 10.0 (urządzenia inne niż iOS):
Hacks Safari 9 CSS:
Prosty hack zapytania funkcji obsługuje Safari 9.0 i nowsze wersje:
Prosty hack podkreślający dla Safari 9.0 i nowszych wersji:
Kolejny dla Safari 9.0 i nowszych:
oraz inne zapytanie dotyczące funkcji wsparcia:
Jeden dla Safari 9.0-10.0:
Safari 9 zawiera teraz wykrywanie funkcji, dzięki czemu możemy go teraz używać ...
Teraz kieruj reklamy tylko na urządzenia z systemem iOS. Jak wspomniano powyżej, ponieważ Chrome na iOS jest zrootowany w Safari, to oczywiście uderza również w tę.
jeden dla Safari 9.0+, ale nie dla urządzeń iOS:
I jedno dla Safari 9.0-10.0, ale nie dla urządzeń iOS:
Poniżej znajdują się hacki, które oddzielają 6.1-7.0 i 7.1+. Aby uzyskać właściwy wynik, wymagało także kombinacji wielu hacków:
Ponieważ wskazałem sposób blokowania urządzeń z iOS, oto zmodyfikowana wersja hacka Safari 6.1+, która atakuje urządzenia inne niż iOS:
Aby z nich skorzystać:
Zwykle [jak w tym pytaniu] powodem, dla którego ludzie pytają o hakery Safari, jest głównie odniesienie do oddzielenia go od Google Chrome (znowu NIE iOS!) Może być ważne, aby opublikować alternatywę: jak kierować Chrome również od Safari, więc Zapewniam to tutaj, na wypadek, gdyby było to potrzebne.
Oto podstawy, ponownie sprawdź moją stronę testową, aby znaleźć wiele konkretnych wersji Chrome, ale ogólnie obejmują one Chrome. Chrome ma wersję 45, obecnie wersje Dev i Canary są w wersji 47.
Moja stara kombinacja zapytań o media, którą umieściłem w przeglądarce, działa nadal tylko w Chrome 29+:
Zapytanie o funkcję @supports działa również dobrze dla Chrome 29+ ... zmodyfikowana wersja tej, której używaliśmy dla Chrome 28+ poniżej. Safari 9, nadchodzące przeglądarki Firefox i przeglądarka Microsoft Edge nie są obsługiwane przez tę:
Wcześniej celowanie w Chrome 28 i nowsze było łatwe. Jest to jeden, który wysłałem do hakerów przeglądarki po tym, jak zobaczyłem, że jest zawarty w bloku innego kodu CSS (pierwotnie nie zamierzonego jako hack CSS) i zrozumiałem, co robi, więc wyodrębniłem odpowiednią część do naszych celów:
[UWAGA:] Ta starsza metoda poniżej pokazuje teraz Safari 9 i przeglądarkę Microsoft Edge bez powyższej aktualizacji. Nadchodzące wersje Firefoksa i Microsoft Edge dodały obsługę wielu kodów CSW-webkit w swoich programach, a zarówno Edge, jak i Safari 9 dodały obsługę wykrywania funkcji @supports. Chrome i Firefox zawierały wcześniej @supports.
Blok wersji Chrome 22-28 (w razie potrzeby do obsługi starszych wersji) jest również możliwy do celowania poprzez zmianę hacków combo Safari, które opublikowałem powyżej:
Podobnie jak powyższe modyfikacje formatowania Safari CSS, można ich używać w następujący sposób:
Więc nie musisz go szukać w tym poście, oto znowu moja strona testowa na żywo:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
[Lub lustro]
https://browserstrangeness.github.io/css_hacks.html#safari
Strona testowa zawiera również wiele innych, w szczególności opartych na wersjach, które dodatkowo pomagają odróżnić Chrome i Safari, a także wiele włamań do przeglądarek Firefox, Microsoft Edge i Internet Explorer.
UWAGA: Jeśli coś nie działa, najpierw sprawdź stronę testową, ale podaj przykładowy kod i KTÓRE włamujesz się, aby ktokolwiek Ci pomógł.
źródło
Istnieje sposób na filtrowanie Safari 5+ z Chrome:
źródło
Tylko Sarari
źródło
:not(:root:root)
Selektor jest nieważny na podstawie CSS selektorów 3 spec (w której:not()
może zawierać tylko prosty przełącznik, to znaczy jeden przełącznik typu lub jeden identyfikator lub jednej klasy lub jedno pseudo-klasa), ale zupełnie ważne zgodnie CSS selektorów 4 (gdzie:not()
przyjmuje listę selektory). To prawda, że obecnie tylko Safari rozumie składnię CSS Selectors 4, ale to rozwiązanie nie jest przyszłościowe.Ten hack w 100% działa tylko w przypadku safari 5.1-6.0. Właśnie przetestowałem to z sukcesem.
źródło
Dla tych, którzy chcą wdrożyć hack dla Safari 7.0 i nowszych wersji, ale nie 7.1 i nowszych - użyj:
źródło
Zamień swoją klasę na (.myClass)
/ * Tylko Safari * / .myClass: not (: root: root) {
enter code here
}źródło
Nawiasem mówiąc, dla każdego z was, którzy muszą celować w Safari na telefony komórkowe, po prostu dodaj zapytanie o media do tego hacka:
I nie zapomnij dodać klasy .safari_only do elementu, na który chcesz kierować, na przykład:
źródło
Lubię używać następującej metody:
źródło
Korzystając z tego filtru przeznaczonego tylko do safari, mogę kierować reklamy na Safari (iOS i Mac), ale wykluczam Chrome (i inne przeglądarki):
źródło
Krok 1: użyj https://modernizr.com/
Krok 2: użyj klasy html .regions, aby wybrać tylko Safari
Modernizr doda klasy HTML do DOM na podstawie tego, co obsługuje obecna przeglądarka. Safari obsługuje regiony http://caniuse.com/#feat=css-regions, podczas gdy inne przeglądarki nie (jeszcze i tak). Ta metoda jest również bardzo skuteczna w wyborze różnych wersji IE. Niech moc będzie z Tobą.
źródło
cześć, zrobiłem to i zadziałało dla mnie
źródło
Uwaga: jeśli wystarczy tylko system iOS (jeśli chcesz poświęcić pulpit Safari), działa to:
źródło
Możesz użyć hackowania zapytań o media, aby wybrać Safari 6.1-7.0 z innych przeglądarek.
Oświadczenie: ten hack działa również na stare wersje Chrome (przed lipcem 2013 r.).
źródło
To działa:
źródło
Na koniec używam małego JavaScript, aby to osiągnąć:
następnie w moim CSS, aby celować w silnik przeglądarki Apple, selektorem będzie:
źródło
https://stackoverflow.com/a/17637937/3174065 znajduje się tutaj odpowiedź, chociaż ta metoda używa JS. jeśli jest używany, pamiętaj o umieszczeniu js w stopce, ciało musi być w pełni załadowane, aby działało poprawnie, po umieszczeniu w głowie popełni błąd, ponieważ strzela przed załadowaniem ciała.
następnie dodaje do ciała klasę .safari, ale tylko podczas safari, dzięki czemu celowanie w css jest bardzo łatwe.
źródło
Działa w 100% na safari. Próbowałem
źródło
Przetestowałem i działało dla mnie
źródło