Mit bedingten Kommentaren ist es einfach, Internet Explorer mit browserspezifischen CSS-Regeln zu erreichen:
<!--[if IE 6]>
...include IE6-specific stylesheet here...
<![endif]-->
Manchmal ist es die Gecko-Engine (Firefox), die sich schlecht benimmt. Was wäre der beste Weg, um nur Firefox mit Ihren CSS-Regeln und nicht einem einzigen anderen Browser als Ziel festzulegen? Das heißt, Internet Explorer sollte nicht nur die Nur-Firefox-Regeln ignorieren, sondern auch WebKit und Opera.
Hinweis: Ich suche nach einer "sauberen" Lösung. Die Verwendung eines JavaScript-Browser-Sniffers zum Hinzufügen einer Firefox-Klasse zu meinem HTML-Code ist meiner Meinung nach nicht sauber. Ich würde lieber etwas sehen, das von den Browserfunktionen abhängt, ähnlich wie bedingte Kommentare nur für den IE "speziell" sind ...
Antworten:
OK, ich habe es gefunden. Dies ist wahrscheinlich die sauberste und einfachste Lösung auf dem Markt und setzt nicht voraus, dass JavaScript aktiviert ist.
Es basiert auf einer weiteren Mozilla-spezifischen CSS-Erweiterung. Hier finden Sie eine ganze Liste dieser CSS-Erweiterungen: Mozilla CSS-Erweiterungen .
quelle
domain()
Filters. Beispielsweise@-moz-document domain(google.com) {...}
werden die beigefügten CSS-Regeln nur auf die Domain google.com angewendet.Aktualisiert (von @Antoine Kommentar)
Sie können verwenden
@supports
Mehr dazu
@supports
hierquelle
Hier erfahren Sie, wie Sie drei verschiedene Browser angehen: IE, FF und Chrome
quelle
Hier sind einige Browser-Hacks, die nur auf den Firefox-Browser abzielen.
Verwenden von Selektor-Hacks.
JavaScript-Hacks
Media Query Hacks
Dies wird funktionieren, Firefox 3.6 und höher
Wenn Sie weitere Informationen benötigen, besuchen Sie bitte Browserhacks
quelle
_:moz-tree-row(hover)
so dass es das einzige ist, das das.selector{}
Kommende verarbeiten kann. Diese speziellen Hacks funktionieren derzeit auf allen Firefox- Versionen. Weitere Informationen hierzu finden Sie unter browserhacks.com .Zunächst ein Haftungsausschluss. Ich befürworte nicht wirklich die Lösung, die ich unten präsentiere. Das einzige browserspezifische CSS, das ich schreibe, ist für IE (insbesondere IE6), obwohl ich wünschte, es wäre nicht der Fall.
Nun die Lösung. Sie haben darum gebeten, elegant zu sein, damit ich nicht weiß, wie elegant es ist, aber es wird sicher nur auf Gecko-Plattformen abzielen.
Der Trick funktioniert nur, wenn JavaScript aktiviert ist und Mozilla-Bindungen ( XBL) verwendet ) verwendet werden, die intern in Firefox und allen anderen Gecko-basierten Produkten häufig verwendet werden. Zum Vergleich: Dies ähnelt der CSS-Eigenschaft des Verhaltens im IE, ist jedoch viel leistungsfähiger.
An meiner Lösung sind drei Dateien beteiligt:
ff.html
ff.xml
ff.css
Update: Die obige Lösung ist nicht so gut. Es wäre besser, wenn anstelle eines neuen LINK-Elements die "Firefox" -Klasse zum BODY-Element hinzugefügt würde. Und es ist möglich, indem Sie einfach den obigen JS durch den folgenden ersetzen:
Die Lösung ist von Dean Edwards 'Moz-Verhalten inspiriert .
quelle
Die Verwendung von -engine-spezifischen Regeln gewährleistet ein effektives Browser-Targeting.
quelle
Eine Variation Ihrer Idee besteht darin, eine zu haben
server-side USER-AGENT detector
, die herausfindet, welches Stylesheet an die Seite angehängt werden soll. Auf diese Weise können Sie eine habenfirefox.css, ie.css, opera.css, etc
.Sie können eine ähnliche Aufgabe in Javascript selbst ausführen, obwohl Sie sie möglicherweise nicht als sauber betrachten.
Ich habe eine ähnliche Sache gemacht, indem ich ein
default.css
Includeall common styles and then specific style sheets
hinzugefügt habe, um die Standardeinstellungen zu überschreiben oder zu verbessern.quelle
Nachdem Firefox Quantum 57 wesentliche - und möglicherweise bahnbrechende - Verbesserungen an Gecko herausgebracht hat, die zusammen als Stylo oder Quantum CSS bekannt sind, befinden Sie sich möglicherweise in einer Situation, in der Sie zwischen älteren Versionen von Firefox und Firefox Quantum unterscheiden müssen.
Aus meiner Antwort hier :
quelle
Die einzige Möglichkeit, dies zu tun, sind verschiedene CSS-Hacks, die die Wahrscheinlichkeit erhöhen, dass Ihre Seite bei den nächsten Browser-Updates fehlschlägt. Wenn überhaupt, ist es WENIGER sicher als die Verwendung eines JS-Browser-Sniffers.
quelle
Die CSS-Unterstützung ist als Randnotiz an Javascript gebunden.
https://developer.mozilla.org/en-US/docs/Web/CSS/Mozilla_Extensions
quelle
Der folgende Code neigt dazu, Style-Flusen-Warnungen auszulösen:
Verwenden Sie stattdessen
Hat mir geholfen! Haben Sie die Lösung für Stil Flusen Warnung von hier
quelle