У меня есть div внутри другого div. #outerи #inner. #outerимеет изогнутые границы и белый фон. #innerне имеет изогнутых границ и зеленого фона. #innerвыходит за изогнутые границы #outer. Есть ли способ остановить это?
#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>
Как бы я ни старался, это все равно накладывается. Как я могу заставить #innerповиноваться и заполнять #outerграницы?
редактировать
Следующий хак послужил цели на данный момент. Но остается вопрос (возможно, к разработчикам CSS3 и веб-браузеров): почему дочерние элементы не подчиняются изогнутым границам своих родителей и есть ли способ заставить их это сделать?
Хак, чтобы обойти это для моих нужд сейчас, вы можете назначить кривые для отдельных границ. Поэтому для моих целей я просто назначил кривую двум верхним элементам.
#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и border-radiusможет быть использовано в качестве краткого обозначения с четырьмя значениями: 10px 10px 0 0. Однако для Safari вам нужно установить их индивидуально.