Ich habe ein Div in einem anderen Div. #outer
und #inner
. #outer
hat gekrümmte Ränder und einen weißen Hintergrund. #inner
hat keine gekrümmten Ränder und einen grünen Hintergrund. #inner
erstreckt 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 #inner
gehorchen und die #outer
Grenzen 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-radius
undborder-radius
kann als Kurzform mit vier Werten verwendet werden :10px 10px 0 0
. Für Safari müssen Sie sie jedoch individuell einstellen.Antworten:
Nach den Angaben:
http://www.w3.org/TR/css3-background/#the-border-radius
Dies bedeutet, dass ein
overflow: hidden
On#outer
funktionieren sollte. Dies funktioniert jedoch nicht für Firefox 3.6 und niedriger. Dies ist in Firefox 4 behoben:https://developer.mozilla.org/en/CSS/-moz-border-radius
Sie benötigen also immer noch das Update. Kürzen Sie es einfach auf:
Sehen Sie, wie es hier funktioniert: http://jsfiddle.net/VaTAZ/3/
quelle
overflow: hidden;
arbeitet an aktuellen Versionen von FF. Stellen Sie sicher, dass Sie so weit testen, wie es Ihre Anforderungen erfordern.overflow hidden
verborgen istWas wäre daran falsch?
quelle
Wenn Sie scharfe Kanten am Boden wünschen: Verwenden Sie diese:
quelle
hast du versucht die position zu machen: relativ für die innere div ???
das ist:
quelle