user-agent-stylesheet überschreiben meine eigenen styles
EDIT*** In welchen Instanzen kann die user-agent-Stile überschreiben benutzerdefinierte CSS?
Ich habe ein paar styles auf einem element auf einer Seite von mir, es scheint, dass die user-agent-stylesheet überschreiben, meine Definitionen.
Ist es passiert in Chrome Version 39.0.2171.95 m, Firefox 34.0.5, aber nicht im IE 11.
Ich weiß, ich habe keine direkte styles, die sich auf das element, aber es ist mein Verständnis, dass die user-agent-stylesheet NUR übernimmt, wenn es absolut keine Stile für ein bestimmtes element. Tun übernommene Stile nicht angerechnet, die?
- Sollten Sie ausreichende HTML-und CSS, als text, für die Reproduktion des Problems.
- Ich hätte auf post-Seiten mit CSS und HTML. Ich dachte, indem Sie einfach die Buchung der berechneten Stile wie pro Chrome developer tools, die Sie wäre in der Lage, um zu sehen, dass es Stile gibt die auf das element angewendet, aber Sie werden immer überschrieben mit user-agent-Stile. Ich glaube, ich sollte post in meiner Frage "In welchen Instanzen kann die user-agent-Stile überschreiben benutzerdefinierte CSS?" - Ich werde das jetzt tun.
- Nein, sollten Sie gebucht haben, ein minimales Dokument, das tatsächlich das problem veranschaulicht. Aber in meiner Antwort unten, ich glaube, ich rekonstruiert habe einen einfachen Fall. Und sollten Sie nicht ändern, eine Frage, auf die eine wesentlich andere Frage, oder eine Allgemeine Frage stellen, wenn Sie ein bestimmtes problem. Allgemeine Fragen sind oft geschlossen, da zu breit (und selbst wenn nicht, Antworten Sie vielleicht nicht, lösen Sie Ihre eigentliche problem).
- Tolle Antwort unten. Scheint die Antwort auf die ursprüngliche Frage - "Do übernommene Stile nicht angerechnet, dass?", die sehr nah an der überarbeiteten Frage - " was-Instanzen können user agent styles überschreiben benutzerdefinierte CSS?". Vielen Dank für die Erklärung dieses für mich. Ich mehr verstanden spezifischen CSS-Regeln Vorrang haben, aber ich nehme an, dass ich missverstanden bestimmte Ressourcen, wenn man das Thema der user-agent-stylesheets.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort auf die Allgemeine Frage ist, die nur die Einstellungen für die Eigenschaft festlegen auf ein element selbst sind berücksichtigt bei der Entscheidung, welche style-Einstellung "gewinnt". Zum Beispiel, wenn wir nur ein style sheet legt
font-size: 18px
auf diebody
element und ein anderes style sheet setfont-size: 9px
auf allep
Elemente, dann die font-size vonp
Elemente 9px, egal, was der Ursprung des style sheets sind, z.B. ob das letztere ist nur ein browser ein Standard-Stylesheet. Vererbung spielt hier überhaupt keine Rolle. Das ist alles beschrieben in Abschnitt Zuordnung von property values, Cascading, and Inheritance der CSS-2.1-Spezifikation.Vererbung wird als nur nach oben "kämpfen" hat, behoben wurde. Nur dann sind die vererbbaren Eigenschaften vererbt Elemente, die Sie nicht gesetzt an alle.
Sich die konkrete Frage nicht stellen spezifische code, aber es kann abgeleitet werden, dass Sie so etwas wie dieses:
Normalerweise dies führt dazu, dass sowohl "foo" und "bar" angezeigt werden soll, in 12px Größe. Die Zelle in der Tabelle erbt die Größe aus der Tabelle-Reihe, die erbt es von der
tbody
element, das erbt es von der Tabelle, die erbt es von derbody
.Jedoch in Ihrem Fall, diese Kette ist gebrochen. Der Grund dafür ist, dass das browser-Stylesheet hat
was in der Praxis dazu neigt, zu bedeuten 16px. Jetzt die
table
element hat die Eigenschaft gesetzt, so dass die Zelle übernimmt diesen Wert.Browser in der Regel nicht haben eine solche Regelung in Ihre style sheets. Jedoch, in Quirks-Modus, die meisten Browser die Regel anwenden. Dies bedeutet, dass die schriftart, die Größe ist nicht geerbt von
body
in Tabellen. Dies spiegelt bugs (oder gebilde) in sehr alten IE-Versionen und können die legacy-Seite gerendert werden, wie Sie verwendet werden.Wenn Sie unabsichtlich verursachte Quirks-Modus und brauchen es nicht für andere Zwecke, nur slap
ganz am Anfang des Dokuments. Aber Vorsicht, die alten Seiten können Durcheinander kommen in verschiedene Arten, wenn Sie entwickelt wurden, in der Prüfung Bedingungen entsprechen Quirks-Modus.
Alternativ, fügen Sie die folgende Regel in Ihrem Stylesheet:
Dies bedeutet, dass in einer Tabelle wird die Schriftgröße des übergeordneten Elements. (Wie bei Vererbung, aber sicherer.)
verwenden normalisieren.css um dieses Problem zu vermeiden, wenn nicht gesetzt none style zu einem element, das er Erben der user-agent-Stil.
http://necolas.github.io/normalize.css/