Tengo un div dentro de otro div. #outer
y #inner
. #outer
tiene bordes curvos y un fondo blanco. #inner
no tiene bordes curvos y un fondo verde. #inner
se extiende más allá de los bordes curvos de #outer
. ¿Hay alguna manera de parar esto?Obligar al niño a obedecer los bordes curvos de los padres en CSS
#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>
No importa cómo intento todavía se solapa. ¿Cómo puedo hacer que #inner
obedezca y llene hasta los bordes de #outer
?
edición
este truco sirve el propósito por ahora. Pero la pregunta es válida (tal vez para los escritores de CSS3 y de navegador web): ¿Por qué los elementos secundarios no obedecen a los bordes curvos de sus padres y de todos modos hay que obligarlos a hacerlo?
El truco para solucionar esto para mis necesidades por el momento, puede asignar curvas a bordes individuales. Entonces para mis propósitos, simplemente asigné una curva a los dos primeros del elemento interno.
#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;
}
¿Ha intentado ajustar exactamente el mismo radio de borde al elemento interno? –
Pero quiero que el radio del borde del elemento interno sea recto en la parte inferior. ¿Es posible establecer un radio de borde solo para cierta esquina? –
Seguro. Incluso puede asignarlos como 'border-radius: TL TR BL BR'. –