Ich arbeite an einer Webseite in Google Chrome. Es wird mit den folgenden Stilen korrekt angezeigt.
table {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
Es ist wichtig zu beachten, dass ich diese Stile nicht definiert habe. In den Chrome-Entwicklertools wird anstelle des CSS-Dateinamens das Stylesheet des Benutzeragenten angezeigt .
Wenn ich jetzt ein Formular abschicke und ein Validierungsfehler auftritt, erhalte ich das folgende Stylesheet:
table {
white-space: normal;
line-height: normal;
font-weight: normal;
font-size: medium;
font-variant: normal;
font-style: normal;
color: -webkit-text;
text-align: -webkit-auto;
}
table {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
Das font-size
von diesen neuen Stilen stört mein Design. Gibt es eine Möglichkeit, meine Stylesheets zu erzwingen und das Standard-Stylesheet von Chrome nach Möglichkeit vollständig zu überschreiben?
css
google-chrome
Kapil Sharma
quelle
quelle
Antworten:
Was sind die Zielbrowser? Verschiedene Browser legen unterschiedliche Standard-CSS-Regeln fest. Versuchen Sie, einen CSS-Reset wie den meyerweb CSS-Reset oder normalize.css einzuschließen , um diese Standardeinstellungen zu entfernen. Google "CSS zurücksetzen gegen normalisieren", um die Unterschiede zu sehen.
quelle
<!DOCTYPE>
ist richtig von @SebasWenn
<!DOCTYPE>
in Ihrem HTML-Inhalt etwas fehlt, kann es vorkommen, dass der Browser das "User Agent Stylesheet" Ihrem benutzerdefinierten Stylesheet vorzieht. Das Hinzufügen des Doctype behebt dies.quelle
Informationen zum Konzept „User Agent Style Sheet“ finden Sie in Abschnitt Cascade in der CSS 2.1-Spezifikation.
User Agent-Stylesheets werden von allem überschrieben, was Sie in Ihrem eigenen Stylesheet festgelegt haben. Sie sind nur der Tiefpunkt: Wenn keine Stylesheets von der Seite oder vom Benutzer bereitgestellt werden, muss der Browser den Inhalt immer noch irgendwie rendern , und das Stylesheet des Benutzeragenten beschreibt dies nur.
Wenn Sie also glauben, ein Problem mit einem Stylesheet für Benutzeragenten zu haben, haben Sie wirklich ein Problem mit Ihrem Markup, Ihrem Stylesheet oder beiden (über die Sie nichts geschrieben haben).
quelle
li
Element analysiert , das zweiul
Elemente mit nur Textinhalt enthält. Sie werden vom Stylesheet des Benutzeragenten gestaltet, dieses Styling kann jedoch überschrieben werden. (Ob das Markup ungültig ist, hängt vom Kontext und der HTML-Version ab; dies hat jedoch keinen Einfluss auf das Styling.)li
Element, und Ihr Stylesheet überschreibt sie nicht.Das Markieren des Dokuments als HTML5 durch den richtigen Doctype in der ersten Zeile hat mein Problem gelöst.
quelle
Ein User Agent-Stylesheet ist ein vom Browser bereitgestelltes "Standard-Stylesheet" (z. B. Chrome, Firefox, Edge usw.), um die Seite so darzustellen, dass die "allgemeinen Präsentationserwartungen" erfüllt werden. Beispielsweise würde ein Standard-Stylesheet Basisstile für Dinge wie Schriftgröße, Rahmen und Abstand zwischen Elementen bereitstellen. Es ist üblich, ein Reset- Stylesheet zu verwenden, um Inkonsistenzen zwischen Browsern zu beheben.
Aus der Spezifikation ...
Weitere Informationen zu Benutzeragenten im Allgemeinen finden Sie unter Benutzeragenten .
quelle
Beantwortung der Frage im Titel: Was ist das Stylesheet für Benutzeragenten, die Standardstile im Browser: Hier sind einige davon (und die relevantesten auch im heutigen Web):
Gecko (Firefox): https://dxr.mozilla.org/mozilla-central/source/layout/style/res/html.css
Chrom (Chrome): https://chromium.googlesource.com/chromium/src/third_party/+/master/blink/renderer/core/html/resources/html.css
WebKit (Safari): https://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
Persönliche Meinung: Kämpfe nicht mit ihnen. Sie haben beispielsweise in RTL / BIDI-Fällen gute Standardwerte und sind heutzutage konsistent. Setzen Sie zurück, was für Sie irrelevant ist, nicht alle auf einmal.
quelle
Definieren Sie die Werte, die nicht aus dem Benutzeragentenstil von Chrome verwendet werden sollen, in Ihrem eigenen CSS-Inhalt.
quelle
Einige Browser verwenden ihre eigene Methode zum Lesen von CSS-Dateien. Der richtige Weg, dies zu umgehen: Wenn Sie die Befehlszeile direkt in den HTML-Quellcode eingeben, schlägt dies die CSS-Datei. Auf diese Weise haben Sie dem Browser direkt mitgeteilt, was zu tun ist, und der Browser ist in der Lage, nicht zu lesen die Befehle aus der CSS-Datei. Denken Sie daran, dass die in der HTML-Datei geschriebenen Befehle stärker sind als der Befehl in der CSS-Datei.
quelle
Ich hatte das gleiche Problem wie bei einem meiner <div>, dessen Rand vom Browser festgelegt wurde. Es war ziemlich nervig, aber dann habe ich herausgefunden, wie die meisten Leute sagten, es ist ein Markup-Fehler.
Ich ging zurück und überprüfte meinen <head> Abschnitt und mein CSS-Link war wie folgt:
<link rel="stylesheet" href="ex.css">
Ich habe
type
es aufgenommen und wie folgt gemacht:<link rel="stylesheet" type="text/css" href="ex.css">
Mein Problem wurde gelöst.
quelle
Jeder Browser stellt ein Standard-Stylesheet bereit, das als User Agent-Stylesheet bezeichnet wird, falls in einer HTML-Datei kein Stylesheet angegeben ist. Von Ihnen angegebene Stile überschreiben die Standardeinstellungen.
Da Sie keine Werte für das Feld des Tabellenelements angegeben haben, wurden die Standardstile angewendet.
quelle
Ich wollte nur die Antwort von @BenM basierend auf dem, was ich hier gelesen habe, erweitern von Ire Aderinokun . Überlegen Sie zweimal, bevor Sie es überschreiben, da das User-Agent-Stylesheet ein hilfreiches Standard-Styling bietet.
Ich hatte einen dummen Fehler, bei dem ein Schaltflächenelement in Chrome nicht richtig aussah. Ich hatte es teilweise gestylt, weil ich nicht wollte, dass es wie ein traditioneller Knopf aussieht. Ich habe jedoch Stilelemente wie Rahmen, Rahmenfarbe usw. weggelassen. Also hat Chrome eingegriffen, um die Teile zu liefern, die mir fehlten.
Das Problem verschwand, als ich Stile wie
border: none
usw. hinzufügte .Wenn also jemand anderes dieses Problem hat, stellen Sie sicher, dass Sie alle anwendbaren Standard-Benutzeragentenstile für ein Element explizit überschreiben, wenn Sie feststellen, dass es wackelig aussieht, insbesondere wenn Sie die Benutzeragentenstile nicht vollständig zurücksetzen möchten. Es hat bei mir funktioniert.
quelle
Ich habe eine Lösung. Überprüfen Sie dies:
Error
Richtig
quelle
Fügen Sie den folgenden Code in Ihre CSS-Datei ein:
quelle