좋아요. CSS3를 통해 만들어진 모양과 상호 작용하는 것과 관련된 잠재적 인 까다로운 질문이 있습니다. 다음 바이올린을 참조하십시오 http://jsfiddle.net/MH4LN/1/CSS3 모양이 겹쳐서 표시됨
코드 예제 : 다음 CSS와
<div class="container">
<div class="l1"></div>
<div class="l2"></div>
<div class="l3"></div>
</div>
:
.container {
width: 570px; height: 570px;
position: relative;
}
.l1 {
width: 352px;
height: 352px;
background: red;
position: absolute;
top: 109px;
left: 109px;
z-index: 999;
-webkit-border-radius: 176px;
border-radius: 176px;
}
.l2 {
width: 464px;
height: 464px;
background: blue;
position: absolute;
top: 53px;
left: 53px;
z-index: 998;
-webkit-border-radius: 232px;
border-radius: 232px;
}
.l3 {
width: 570px;
height: 570px;
background: green;
position: absolute;
z-index: 997;
-webkit-border-radius: 285px;
border-radius: 285px;
}
.l1:hover, .l2:hover, .l3:hover {
background: #fff;
}
내 문제는 이것이다 : 내가 가져가 각 모양에 CSS를 적용 할. 셰이프는 테두리 폭을 div 너비/높이의 절반 크기로 설정하여 만듭니다 (원을 만듭니다). 그러나 반경에 의해 숨겨진 빈 영역 위로 마우스를 가져 가면 해당 요소에서 여전히 호버 상태가 트리거됩니다.
이를 방지 할 수있는 방법이 있나요 : 여기가 무슨 뜻인지 설명 할 수있는 이미지입니까? 간단한 둥근 div 대신 canvas 요소를 사용해야합니까?
편집 : Firefox에서 작동하므로 웹킷 브라우저에만 해당되는 것 같습니다.
편집 2 : Niels의 솔루션이 맞으면 받아 들일 것입니다. 상자 모델은 요소가 직사각형임을 나타냅니다. 따라서이 방식은 잘못되었습니다. 그러나 나는 SVG에 필요한 것을 성취 할 수 있었다. CSS의 표준이 레벨 2 나 3가 정의하는 모든이 동작을 정의하지 http://jsfiddle.net/uhrHX/1/
특정 브라우저와 관련이 있습니까? 이 예제는 나를 FF로 사용한다. –
WebKit에서만 나타나는 것 같습니다. Safari 및 Chrome에 문제가 표시됩니다. – Ian
이것은 요소 자체가 여전히 사각형/사각형이므로 기본적으로 경계 반경 구성 요소가 투명하게 만들어집니다. 불필요한 HTML 및 CSS 마크 업을 많이 사용하지 않고도이를 처리 할 수있는 순수한 CSS 방법은 없습니다. btw, 원을 만드는 훨씬 쉬운 방법은'border-radius : 50 %; '입니다. – PlantTheIdea