Im essayant de trouver un hack css pour juste safari PAS chrome, je sais que ce sont deux navigateurs webkit mais j'ai des problèmes avec les alignements div dans chrome et safari, chacun s'affiche différemment.
J'ai essayé de l'utiliser mais cela affecte également le chrome,
@media screen and (-webkit-min-device-pixel-ratio:0) {
#safari { display: block; }
}
est-ce que quelqu'un en connaît un autre qui s'appliquera simplement au safari s'il vous plaît?
Réponses:
REMARQUE: Les filtres et les compilateurs (tels que le moteur SASS) attendent du code standard `` cross-browser '' - PAS des hacks CSS comme ceux- ci, ce qui signifie qu'ils réécriront, détruiront ou supprimeront les hacks car ce n'est pas ce que font les hacks. Une grande partie de cela est du code non standard qui a été minutieusement conçu pour cibler uniquement les versions de navigateur unique et ne peut pas fonctionner si elles sont modifiées. Si vous souhaitez l'utiliser avec ceux-ci, vous devez charger le hack CSS choisi APRÈS tout filtre ou compilateur . Cela peut sembler acquis, mais il y a eu beaucoup de confusion parmi les gens qui ne se rendent pas compte qu'ils sont en train d'annuler un piratage en l'exécutant via un logiciel qui n'a pas été conçu à cet effet.
Safari a changé depuis la version 6.1, comme beaucoup l'ont remarqué.
Remarque: si vous utilisez Chrome [et maintenant aussi Firefox] sur iOS (au moins dans les versions iOS 6.1 et plus récentes) et que vous vous demandez pourquoi aucun des hacks ne semble séparer Chrome de Safari, c'est parce que la version iOS de Chrome utilise le moteur Safari. Il utilise les hacks Safari et non ceux de Chrome. Plus à ce sujet ici: https://allthingsd.com/20120628/googles-chrome-for-ios-is-more-like-a-chrome-plated-apple/ Firefox pour iOS est sorti à l'automne 2015. Il répond également à les Safari Hacks, mais aucun de ceux de Firefox, comme iOS Chrome.
AUSSI: Si vous avez essayé un ou plusieurs des hacks et que vous avez du mal à les faire fonctionner, veuillez poster un exemple de code (mieux encore une page de test) - le hack que vous tentez, et quel (s) navigateur (s) (version exacte!) Vous utilisez ainsi que l'appareil que vous utilisez. Sans ces informations supplémentaires, il est impossible pour moi ou pour quiconque ici de vous aider.
Il s'agit souvent d'une simple correction ou d'un point-virgule manquant. Avec CSS, c'est généralement cela ou un problème d'ordre dans lequel le code est répertorié dans les feuilles de style, si ce n'est simplement des erreurs CSS. Veuillez tester les hacks ici sur le site de test. Si cela fonctionne là-bas, cela signifie que le hack fonctionne vraiment pour votre configuration, mais c'est quelque chose d'autre qui doit être résolu. Les gens ici aiment vraiment vous aider, ou du moins vous orienter dans la bonne direction.
Le site de test:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
ET MIROIR!
https://browserstrangeness.github.io/css_hacks.html#safari
Il y a des hacks à utiliser pour les versions plus récentes de Safari.
Vous devriez d'abord essayer celui-ci car il couvre les versions actuelles de Safari et est uniquement Safari:
Celui-ci fonctionne toujours correctement avec Safari 13 (début 2020):
Pour couvrir plus de versions, 6.1 et plus, à ce stade, vous devez utiliser la prochaine paire de hacks css. Celui pour 6.1-10.0 pour aller avec celui qui gère 10.1 et plus.
Alors - en voici un que j'ai élaboré pour Safari 10.1+:
La double requête média est importante ici, ne la supprimez pas.
Essayez celui-ci si SCSS ou un autre ensemble d'outils rencontre des problèmes avec la requête multimédia imbriquée:
Ce prochain fonctionne pour 6.1-10.0 mais pas 10.1 (mise à jour fin mars 2017)
Ce hack que j'ai créé au cours de nombreux mois de tests et d'expérimentation en combinant plusieurs autres hacks.
REMARQUES: comme ci-dessus, la double requête multimédia n'est PAS un accident - elle exclut de nombreux navigateurs plus anciens qui ne peuvent pas gérer l'imbrication des requêtes multimédia. - L'espace manquant après l'un des «et» est également important. C'est après tout, un hack ... et le seul qui fonctionne pour la version 6.1 et toutes les nouvelles versions de Safari pour le moment. Sachez également que comme indiqué dans les commentaires ci-dessous, le hack est un css non standard et doit être appliqué APRÈS un filtre. Les filtres tels que les moteurs SASS le réécriront / l'annuleront ou le supprimeront complètement.
Comme mentionné ci-dessus, veuillez consulter ma page de test pour la voir fonctionner telle quelle (sans modification!)
Et voici le code:
Pour plus de CSS Safari «spécifique à la version», veuillez continuer à lire ci-dessous.
Un pour Safari 11.0:
Un pour Safari 10.0:
Fonctionne légèrement modifiée pour 10.1 (uniquement):
Safari 10.0 (appareils non iOS):
Hacks CSS Safari 9:
Un simple piratage de requête de fonctionnalité pour Safari 9.0 et plus:
Un simple hack de soulignement pour Safari 9.0 et plus:
Un autre pour Safari 9.0 et plus:
et une autre requête sur les fonctionnalités de support:
Un pour Safari 9.0-10.0:
Safari 9 inclut désormais la détection des fonctionnalités afin que nous puissions l'utiliser maintenant ...
Désormais, pour cibler uniquement les appareils iOS. Comme mentionné ci-dessus, puisque Chrome sur iOS est enraciné dans Safari, il frappe bien sûr celui-là également.
un pour Safari 9.0+ mais pas pour les appareils iOS:
Et un pour Safari 9.0-10.0 mais pas pour les appareils iOS:
Vous trouverez ci-dessous des hacks qui séparent les versions 6.1-7.0 et 7.1+.Celles-ci nécessitaient également une combinaison de plusieurs hacks afin d'obtenir le bon résultat:
Depuis que j'ai indiqué la façon de bloquer les appareils iOS, voici la version modifiée du piratage Safari 6.1+ qui cible les appareils non iOS:
Pour les utiliser:
Habituellement [comme dans cette question], la raison pour laquelle les gens posent des questions sur les hacks Safari est principalement en référence à sa séparation de Google Chrome (encore une fois PAS iOS!) Il peut être important de publier l'alternative: comment cibler Chrome séparément de Safari également, donc Je vous le fournis ici au cas où cela serait nécessaire.
Voici les bases, vérifiez à nouveau ma page de test pour de nombreuses versions spécifiques de Chrome, mais celles-ci couvrent Chrome en général. Chrome est la version 45, les versions Dev et Canary sont jusqu'à la version 47 pour le moment.
Mon ancien combo de requêtes multimédias que j'ai mis sur les hacks de navigateur fonctionne toujours uniquement pour Chrome 29+:
Une requête de fonctionnalité @supports fonctionne également bien pour Chrome 29+ ... une version modifiée de celle que nous utilisions pour Chrome 28+ ci-dessous. Safari 9, les navigateurs Firefox à venir et le navigateur Microsoft Edge ne sont pas pris en charge avec celui-ci:
Auparavant, Chrome 28 et les versions ultérieures étaient faciles à cibler. C'est celui que j'ai envoyé à browserhacks après l'avoir vu inclus dans un bloc d'un autre code CSS (pas initialement conçu comme un hack CSS) et réalisé ce qu'il fait, alors j'ai extrait la partie pertinente pour nos besoins:
[REMARQUE:] Cette ancienne méthode ci-dessous illustre maintenant Safari 9 et le navigateur Microsoft Edge sans la mise à jour ci-dessus. Les versions à venir de Firefox et Microsoft Edge ont ajouté la prise en charge de plusieurs codes CSS -webkit- dans leur programmation, et Edge et Safari 9 ont ajouté la prise en charge de la détection des fonctionnalités @supports. Chrome et Firefox incluaient précédemment @supports.
Le bloc des versions Chrome 22-28 (si nécessaire pour prendre en charge les anciennes versions) est également possible de cibler avec une torsion sur mes hacks combo Safari que j'ai postés ci-dessus:
Comme les hacks de formatage CSS Safari ci-dessus, ceux-ci peuvent être utilisés comme suit:
Donc, vous n'avez pas à le rechercher dans cet article, voici à nouveau ma page de test en direct:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
[Ou le miroir]
https://browserstrangeness.github.io/css_hacks.html#safari
La page de test en contient également de nombreuses autres, spécifiquement basées sur la version pour vous aider à différencier davantage Chrome et Safari, ainsi que de nombreux hacks pour les navigateurs Web Firefox, Microsoft Edge et Internet Explorer.
REMARQUE: Si quelque chose ne fonctionne pas pour vous, vérifiez d'abord la page de test, mais fournissez un exemple de code et QUEL hack vous tentez pour que quelqu'un vous aide.
la source
Il existe un moyen de filtrer Safari 5+ à partir de Chrome:
la source
Sarari uniquement
la source
:not(:root:root)
sélecteur est invalide selon la spécification CSS Selectors 3 (dans lequel:not()
ne peut contenir qu'un simple sélecteur, c'est-à-dire un sélecteur de type ou un ID ou une classe ou une pseudo-classe), mais complètement valide selon CSS Selectors 4 (où:not()
accepte la liste de sélecteurs). Il est vrai qu'actuellement, seul Safari comprend la syntaxe CSS Selectors 4, mais cette solution n'est pas à l'épreuve du temps.Ce hack fonctionne à 100% uniquement pour safari 5.1-6.0. Je viens de le tester avec succès.
la source
Pour ceux qui souhaitent implémenter un hack pour Safari 7.0 et inférieur, mais pas 7.1 et supérieur - utilisez:
la source
Remplacez votre classe dans (.myClass)
/ * Safari uniquement * / .myClass: not (: root: root) {
enter code here
}la source
À propos, pour tous ceux d'entre vous qui ont juste besoin de cibler Safari sur les mobiles, ajoutez simplement une requête multimédia à ce hack:
Et n'oubliez pas d'ajouter la classe .safari_only à l'élément que vous souhaitez cibler, exemple:
la source
J'aime utiliser la méthode suivante:
la source
Lors de l'utilisation de ce filtre uniquement safari, je pouvais cibler Safari (iOS et Mac), mais exclure Chrome (et d'autres navigateurs):
la source
Étape 1: utilisez https://modernizr.com/
Étape 2: utilisez la classe html .regions pour sélectionner uniquement Safari
Modernizr ajoutera des classes html au DOM en fonction de ce que le navigateur actuel prend en charge. Safari prend en charge les régions http://caniuse.com/#feat=css-regions alors que les autres navigateurs ne le font pas (encore de toute façon). Cette méthode est également très efficace pour sélectionner différentes versions d'IE. Que la force soit avec toi.
la source
salut j'ai fait ça et ça a marché pour moi
la source
Remarque: si iOS uniquement est suffisant (si vous êtes prêt à sacrifier le bureau Safari), cela fonctionne:
la source
Vous pouvez utiliser un hack de requête multimédia pour sélectionner Safari 6.1-7.0 à partir d'autres navigateurs.
Avertissement: ce hack cible également les anciennes versions de Chrome (avant juillet 2013).
la source
Cela marche:
la source
A la fin j'utilise un peu de JavaScript pour y parvenir:
puis dans mon CSS pour cibler le moteur de navigateur Apple, le sélecteur sera:
la source
https://stackoverflow.com/a/17637937/3174065 il est répondu ici bien que cette méthode utilise du JS. s'il est utilisé, assurez-vous de mettre le js dans le pied de page, le corps doit être complètement chargé pour que cela tire correctement, lorsqu'il est placé dans la tête, il se trompe car il tire avant que le corps ne soit chargé.
il ajoute ensuite une classe .safari au corps, mais uniquement en safari, ce qui rend le ciblage du css très facile.
la source
Cela fonctionne à 100% en safari ... j'ai essayé
la source
J'ai testé et cela a fonctionné pour moi
la source