>  기사  >  웹 프론트엔드  >  CSS에서 이미지를 육각형으로 설정하는 방법

CSS에서 이미지를 육각형으로 설정하는 방법

藏色散人
藏色散人원래의
2021-02-28 14:43:304191검색

CSS에서 육각형 이미지를 설정하는 방법: 먼저 HTML 샘플 파일을 만든 다음 이미지를 본문에 삽입합니다. 마지막으로 "transform:rotate(120deg);overflow:hidden;"과 같은 CSS 스타일을 사용합니다. 그게 다야.

CSS에서 이미지를 육각형으로 설정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, HTML5&&CSS3 버전, Dell G3 컴퓨터.

CSS3는 육각형 Div 이미지 표시 효과를 구현합니다

1. 효과 그림

2. 원리 설명

이 효과에 사용되는 주요 지식 포인트:

 1. 변환: 이미지 회전

  2. 오버플로: 숨김 그 이상

  3. 숨김: 숨김도 표시와 비슷하지만, 숨겨지더라도 여전히 웹페이지에서 위치를 차지한다는 차이점이 있습니다

이 효과를 얻으려면 회전하려면 p의 3개 레이어를 사용해야 합니다(참고: p의 3개 레이어 크기는 동일합니다). 가장 바깥쪽 레이어 p(boxF)는 120도 회전하고, 두 번째 레이어(boxS)는 -60도 회전하고, 세 번째 레이어(boxT)는 다시 -60도 회전하여 정상으로 돌아옵니다. 우리 사진은 레이어 3의 p 배경에 배치됩니다. 처음 두 레이어 p에는 아무것도 없기 때문에 육각형을 얻기 위해 회전하는 데만 사용되므로 가시성을 설정합니다. 첫 번째 및 두 번째 레이어 p에는 숨겨지고 세 번째 레이어 p는 그림용이므로 표시되어야 합니다. 가시성 설정: visible; (참고: 가시성: visible을 설정하지 않으면 세 번째 레이어 p에서 기본적으로 두 번째 레이어 p(boxS)의 가시성: 숨김을 상속합니다.) 회전 후에는 여분의 부분이 분명히 있으므로 세 PS 모두에 대해 Overflow:hidden;

을 설정합니다. 회전하고 여분의 부분을 숨긴 후에는 원하는 육각형을 얻을 수 있습니다. 주목해야 할 또 다른 점은 p의 너비 대 높이 비율이 4:5를 충족해야 한다는 것입니다. 그렇지 않으면 결과는 육각형이 아닙니다. 위의 효과 그림에서. 또한 세 번째 레이어(boxT)에 p(오버레이)를 배치했습니다. 이 p는 6면 모양 위로 마우스를 이동하면 마스킹 효과가 나타납니다. p(overlay) 내부에는 + 기호가 있는 a 태그가 있습니다. a 태그를 클릭하면 레이어가 팝업되고 큰 이미지가 표시됩니다(참고: 이 js 효과는 아직 작성되지 않았습니다).

3. 위 렌더링의 DEMO 코드 [권장: "css video tutorial"]

<!DOCTYPE html><html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>CSS3 实现六边形图片展示效果</title>
    <style type="text/css">
        body, p, img, ul, li        {
            margin: 0;
            padding: 0;
        }
        body        {
            font-size: 12px;
            background-color: #DDD;
            min-width: 1200px;
        }
        ul, ul li        {
            list-style: none;
        }
        .clear        {
            clear: both;
        }       
        .box        {
            position: relative;
            width: 630px;
            margin: 100px auto;
        }
        .lineF, .lineS        {
            position: absolute;
            visibility: hidden;
        }
        .lineS        {
            top: 182px;
            left: 105px;
        }
        .boxF, .boxS, .boxT, .overlay        {
            width: 200px;
            height: 250px;
            overflow: hidden;
        }
        .boxF, .boxS        {
            visibility: hidden;
        }
        .boxF        {
            transform: rotate(120deg);
            float: left;
            margin-left: 10px;
            -ms-transform: rotate(120deg);
            -moz-transform: rotate(120deg);
            -webkit-transform: rotate(120deg);
        }
        .boxS        {
            transform: rotate(-60deg);
            -ms-transform: rotate(-60deg);
            -moz-transform: rotate(-60deg);
            -webkit-transform: rotate(-60deg);
        }
        .boxT        {
            transform: rotate(-60deg);
            background: no-repeat 50% center;
            background-size: 125% auto;
            -ms-transform: rotate(-60deg);
            -moz-transform: rotate(-60deg);
            -webkit-transform: rotate(-60deg);
            visibility: visible;
        }
        .overlay        {
            transition: all 250ms ease-in-out 0s;
            display: none;
            position: relative;
        }
        .overlay:hover        {
            background-color: rgba(0,0,0,0.6);
        }
        .boxT:hover .overlay        {
            display: block;
        }
        .overlay a        {
            display: inline-block;
            position: absolute;
            left: 50%;
            top: 50%;
            margin: -16px 0 0 -16px;
            border-radius: 3px;
            background-color: #d3b850;
            text-align: center;
            line-height: 32px;
            width: 32px;
            height: 32px;
            text-decoration: none;
            color: White;
            font-size: 18px;
            font-weight: bolder;
        }
    </style></head><body>
    <p class="box">
        <!--第一行(lineFirst)-->
        <p class="lineF">
            <p class="boxF">
                <p class="boxS">
                    <p class="boxT" style="background-image: url(img/1.jpg);">
                        <p class="overlay">
                            <a href="#">+</a>
                        </p>
                    </p>
                </p>
            </p>
            <p class="boxF">
                <p class="boxS">
                    <p class="boxT" style="background-image: url(img/2.jpg);">
                        <p class="overlay">
                            <a href="#">+</a>
                        </p>
                    </p>
                </p>
            </p>
            <p class="boxF">
                <p class="boxS">
                    <p class="boxT" style="background-image: url(img/3.jpg);">
                        <p class="overlay">
                            <a href="#">+</a>
                        </p>
                    </p>
                </p>
            </p>

        </p>
        <!--第二行(lineSecond)-->
        <p class="lineS">
            <p class="boxF">
                <p class="boxS">
                    <p class="boxT" style="background-image: url(img/4.jpg);">
                        <p class="overlay">
                            <a href="#">+</a>
                        </p>
                    </p>
                </p>
            </p>
            <p class="boxF">
                <p class="boxS">
                    <p class="boxT" style="background-image: url(img/5.jpg);">
                        <p class="overlay">
                            <a href="#">+</a>
                        </p>
                    </p>
                </p>
            </p>
        </p>
    </p></body></html>

-- 효과를 보려면 DEMO 코드를 복사하세요. 물론 사진을 직접 추가해야 합니다. , IE9 이하 버전에서는 지원되지 않습니다.

위 내용은 CSS에서 이미지를 육각형으로 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.