2013-05-23 3 views
1

컨테이너 옆에 (배경을 모방 한) 컨테이너와 오른쪽에 파란색으로 된 삼각형을 넣으려고합니다.컨테이너와 함께 떠 다니는 CSS 트라이앵글

몇 가지 해결책을 시도했지만 삼각형의 절대 위치 지정을 사용하여 절대 배치 된 삼각형 위에 요소를 추가하면 위치가 깨집니다. 또한 :after:before으로 삼각형을 시도했지만 컨테이너에 clear을 사용했지만 작동하지 않았습니다.

CSS :

#sortables { 
padding: 15px; 
} 

.sortable { 
    list-style-type: none; 
    background-color: #d2e0f2; 
    padding: 5px; 
} 

.sortable li { 
    margin: 5px; 
    padding: 3px; 
} 

.sortable li:hover { 
    cursor: move 
} 

ul{ 
    margin:0; 
} 

.dimensions_container { 
    float: left; 
    display: block; 
    position: relative; 
    width: 160px; 
    margin:10px; 
} 

.triangle-right{ 
    content: ''; 
    display: block; 
    position: absolute; 
    top: 10px; 
    left: 170px; 
    width: 0; 
    height: 0; 
    border-color: transparent transparent transparent #d2e0f2; 
    border-style: solid; 
    border-width: 17px; 
} 

.triangle-left{ 
    content: ''; 
    display: block; 
    position: absolute; 
    top: 1px; 
    left: 25px; 
    width: 0; 
    height: 0; 
    border-color: transparent transparent transparent white; 
    border-style: solid; 
    border-width: 17px; 
} 


.header { 
    text-align:center; 
    padding: 3px; 
    width: 154px; 
    background-color: #d2e0f2; 
} 

HTML :

<div id="sortables"> 
    <div class="dimensions_container"> 
     <div class="header">Available groups</div> 
     <ul id="sortable1" class="sortable droptrue ui-sortable"> 
      <li id="undefined" class="ui-state-default">undefined</li> 
      <li id="undefined" class="ui-state-default">undefined</li> 
      <li id="undefined" class="ui-state-default">undefined</li> 
     </ul> 
    </div> 
    <div class="triangle-right"></div> 
    <div class="dimensions_container"> 
     <div class="header">Grouped by</div> 
     <ul id="sortable2" class="sortable droptrue ui-sortable"></ul> 
    </div> 
    <div class="triangle-left"></div> 
    <div class="dimensions_container"> 
     <div class="header">Drill into</div> 
     <ul id="sortable3" class="sortable droptrue ui-sortable"></ul> 
    </div> 
</div> 

+1

'content' 속성은':: after' 및':: before' 의사 요소와 함께 만 사용할 수 있습니다 – Adrift

+0

이미지에서 삼각형이 어디로 가야하는지 나타낼 수 있습니까? 윤곽선으로 충분합니다, 감사합니다! –

+1

흰색 배경에 흰색 삼각형을 놓는 이유는 무엇입니까? 내가 뭔가 빠진거야? –

답변

2

여기 있습니다. 당신이 jsFiddle의 코드를 확인할 수있는 것들 : http://jsfiddle.net/xKzuX/

CSS를 화살표를 사용하여, 그것의 position: relative와 부모에 :before:after 의사 선택기를 사용하는 것이 좋습니다 (당신은 그 부분이 있었다).

그런 다음 화살표를 절대 위치로 지정합니다 (해당 부분도 있지만 값이 잘못되었습니다).

재사용하기 쉽도록 왼쪽/오른쪽 클래스를 다시 사용했습니다. 필요할 때마다 추가 할 수 있습니다.

마지막으로 화살표가 일부 브라우저에서 제대로 렌더링되지 않으면 transform:rotate(360deg);을 추가하면 360deg이되므로 (회전이 전혀 감지되지 않음) 가장자리를 부드럽게합니다.

+0

훌륭함은 매력처럼 작동합니다! 360 트릭의 변형은 정말 영리한 것입니다. 다시 한번 감사드립니다! – dotmindlabs

0

당신은 사용해야 할 수도 있습니다

position:relative 

삼각형의 부모 (여기에 #sortables).

관련 문제