Mam element div w innym div. #outeri #inner. #outerma zakrzywione krawędzie i białe tło. #innernie ma zakrzywionych granic i zielonego tła. #innerwykracza poza zakrzywione granice #outer. Czy można to zatrzymać?
#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>
Bez względu na to, jak próbuję, nadal się pokrywa. Jak mogę #innerbyć posłuszny i wypełnić #outergranice?
edytować
Poniższy hack służył teraz temu celowi. Ale pozostaje pytanie (być może dla twórców CSS3 i przeglądarek internetowych): Dlaczego elementy potomne nie przestrzegają zakrzywionych granic swoich rodziców i czy w ogóle można je do tego zmusić?
Aby obejść to na razie dla moich potrzeb, możesz przypisać krzywe do poszczególnych granic. Więc dla moich celów przypisałem krzywą do dwóch górnych części elementu wewnętrznego.
#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-radiusi border-radiusmogą być używane jako skrót z czterech wartości: 10px 10px 0 0. Jednak w przypadku Safari musisz ustawić je indywidualnie.