2017-07-27 2 views
2

Ich versuche, CSS zu tun, ein div zu machen, die wie folgt aussieht: negative left marginNegativer Randradius in CSS?

Ich bin mit dieser ziemlich begonnen:

.player { 
    width: 480px; 
    height: 80px; 
    border-radius: 40px; 
} 

Was ist der einfachste Weg, dies zu tun, ohne zu viel Code?

Antwort

6

Sie können das before Pseudoelement das schaffen "ausgeschnitten"

.player { 
 
    width: 480px; 
 
    height: 80px; 
 
    border-radius:0 40px 40px 0; 
 
    background-color:#0000FF; 
 
    position:relative;  
 
    color:#FFF; 
 
} 
 

 
.player:before 
 
{ 
 
    width: 80px; 
 
    height: 80px; 
 
    border-radius:0 40px 40px 0; 
 
    background-color:#FFF;  
 
    display:inline-block; 
 
    vertical-align: middle; 
 
    margin-right: 10px; 
 
    content: ''; 
 
}
<div class="player">Some Content</div>

+0

Schön! Ich war ehrlich gesagt ein wenig überrascht zu sehen, dass das möglich war. –

+0

Das Problem ist, ich brauche den Einzug transparent, nicht weiß; –

+0

Wir sind nicht ganz da yey, aber bald kommt 'clip-path': http://caniuse.com/#feat=css-clip-path & https://css-tricks.com/almanac/properties/c/clip/ –

0

.wrapper { 
 
    width: 500px; 
 
    height: 103px; 
 
    background-color: red; 
 
    padding-top: 15px; 
 
} 
 

 
.player { 
 
    width: 480px; 
 
    height: 83px; 
 
    margin-left: 10px; 
 
    border-top-right-radius: 40px; 
 
    border-bottom-right-radius: 40px; 
 
    border: 1px solid black; 
 
    border-left: none; 
 
    background-color: blue; 
 
    -webkit-mask-image: radial-gradient(circle at left, transparent 0, transparent 40px, black 41px); 
 
}
<div class="wrapper"><div class="player"></div></div>

+0

Das Problem ist, ich brauche den Einzug transparent, nicht weiß; –

+0

@JasonAxelrod, sollte dies jetzt funktionieren .. bitte überprüfen. – bubjavier

+0

errr .. funktioniert nicht im firefox .. nur in Chrom. – bubjavier

4

Hier yet another way of doing it, diesmal einen radialen Hintergrundbild verwenden . Dies macht es transparent und funktioniert sowohl in Firefox als auch in Chrome.

.player { 
    width: 480px; 
    height: 80px; 
    border-radius:40px; 
    background-image: radial-gradient(circle at 38px 40px, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 40px, blue 40px); 
    color:#FFF; 
} 
+0

Scheint in IE 11 mindestens so gut zu funktionieren, mit vielleicht einer kleinen Optimierung für die Positionierung –