CSS-Vorrang: Spezifität überwinden
Auf der angegebenen Webseite wird ein Inline-Stil zum Auffüllen links durch ein referenziertes Stylesheet überschrieben. Dieses Problem entsteht aufgrund der Unterschiede in der Spezifität beider Stile.
Die Festlegung von Regeln in CSS erfolgt durch Selektoren, die die Elemente vorgeben, auf die die Regel angewendet werden soll. Die Spezifität eines Selektors bestimmt seine Priorität, wobei Regeln mit höherer Spezifität Vorrang vor Regeln mit niedrigerer Spezifität haben.
In diesem Beispiel enthält das referenzierte Stylesheet die Regel „.rightColumn {margin: 0; padding: 0; }“ mit dem Selektor „.rightColumn “. Dieser Selektor gleicht jedes Element innerhalb des Elements mit der ID „rightColumn“ ab. Das Problem entsteht, weil der Stil für „td“ im Inline-Stil für jedes Tabellenzellenelement gilt, unabhängig von seinem übergeordneten Element.
Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:
Spezifität verwenden:
Erhöhen Sie die Spezifität des Inline-Stils für „td“, indem Sie einen Selektor mit höherer Spezifität hinzufügen, z. B. eine Klasse oder ID. Zum Beispiel:
<pre class="brush:php;toolbar:false"><style type="text/css"> td#myUnpaddedTable { padding-left:10px; } </style>
In diesem Beispiel ist die Spezifität des Selektors „#myUnpaddedTable“ (0101) höher als die von „.rightColumn *“ (0010), wodurch der Inline-Stil spezifischer wird.
Verwendung von !important:
Das Hinzufügen von „!important“ zum Inline-Stil zwingt den Browser dazu, ihm Vorrang vor allen anderen Stilen zu geben. Dieser Ansatz sollte vermieden werden, da er in komplexen Stylesheets zu Verwirrung führen kann.
Das obige ist der detaillierte Inhalt vonWie überwindet man CSS-Spezifitätsprobleme in Inline-Stilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!