다른 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;
}
답변
사양에 따르면 :
테두리 이미지가 아닌 상자의 배경은 적절한 곡선에 클리핑됩니다 ( ‘배경 클립’에 의해 결정됨). 경계 또는 패딩 가장자리에 클리핑되는 다른 효과 (예 : ‘표시’이외의 ‘오버 플로우’)도 곡선에 클리핑되어야합니다. 대체 된 요소의 내용은 항상 내용 가장자리 곡선으로 잘립니다. 또한 테두리 가장자리의 곡선 외부 영역은 요소 대신 마우스 이벤트를 허용하지 않습니다.
http://www.w3.org/TR/css3-background/#the-border-radius
이것은 overflow: hidden
켜짐 #outer
이 작동해야 함을 의미합니다 . 그러나 Firefox 3.6 이하에서는 작동하지 않습니다. 이것은 Firefox 4에서 수정되었습니다.
둥근 모서리가 이제 내용과 이미지를 자릅니다 (오버플로 : 표시가 설정되지 않은 경우).
https://developer.mozilla.org/en/CSS/-moz-border-radius
따라서 여전히 수정 사항이 필요합니다.
#outer {
overflow: hidden;
}
#inner {
-moz-border-radius: 10px 10px 0 0;
}
여기에서 작동하는지 확인하십시오 : http://jsfiddle.net/VaTAZ/3/
답변
이것에 무슨 문제가 있습니까?
#outer {
display: block; float: right; margin: 0; width: 200px;
background-color: white; overflow: hidden;
}
#inner { background-color: #209400; height: 10px; border-top: none; }
#outer, #inner{
-moz-border-radius: 10px;
-khtml-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
답변
바닥에 날카로운 모서리를 원하면 다음을 사용하십시오.
왼쪽 상단 반경 : 10px; 경계 상단 오른쪽 반경 : 10px; -경계 경계 반경-왼쪽 -경계 경계 반경-오른쪽
답변
내부 div에 상대적인 position : relative를 만들어 보셨습니까?
그건:
#inner {
background-color: #209400;
height: 10px;
border-top: none;
position: relative;
left: 15px;
top: 15px;
}