2013-08-30 10 views
23

Ich dachte, dass der initial Wert zunächst gerenderte Stile wiederherstellen würde (wie von einem 's internen Stylesheet angewendet).Was ist der 'anfängliche' Wert in CSS?

Beispiel:

div.inline { 
    display: inline; 
} 

div.initial { 
    display: initial; 
} 

erwartete ich die div.inline Regel <div class="inline"> in Inline-Modus angezeigt werden würde, und die div.initial Regel würde <div class="initial"> zeigt einen div die ursprünglichen Anzeigewert von block verwenden.

Aber wenn ich dies erkunde, wird <div class="initial"> inline angezeigt. Liege ich falsch? Kann jemand mehr darüber ausarbeiten?

+0

Hier ist eine gute Erklärung für den ursprünglichen Wert: http://Stackoverflow.com/q/35689456/3597276 –

Antwort

42

Die initial value (nicht Attribut) den Anfangswert der Eigenschaft, wie in der CSS-Spezifikationen definiert: „Das‚anfängliche‘Schlüsselwort steht für den Wert festgelegt, die als die Eigenschaft des Anfangswert bestimmt wird“ Somit seine Bedeutung hängt von der Eigenschaft ab, aber nicht von irgendetwas anderem, z nicht im Browser oder auf dem Element, auf das die Eigenschaft angewendet wird. So ist es nicht mittlere Browser-Standard.

Zum Beispiel für die display Eigenschaft, initialimmer bedeutet inline, denn das ist der designierte Anfangswert der Eigenschaft ist. Im Beispielfall ist der Browser-Standardblock, da das Element div ist.

Daher ist der initial Wert von begrenzter Nützlichkeit. Sein Haupteffekt scheint zu sein, Menschen aufgrund von Missverständnissen zu verwirren. Ein möglicher Anwendungsfall ist für die color Eigenschaft, da ihr Anfangswert Browser-abhängig ist (meist schwarz, wie wir wissen, aber nicht unbedingt). Dafür bedeutet initial Browser-Standard, da so die Eigenschaft definiert wurde. Ein ähnlicher Anwendungsfall ist für font-family: durch Deklarieren font-family: initial, erhalten Sie Browser-Standardschriftart (die von Browsereinstellungen abhängen kann).

Die Nützlichkeit ist weiter durch mangelnde Unterstützung auf IE begrenzt (sogar IE 10).

+3

Es gibt einen sehr häufigen störenden Anwendungsfall, bei dem "initial" * extrem * hilfreich ist: Wenn Sie ein Element programmatisch ein- und ausblenden, d. H. Geben Sie 'display: none' an und zeigen Sie es erneut an. Dies liegt daran, dass es so viele Werte für "display" und keine Standardwerte ohne "initial" gibt. jQuery macht das seit Jahren, und Präprozessoren wie LESS, Stylus & SCSS machen es einfacher, aber es ist hilfreich, dass es in CSS stimmt. Aber wenn ich es nicht habe, dann schränkt es das ein, vor allem, weil die anderen es dort erlauben. – trysis

+0

Sorry, hat sich da hingetragen. Vielleicht werde ich es beantworten, wenn ich produktiver bin. – trysis

+4

@trysis: 'display: initial' ist ein Synonym für' disply: inline', wenn es überhaupt funktioniert, so dass Sie nicht viel kaufen. – recursive

7

Source

Die anfängliche CSS Schlüsselwort bezieht, den Anfangswert einer Eigenschaft eines Elements. Es ist für jede CSS-Eigenschaft zulässig und veranlasst das Element, für das es angegeben wurde, den Anfangswert der Eigenschaft zu verwenden.

/* give headers a green border */ 
h2 { border: medium solid green } 

/* but make those in the sidebar use the value of the "color" property */ 
#sidebar h2 { border-color: initial; } 
<p style="color:red"> 
    this text is red 
     <em style="color:initial"> 
      this text is in the initial color (e.g. black) 
     </em> 
    this is red again 
</p> 
+0

Vielen Dank für die Antwort. Was ist dann das diff btwn "erben" und "anfänglich"? – NkS

+1

'erben' bezieht seinen Wert vom Elternelement. –

Verwandte Themen