CSS2 hat die ::before
und ::after
Pseudo-Elemente, die Stylesheets ermöglicht, Dokumente auf Weisen zu ändern, die vorher das Hinzufügen zusätzlicher nicht-semantischer Elemente zu einer Seite als "style-hooks" erfordern würden .Möglichkeiten für ein CSS :: inneres Pseudo-Element
Ich war überrascht, dass CSS3 kein ::inner
oder ::outer
Pseudo-Element hinzugefügt hat, die noch mehr Fälle von HTML „Divitis“ beseitigen würde - wenn Seiten viele <div class="wrapper">
Elemente enthalten, rein als Stil-Haken mit Null semantischem Wert. CSS3 Unterstützung für mehrere Hintergrundbilder und Steigungen pro Box hilft,
Eine aktuelle Situation dieses Markup beteiligt:
<div>
<img src="foo.jpg" />
<h3>Heading</h3>
<p>Lorem ipsum</p>
<p>Dolor sit amet</p>
</div>
<!-- followed by the same markup template (with a different img src and paragraph text) repeated several times -->
Die visuelle Seite Design genannt für das <img />
Element an der Seite positioniert oder schwebte werden (innerhalb der . Einschränkungen der <div>
, die die Dokumentbreite gefüllt, und der Text und Überschrift einen dicken Rahmen um sie herum haben sollten, aber nicht das Bild
Idealerweise mit einem hypothetischen ::inner
Elemente, das wie so gelöst werden könnte:
div {
display: block;
background: white;
position: relative;
}
div::nth-of-type(odd) { background: #FEFEFE; }
div > img {
display: block;
position: absolute;
top: 0;
left: 0;
}
div::nth-of-type(odd) > img {
left: auto;
right: 0;
}
div::inner {
border: 5px solid #CECECE;
max-width: 20em;
}
Ich hatte jedoch auf das Hinzufügen eines Hüllenelement zu regeln:
<div>
<img src="foo.jpg" />
<div>
<h3>Heading</h3>
<p>Lorem ipsum</p>
<p>Dolor sit amet</p>
</div>
</div>
(mit dem div::inner
Selektor mit div > div
ersetzt).
Ich glaube, dies mit Polyfill.js getan werden könnte „::inner
“ und „::outer
“ Selektoren zu handhaben durch querySelectorAll
für die gezielte Elemente laufen und jeweils deren Inhalt Einwickeln oder die Elemente selbst, und Anwenden der Eigenschaften auf diese neuen Elemente . Ich frage mich, ob jemand dies bereits erreicht hat, oder ob irgendein Browser diese Funktionalität bereits als proprietäre Erweiterung unterstützt - wie IE mehrere ::before
und ::after
Pseudo-Elemente unter Verwendung der ::before(n)
Syntax unterstützt.
Woher weiß das ':: innere', welche Elemente es umhüllen sollte? .. Ich meine im "div> div" Fall ist es offensichtlich – LGSon
Ich habe hier einen ersten Entwurf gemacht, [Geige Demo] (https://jsfiddle.net/LGSon/mhz8twgo/), obwohl die absolut positionierten Bilder mir etwas gegeben haben Probleme (da sie das Bild aus dem Fluss nehmen), habe ich die Positionierung für jetzt entfernt. Der Entwurf verwendet eine feste Bildhöhe und das Pseudo das gleiche. – LGSon
Da das absolut positionierte Bild Probleme verursacht, welchen Zweck haben sie dann? – LGSon