Ich versuche, einen Farbverlauf border
unter einem Bild in einem div
zu erstellen.CSS-Pseudo-Element funktioniert nicht
Ich bin 100% sicher, dass mein CSS-Code selbst vollkommen in Ordnung ist, wie ich es zuvor auf anderen Elementen getestet habe.
Das Problem ist, dass es irgendwie ablehnt, das richtige Element auszuwählen und das Pseudoelement darunter zu platzieren.
#profilePicture {
width: 200px;
margin-left: 25px;
border-top: 1px solid #070707;
border-left: 1px solid #070707;
border-right: 1px solid #070707;
}
#pf {
display: block;
width: 200px;
}
#pf:first-child:after {
content: '';
position: absolute;
width: 200px;
height: 1px;
background: -webkit-linear-gradient(left, #070707, #a1a1a1, #070707);
background: -moz-linear-gradient(left, #070707, #a1a1a1, #070707);
background: -o-linear-gradient(left, #070707, #a1a1a1, #070707);
background: linear-gradient(to right, #070707, #a1a1a1, #070707);
top: -1px;
left: 0;
}
<div id="profilePicture">
<img id="pf" src="layout/images/profile/pf.png">
</div>
Soweit ich es soll sagen kann #pf
auswählen, welche das erste Kind seiner Eltern (true) ist und nachdem es den Pseudo-Element hinzufügen?
Edit: habe ich top: 1px
und größere Höhe s versuchen, sicher zu sein. Dies hatte keine Wirkung.
https://developer.mozilla.org/en/docs/Web/CSS/::after, besagt, dass :: after dem letzten virtuellen Kind eines Elements entspricht. Soweit mir bekannt ist, kann 'img' keine Kinder haben. Siehe auch Gradient Borders: https://css-tricks.com/examples/GradientBorder/ –