Ich habe ein Div in einem anderen Div. #outerund #inner. #outerhat gekrümmte Ränder und einen weißen Hintergrund. #innerhat keine gekrümmten Ränder und einen grünen Hintergrund. #innererstreckt sich über die gekrümmten Grenzen von #outer. Gibt es überhaupt etwas zu stoppen?
#outer {
display: block; float: right; margin: 0; width: 200px;
background-color: white; overflow: hidden;
-moz-border-radius: 10px;
-khtml-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
#inner { background-color: #209400; height: 10px; border-top: none; }
<div id="outer">
<div id="inner"></div>
<!-- other stuff needs a white background -->
<!-- bottom corners needs a white background -->
</div>
Egal wie ich es versuche, es überschneidet sich immer noch. Wie kann ich #innergehorchen und die #outerGrenzen füllen ?
bearbeiten
Der folgende Hack hat vorerst den Zweck erfüllt. Aber die Frage bleibt (vielleicht für die CSS3- und Webbrowser-Autoren): Warum gehorchen untergeordnete Elemente nicht den gekrümmten Rändern ihrer Eltern und gibt es sie überhaupt, um sie dazu zu zwingen?
Um dies für meine Bedürfnisse zu umgehen, können Sie einzelnen Rändern Kurven zuweisen. Für meine Zwecke habe ich den beiden oberen Teilen des inneren Elements eine Kurve zugewiesen.
#inner {
border-top-right-radius: 10px; -moz-border-radius-topright: 10px; -webkit-border-top-right-radius: 10px;
border-top-left-radius: 10px; -moz-border-radius-topleft: 10px; -webkit-border-top-left-radius: 10px;
}
border-radius: TL TR BL BR.
-moz-border-radiusund border-radiuskann als Kurzform mit vier Werten verwendet werden : 10px 10px 0 0. Für Safari müssen Sie sie jedoch individuell einstellen.