Ho un div all'interno di un altro div. #outere #inner. #outerha bordi curvi e uno sfondo bianco. #innernon ha bordi curvi e uno sfondo verde. #innersi estende oltre i bordi curvi di #outer. C'è un modo per fermarlo?
#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>
Non importa come lo provo, si sovrappone ancora. Come posso #innerobbedire e riempire #outeri bordi?
modificare
L'hack seguente è servito allo scopo per ora. Ma la domanda rimane (forse per i CSS3 e gli autori di webbrowser): perché gli elementi figlio non obbediscono ai bordi curvi dei genitori e c'è comunque un modo per costringerli a farlo?
L'hack per aggirare questo per le mie esigenze per ora, puoi assegnare curve a singoli bordi. Quindi, per i miei scopi, ho appena assegnato una curva ai primi due dell'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-radiuse border-radiuspuò essere usato come abbreviazione con quattro valori: 10px 10px 0 0. Per Safari, tuttavia, è necessario impostarli singolarmente.