Je me demande s'il existe un moyen d'écrire du CSS spécifiquement pour Safari en utilisant uniquement CSS. Je sais qu'il doit y avoir quelque chose, mais je ne l'ai pas encore trouvé.Quels sont les hacks CSS spécifiques à Safari?
Répondre
Je pense que la question est valide. Je suis d'accord avec les autres réponses, mais cela ne veut pas dire que c'est une question terrible. Je n'ai jamais utilisé qu'une seule fois un hack Safari CSS en tant que solution temporaire et je m'en suis débarrassé plus tard. Je suis d'accord que vous ne devriez pas avoir à viser uniquement Safari, mais pas de mal à savoir comment le faire.
Pour votre information, ce hack ne vise que Safari 3 et cible également Opera 9.
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* Safari 3.0 and Opera 9 rules here */
}
Alors attendez, vous voulez écrire CSS pour Safari en utilisant seulement CSS? Je pense que vous avez répondu à votre propre question. Webkit a vraiment un bon support CSS. Si vous recherchez des styles de Webkit uniquement, essayez here.
Vous devrez utiliser JavaScript ou votre serveur pour faire le reniflage de l'agent utilisateur afin d'envoyer le CSS spécifiquement à Safari/WebKit.
Il existe des hacks que vous pouvez utiliser dans le CSS pour cibler uniquement Safari, comme mettre un hash/pound (#) après le point-virgule, ce qui fait que Safari l'ignore. Par exemple
.blah { color: #fff; }
.blah { color: #000;# }
Dans Safari, la couleur sera blanche, dans tout le reste, elle sera noire. Cependant, vous ne devriez pas utiliser de hacks, car cela pourrait causer des problèmes avec les navigateurs dans le futur, et cela pourrait avoir des effets indésirables dans les anciens navigateurs. Le moyen le plus sûr consiste à utiliser un langage côté serveur (tel que PHP) qui détecte le navigateur et qui diffuse un fichier CSS différent selon le navigateur utilisé par l'utilisateur, ou vous pouvez utiliser JavaScript pour faire de même et passer à un fichier CSS différent.
La langue côté serveur est la meilleure option ici, car tout le monde n'a pas activé JavaScript dans leur navigateur, ce qui signifie qu'ils ne verront pas le style correct. De plus, JavaScript ajoute un surcoût à la quantité d'informations à charger avant que la page soit correctement affichée.
Safari utilise WebKit, ce qui est très bien avec le rendu CSS. Je n'ai jamais rencontré quelque chose qui ne fonctionne pas dans Safari, mais dans d'autres navigateurs modernes (sans compter IE, qui a ses propres problèmes tous ensemble). Je suggère de vous assurer que votre CSS est standards compliant, que le problème peut se trouver dans le CSS, et non dans Safari.
cela ne fonctionne pas. –
C'est probablement parce que WebKit a été corrigé pour y faire face. Cette réponse était à partir de 2008, lorsque le hack ci-dessus a travaillé dans Safari. Le fait que ça ne marche pas maintenant ne fait que souligner le point que je faisais sur le fait de ne pas utiliser de hacks en premier lieu, puisqu'ils ne sont pas garantis de toujours fonctionner à l'avenir. –
Bon point. :-) –
Cela dépend vraiment de ce que vous essayez de faire. Essayez-vous de faire quelque chose de spécial juste en safari en utilisant certaines des fonctionnalités CSS3 incluses ou essayez-vous de rendre un site compatible avec les navigateurs croisés? Si vous essayez de rendre un site compatible avec les navigateurs, je vous recommande d'écrire le site pour qu'il paraisse bien dans safari/firefox/opera en utilisant CSS correct, puis de faire des modifications pour IE en utilisant IE conditionnel. Cela devrait (espérons-le) vous donner la compatibilité pour l'avenir des navigateurs, qui sont de mieux en mieux à la suite des règles CSS, et fournir une compatibilité croisée avec les navigateurs. En utilisant des feuilles de style conditionnelles, vous pouvez éviter tous les hacks et les navigateurs cibles.
Si vous cherchez à faire quelque chose de spécial en safari, rendez-vous au this.
écran @media et (webkit-min-device-pixel-rapport: 0) {}
Cela semble cibler webkit (y compris Chrome) ... ou est-ce vraiment Safari- seulement?
cible également le chrome maintenant - 2016 –
- 1. Valid IE6 css hacks?
- 2. Comment puis-je importer CSS avec Safari et Opera lors de l'utilisation CSS Hacks?
- 3. Css Hacks une bonne façon?
- 4. Pourquoi les hacks css ne sont pas corrigés par les développeurs d'agents?
- 5. Firefox 3 Bug (? Centrage des hacks CSS ou bugs)
- 6. Quels sont les attributs?
- 7. Quels sont les navigateurs compatibles avec "! Important"?
- 8. Safari: Ignorer beaucoup de CSS
- 9. iPhone Mobile App (safari): quels sont les événements javascript disponibles comme onblur, onfocus ou onbeforeunload?
- 10. Quels sont les services .NET?
- 11. css pirater Safari sur Mac
- 12. Problèmes d'espacement CSS avec Safari?
- 13. Quels sont les avantages de Struts
- 14. Quels sont les inconvénients des méthodes statiques?
- 15. Quels sont les problèmes du modèle MVVM?
- 16. Quels sont les principaux concurrents de Servoy?
- 17. Quels sont les usages courants des bitarrays?
- 18. Quels sont les avantages/inconvénients de py2exe
- 19. Quels sont les meilleurs projets OSS?
- 20. Quels sont les plugins jQuery "must have"?
- 21. Quels sont les plugins recommandés pour Trac?
- 22. Apache Felix: Quels sont les bundles d'extension?
- 23. Quels sont les bons tutoriels Wireshark?
- 24. Quels sont les avantages de LePUS3 par rapport à UML?
- 25. Quels sont les noms donnés à ces 2 expressions LINQ
- 26. Quels sont les meilleurs compteurs de performance ASP.NET à surveiller?
- 27. Quels sont les principaux/principaux dépôts Maven à utiliser?
- 28. Quels sont les bons blogs à suivre dans l'espace RIA?
- 29. Quels sont les meilleurs screencasts liés à la programmation?
- 30. Quels sont les différents types d'échantillonneurs HLSL?
Comment cela pourrait-il viser Opera? Il cible Safari et Chrome, qui utilisent tous deux le moteur WebKit. –
Source originale de hack ici: http://themechanism.com/blog/2008/01/08/safari-css-hack-redux/. Addendum: Il a soutenu Opera 9, mais pas Opera 9.5. Ce hack a été conçu à l'origine en 2007, donc il est probablement assez obsolète en 2011. –