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?
#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 lo intente, todavía se superpone. ¿Cómo puedo hacer #inner
obedecer y llenar #outer
las fronteras?
editar
El siguiente truco sirvió para el propósito por ahora. Pero la pregunta sigue (tal vez para los escritores CSS3 y webbrowser): ¿por qué los elementos secundarios no obedecen los bordes curvos de sus padres y hay alguna forma de obligarlos a hacerlo?
El truco para solucionar esto para mis necesidades por ahora, puede asignar curvas a bordes individuales. Entonces, para mis propósitos, acabo de asignar 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;
}
border-radius: TL TR BL BR
.-moz-border-radius
yborder-radius
se puede utilizar como una taquigrafía con cuatro valores:10px 10px 0 0
. Sin embargo, para Safari debe configurarlos individualmente.Respuestas:
De acuerdo con las especificaciones:
http://www.w3.org/TR/css3-background/#the-border-radius
Esto significa que un
overflow: hidden
encendido#outer
debería funcionar. Sin embargo, esto no funcionará para Firefox 3.6 y versiones inferiores. Esto se soluciona en Firefox 4:https://developer.mozilla.org/en/CSS/-moz-border-radius
Así que aún necesitará la solución, solo acorte a:
Véalo trabajando aquí: http://jsfiddle.net/VaTAZ/3/
fuente
overflow: hidden;
está trabajando en las versiones actuales de FF. Asegúrese de volver a realizar la prueba en la medida en que lo requieran sus requisitos.overflow hidden
está oculto¿Qué estaría mal con esto?
fuente
Si desea bordes afilados en la parte inferior: use estos:
fuente
¿Has intentado hacer la posición: relativa para el div interno?
es decir:
fuente