Ich versuche, das folgende Layout in CSS zu erstellen.Circular "Cut-away" von oben nach div mit CSS
Dieses in der Regel jedoch zu tun wären einfach, da der Hintergrund ein Bild ist (dargestellt in meinem Bild als Gradient), ich kann nicht einfach einen absoluten positionierte div an der Spitze hinzufügen und Farbe der "wegschneiden". Ich habe mich in den letzten Stunden darum gekümmert, wie ich das machen soll.
Ich habe einige Beispiele mit den ::before
und ::after
Pseudo Selektoren nachgeschlagen, kann aber nicht herausfinden, wie es funktioniert, während der Randradius auf dem Hauptinhalt div (blau) gehalten wird.
<div class="content">
<div class="header">
<a class="left" href="#">LINK 1</a>
<!--
Stuck with how to position this so it clips
<img class="logo" src="https://placehold.it/100x100">
-->
<a class="right" href="#">LINK 2</a>
</div>
<p>Some text content</p>
.content {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 20px;
background-color: blue;
height: 300px;
width: 400px;
padding: 20px;
}
.header {
position: relative;
top: -50px;
padding: 0 20px;
}
.header .right {
float: right;
}
Demo: http://jsbin.com/saxunecidu/1/edit?html,css,output
Die div zu schneiden einige Hintergrundfarbe hat? Könnte es nicht Farbe sein, sondern ein Bild dieser Form? – nicael
Das ist mit dem aktuellen CSS nicht möglich. Der einzige Weg, an den ich denken könnte, wäre, einen zweiten Kreis hinter dem "IMG" -Kreis zu haben. Und dieser Hintergrundkreis würde ein "Hintergrundbild" verwenden, das mit dem Haupthintergrundbild identisch ist. Dann müssten Sie das Hintergrundbild des Kreises genau an der gleichen Stelle wie der Haupthintergrund positionieren, so dass sie genau übereinstimmen und der Hintergrundkreis "unsichtbar" wird (nicht vom echten Hintergrundbild zu unterscheiden). – C14L
Siehe http://caniuse.com/#search=clip-path und meine (ziemlich alte) Antwort http://stackoverflow.com/questions/14717432/making-part-of-a-div-transparent/14717531#14717531 . Einige der anderen Antworten zeigen eine radiale Verlaufsoption, obwohl die Kanten in Chrome 51 ziemlich abgehackt aussehen. –