2014-12-09 7 views
0

사용자 아바타 이미지 (또는 .svg)의 오각형 모양을 만드는 방법을 알 수 없습니다.아바타 이미지에 대한 오각형 모양을 만드는 방법은 무엇입니까?

상단을 가리 키지 않는 모양을 찾습니다.

나는 여기에 예제를 발견했다 http://css-tricks.com/examples/ShapesOfCSS/ 그러나 어떻게 같은 모양으로 이미지를 작성 해야할지 모르겠다. 백그라운드 속성도 작동하지 않습니다. 여기에 붙어 있습니다. 어떤 CSS없이

Pentagon example

+0

당신은 CSS 변환을 적용 할 수 있습니다 ('변환 : 회전 (180도)를;') 및 CSS 트릭에서 육각 돌립니다. – j08691

+0

제공되는 SVG 답변이 도움이 될 것입니다. 오래된 브라우저 지원이 필요하다면, 아마 유일한 방법은 정상적인 이미지 위에 놓인 png 마스크 일 것입니다. png는 사용중인 배경과 일치하며 아바타를 볼 수있는 가운데에 5 각형의 구멍이 있습니다. – kthornbloom

답변

4

가장 쉬운 해결책은 svg (최대 브라우저 지원)를 사용하는 것입니다.


당신은 인라인 svgclipPath를 정의하고 imagesvg 클리핑을 적용 할 수 있습니다

<svg width="100" height="100" viewBox="-1 0 101 100"> 
 
    <path d="M20,0 L80,0 L100,60 L50,100 L0,60z" stroke="black" fill="coral" /> 
 
</svg>
. 이것은 CSS clip-path보다 나은 브라우저 지원을 제공합니다.

<svg width="100" height="100" viewBox="0 0 100 100"> 
 
    <defs> 
 
    <clipPath id="shape"> 
 
     <path d="M20,0 L80,0 L100,60 L50,100 L0,60z" /> 
 
    </clipPath> 
 
    </defs> 
 
    <image clip-path="url(#shape)" xlink:href="https://www.lorempixel.com/100/100" x="0" y="0" height="100px" width="100px" /> 
 
</svg>

+0

감사합니다. svg에 대해 알지 못했습니다. 그러나 이미지를 .png 또는 .jpg 형식으로 삽입하는 방법은 무엇입니까? – user2791999

+0

@ user2791999 - 수정 사항을 확인하십시오. 죄송합니다! 질문이 잘못되었습니다. –

4

당신은 클립 경로

CSS-Tricks Link

div { 
 
    width: 280px; 
 
    height: 280px; 
 
    background-image: url(http://placekitten.com/g/200/300); 
 
    background-size: 100%; 
 
    -webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); 
 
    clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); 
 
} 
 
/* Center the demo */ 
 

 
html, 
 
body { 
 
    height: 100%; 
 
} 
 
body { 
 
    display: flex; 
 
    justify-content: center; 
 
    align-items: center; 
 
}
<div></div>

+0

Firefox에서 작동하지 않습니다. –

+0

그냥 선택을 제공합니다. 나는 SVG도 선호한다. –

+0

나는 당신과 논쟁하지 않는다. SVG는 IMO에서도 더 좋습니다. 단지 선택만을 말합니다. –

0

를 사용할 수 있습니다 당신은 뭔가 리튬을 찾고 계십니까 이런?

#pentagon { 
 
    position: relative; 
 
    width: 54px; 
 
    border-width: 0 18px 50px; 
 
    border-style: solid; 
 
    border-color: red transparent; 
 
} 
 
#pentagon:before { 
 
    content: ""; 
 
    position: absolute; 
 
    height: 0; 
 
    width: 0; 
 
    top: 50px; 
 
    left: -18px; 
 
border-style: solid; 
 
border-width: 45px 45px 0 45px; 
 
border-color: red transparent transparent transparent; 
 
} 
 

 
.logo-sponsor{ 
 
    z-index: 1000; 
 
    position: absolute; 
 
    top: 20px; 
 
    left: 10px; 
 
    width: 36px; 
 
    height: auto; 
 
    margin: 0 auto; 
 
    display: block; 
 
}
<div id="pentagon"> 
 
    <img src="https://cdn3.iconfinder.com/data/icons/picons-social/57/43-twitter-48.png" class="logo-sponsor"> 
 
</div>