Eu tenho uma div dentro de outra div. #outer
e #inner
. #outer
possui bordas curvas e fundo branco. #inner
não possui bordas curvas e fundo verde. #inner
se estende além das bordas curvas de #outer
. Há alguma maneira para parar isso?
#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>
Não importa como eu tente, ainda se sobrepõe. Como faço para #inner
obedecer e preencher #outer
as bordas?
editar
O hack a seguir serviu ao propósito por enquanto. Mas a pergunta permanece (talvez para os escritores do CSS3 e do navegador da web): Por que os elementos filhos não obedecem às bordas curvas de seus pais e existe alguma maneira de forçá-los a fazê-lo?
O truque para contornar isso para minhas necessidades por enquanto, você pode atribuir curvas a bordas individuais. Portanto, para meus propósitos, acabei de atribuir uma curva às duas primeiras do 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
eborder-radius
pode ser utilizado como uma forma abreviada, com quatro valores:10px 10px 0 0
. Para o Safari, no entanto, você precisa configurá-los individualmente.Respostas:
De acordo com as especificações:
http://www.w3.org/TR/css3-background/#the-border-radius
Isso significa que um
overflow: hidden
on#outer
deve funcionar. No entanto, isso não funcionará no Firefox 3.6 e abaixo. Isso foi corrigido no Firefox 4:https://developer.mozilla.org/en/CSS/-moz-border-radius
Então você ainda precisará da correção, apenas reduza-a para:
Veja trabalhando aqui: http://jsfiddle.net/VaTAZ/3/
fonte
overflow: hidden;
está trabalhando nas versões atuais do FF. Certifique-se de testar o quanto for necessário.overflow hidden
está escondidoO que haveria de errado com isso?
fonte
Se você deseja bordas afiadas na parte inferior: Use estas:
fonte
você já tentou fazer a posição: relativa para a div interna ???
isso é:
fonte