In CSS ist es möglich, placeholder
Text innerhalb einer Eingabe mithilfe einer Kombination aus herstellerspezifischen Pseudoklassen und Pseudoelementen zu formatieren (um die beste browserübergreifende Abdeckung zu erzielen).
Diese haben alle die gleichen grundlegenden Eigenschaften (z. B. Textstil und Farbdeklarationen).
Obwohl ich unweigerlich dieselben Stile anwenden möchte, unabhängig vom Hersteller des Browsers, scheint es nicht möglich zu sein, diese zu einem durch Kommas getrennten Selektor zu kombinieren (wie bei jedem anderen CSS-Teil, bei dem zwei Selektoren gemeinsam genutzt werden sollen die gleichen Stile).
Als Beispiel tendiere ich dazu, das Platzhalter-Styling mit den vier folgenden Selektoren zu zielen:
input:-moz-placeholder
input::-moz-placeholder
input:-ms-input-placeholder
input::-webkit-input-placeholder
(obwohl :-moz-placeholder
ist veraltet ist für ::-moz-placeholder
dies geschah erst mit der Veröffentlichung von 19 FireFox so derzeit beide sind für eine bessere Browser-Unterstützung erforderlich).
Was frustrierend ist, ist, dass das Deklarieren und Geben jedes (des gleichen) Stils zu vielen Wiederholungen innerhalb des CSS führt.
Um sicherzustellen, dass der Platzhaltertext rechtsbündig und kursiv ist, würde ich am Ende Folgendes haben:
input:-moz-placeholder{
font-style: italic;
text-align: right;
}
input::-moz-placeholder{
font-style: italic;
text-align: right;
}
input:-ms-input-placeholder{
font-style: italic;
text-align: right;
}
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Was ich wirklich tun möchte, ist, sie als einen einzigen durch Kommas getrennten Regelsatz wie folgt zu kombinieren:
input:-moz-placeholder,
input::-moz-placeholder,
input:-ms-input-placeholder,
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Obwohl dies einige Male versucht wurde, scheint dies nie zu funktionieren. Es macht mir Sorgen, dass es einen grundlegenden Teil von CSS gibt, den ich nicht verstehe.
Kann jemand Licht ins Dunkel bringen, warum dies passiert?
quelle
:-moz-placeholder
wurde erst vor relativ kurzer Zeit mit der Einführung von FireFox 19 abgewertet. Leider müssen beide:-moz-placeholder
und sein doppelter Nachfolger::-moz-placeholder
derzeit verwendet werden, um eine optimale Browserabdeckung zu gewährleisten.Die Spezifikationen besagen, dass ein Benutzeragent, der einen Teil eines Selektors nicht erkennt, den gesamten Selektor und seinen Block ignorieren muss.
http://www.w3.org/TR/css3-syntax/#rule-sets
quelle
input:-moz-placeholder,:-any-other-bogus-selector
, so die Regel sollte funktionieren, und Browser , die es fallen tut dies in Verletzung der Regeln.