別のdivの中にdivがあります。 #outer
と#inner
。 #outer
湾曲した境界線と白い背景があります。 #inner
湾曲した境界線はなく、背景は緑色です。 #inner
の湾曲した境界線を超えて拡張します#outer
。とにかくこれを止める方法はありますか?
#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>
どのように試しても、それでも重複します。どうすればの境界に#inner
準拠し、満たすことができ#outer
ますか?
編集する
次のハックは今のところ目的を果たしました。しかし、問題は(おそらくCSS3とWebブラウザーの作成者に)あります。なぜ子要素が親の湾曲した境界線に準拠せず、強制する必要があるのでしょうか。
今のところ私の必要性のためにこれを回避するためのハック、個々の境界に曲線を割り当てることができます。そのため、目的のために、内側の要素の上位2つに曲線を割り当てました。
#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
そしてborder-radius
四つの値と省略形として使用することができます10px 10px 0 0
。ただし、Safariの場合は、個別に設定する必要があります。