728x90
반응형

 

 

 

슬라이드 유형 사이트

 

 

 

완성 화면

https://fitalux.github.io/web2023/site/sliderType/sliderType01.html

 

 

 

 

 

코드 보기 / CSS 

 

/* slider__wrap */
        .slider__inner .slider {
            height: 600px;
            background-image: url(../asset/img/sliderType01_01.jpg);
            background-size: cover;
            background-repeat: no-repeat;
            background-position: center;
            position: relative;
            z-index: 1;
        }
        .slider__info {
            padding: 100px 0;
        }
        .slider__info .small {
            display: inline-block;
            padding: 1px 30px;
            background-color: #fff;
            color:#000;
            font-size: 16px;
            border-radius: 50px;
            text-transform: uppercase;
            margin-bottom: 10px;
        }
        .slider__info .title{
            font-size: 80px;
            color: #fff;
            margin-bottom: 40px;
            margin-right: -5px;
        }
        .slider__info .desc{
            font-size: 18px;
            line-height: 1.5;
            color: #fff;
            width: 50%;
            word-break: keep-all;
        }
        .slider__info .btn{
            margin-top: 100px;
        }
        .slider__info .btn a{
            width: 180px;
            background-color: #fff;
            font-size: 16px;
            display: inline-block;
            text-align: center;
            padding: 12px 0;
            margin-right: 4px;
        }
        .slider__info .btn a:last-child {
            background-color: #000;
            color: #fff;
        }
        .slider__arrow a {
            position: absolute;
            top: 50%;
            background-image: url(../asset/img/icon_main.svg);
            background-size: 500px;
            width: 30px;
            height: 56px;
            display: block;
            margin-top: -28px;
        }
        .slider__arrow a:first-child {
            left: 20px;
        }
        .slider__arrow a:last-child {
            right: 20px;
            background-position: -52px 0;
        }
        .slider__dot {
            position: absolute;
            left: 50%;
            bottom: 20px;
            transform: translateX(-50%);
        }
        .slider__dot a {
            width: 16px;
            height: 16px;
            display: inline-block;
            background-image: url(../asset/img/icon_main.svg);
            background-size: 500px;
            margin: 0 3px;
        }
        .slider__dot a.dot {
            background-position: -101px -1px;
        }
        .slider__dot a.active {
            background-position: -121px -1px;
        }
        .slider__dot a.play {
            background-position: -141px -1px;
        }
        .slider__dot a.stop {
            background-position: -161px -1px;
        }
        @media only screen and (-webkit-min-device-pixel-ratio: 2),
            only screen and (min-device-pixel-ratio: 2),
            only screen and (min-resolution: 2dppx) {
                .slider__inner .slider {
                    background-image: url(../asset/img/sliderType01_01@2x.jpg);
                }
    	}

 

 

 

 

 

코드 보기 / HTML

 

<section class="slider__wrap nexon">
        <h2 class="blind">메인 슬라이드 영역</h2>
        <div class="slider__inner">
            <div class="slider">
                <div class="slider__info container">
                    <span class="small">notice</span>
                    <h3 class="title">광활한 우주에 펼쳐진 길, 은하수</h3>
                    <p class="desc"> 은하수는 끝이 없는 우주의 신비로운 대상이며, 그 안에는 끊임없이 진화하는 별들과 이례적인 천문학적 현상들이 숨어 있습니다.</p>
                    <div class="btn">
                        <a href="#">자세히 보기</a>
                        <a href="#">알아보기</a>
                    </div>
                </div>
                <div class="slider__arrow">
                    <a href="#"><span class="blind">이전 이미지</span></a>
                    <a href="#"><span class="blind">다음 이미지</span></a>
                </div>
                <div class="slider__dot">
                    <a href="#" class="dot active"><span class="blind">첫번째 이미지</span></a>
                    <a href="#" class="dot"><span class="blind">두번째 이미지</span></a>
                    <a href="#" class="dot"><span class="blind">세번째 이미지</span></a>
                    <a href="#" class="dot"><span class="blind">네번째 이미지</span></a>
                    <a href="#" class="dot"><span class="blind">다섯째 이미지</span></a>
                    <a href="#" class="play"><span class="blind">play</span></a>
                    <a href="#" class="stop"><span class="blind">stop</span></a>
                </div>
            </div>
        </div>
    </section>

 

 

 

 

 background-image: url(../asset/img/sliderType01_01.jpg);

:slider 요소의 배경 이미지를 sliderType01_01.jpg로 지정하는 것.

 

 

 

background-size

:배경 이미지의 크기를 설정하는데 사용된다.

속성  역할
cover 이미지를 요소의 크기에 맞게 늘려서 모두 보이도록 한다.
이미지의 일부가 잘릴 수 있다.
contain 이미지를 요소의 크기에 맞게 축소해서 모두 보이도록 한다.
요소의 일부가 노출될 수 있다.
길이 값 (ex. 100px, 50px 등) 이미지의 크기를 지정한 길이로 설정한다.
100px, 50px 등과 같이 가로와 세로의 크기를 각각 설정할 수 있다.
백분율 값 (ex. 50%, 100% 등) 이미지의 크기를 요소의 백분율로 설정한다.
50%, 100%와 같이 가로와 세로의 크기를 각각 설정할 수 있다.

 

    background-size: cover;

    :배경 이미지를 요소 크기에 맞게 늘리거나 줄여서 모두 보이도록 설정하는 것. 

 

 

 

 background-repeat

:배경 이미지가 반복되는 방식을 설정하는데 사용된다.

repeat 이미지를 수평, 수직 방향으로 반복해서 배치
repeat-x 이미지를 수평 방향으로 반복해서 배치
repeat-y 이미지를 수직 방향으로 반복해서 배치
no-repeat 이미지를 반복하지 않고 한 번만 배치

 

    background-repeat: no-repeat;

    :배경 이미지가 반복되지 않도록 설정하는 것.

 

 

 

    background-position: center;

    :배경 이미지가 요소 중앙에 위치하도록 설정하는 것.  

 

 

 

word-break

:한 줄에 글자가 너무 길어서 줄 바꿈이 필요할 때 단어를 분리하는 방식을 설정한다.

nomal 기본값으로 단어를 분리
break-all 모든 문자에서 줄바꿈을 하여 단어를 분리
keep-all 단어 중간에서는 분리하지 않고 다음 줄로 이동.
단어의 시작 부분에서만 분리.
break-word 단어가 아니라 긴 문자열에서 줄바꿈을 하여 분리.
단어가 아니라도 분리할 수 잇는 경우에는 break-all과 동일하게 처리.

 

word-break: keep-all

:클래스명이 desc인 요소 안의 텍스트들은 단어의 중간에서 분리하지 않고 다음 단어의 시작 부분에서 줄바꿈하도록 설정.

 

 

 

 @media only screen and (-webkit-min-device-pixel-ratio: 2),
            only screen and (min-device-pixel-ratio: 2),
            only screen and (min-resolution: 2dppx) {
                .slider__inner .slider {
                    background-image: url(../asset/img/sliderType01_01@2x.jpg);
                }

@media 를 사용하여 디바이스의 픽셀 밀도가 2x 이상인 경우에만 적용되는 스타일을 정의한다.

 

(-webkit-min-device-pixel-ratio: 2)

: 웹킷 기반 브라우저에서 디바이스의 픽셀 밀도를 지정하는 속성

 

min-device-pixel-ratio

: 그 외 브라우저에서 디바이스의 픽셀 밀도를 지정하는 속성.

 

min-resolution

:디바이스의 해상도를 지정하는 속성.

이 중 하나라도 해당되는 경우, 슬라이더의 이미지를 @2x의 해상도로 변경한다.

 

@2x 해상도 이미지는 고해상도 디스플레이에서 더욱 선명한 이미지를 제공한다.

 

 

 

 

 

 

728x90
반응형

이미지 유형 사이트

 

 

 

 

완성  화면

 

 

 

 

 

코드 보기 / CSS

 /* reset */
         * {
            margin: 0;
            padding: 0;
        }
        a {
            text-decoration: none;
            color:#000;
        }
        h1,h2,h3,h4,h5,h6 {
            font-weight: normal;
        }
        img {
            vertical-align: top;
            width: 100%;
        }
        .mt10 {margin-top: 10px !important;}
        .mt20 {margin-top: 20px !important;}
        .mt30 {margin-top: 30px !important;}
        .mt40 {margin-top: 40px !important;}
        .mt50 {margin-top: 50px !important;}
        .mt60 {margin-top: 60px !important;}
        .mt70 {margin-top: 70px !important;}

        .mb10 {margin-bottom: 10px !important;}
        .mb20 {margin-bottom: 20px !important;}
        .mb30 {margin-bottom: 30px !important;}
        .mb40 {margin-bottom: 40px !important;}
        .mb50 {margin-bottom: 50px !important;}
        .mb60 {margin-bottom: 60px !important;}
        .mb70 {margin-bottom: 70px !important;}

        /* common */
        .container {
            width: 1160px;
            margin: 0 auto;
            padding: 0 20px;
            /* background-color: rgba(0,0,0,0.1); */
        }
        .nexon {
            font-family: 'NexonLv1Gothic';
            font-weight: 400;
        }
        .section {
            padding: 120px 0;
        }
        .section.center {
            text-align: center;
        }
        .section__small {
            font-size: 14px;
            border-radius: 50px;
            background-color: #AC43FF;
            color: #fff;
            padding: 1px 23px;
            text-transform: uppercase;
            margin-bottom: 20px;
            display: inline-block;
        }
        .section__h2 {
            font-size: 50px;
            color: #000;
            font-weight: 400;
            margin-bottom: 30px;
            line-height: 1;
        }
        .section__desc {
            font-size: 22px;
            color: #666;
            margin-bottom: 70px;
            font-weight: 300;
            line-height: 1.5;
        }
        .img-text__inner {
            justify-content: space-between;
            display: flex;
            flex-wrap: wrap;
        }
        .img-text__inner .text {
            width: 374px;
            height: 500px;
            margin-right: 15px;
        }
        .image__body {
            width: 374px;
            height: 500px;
            margin-right: 10px;
            border-radius: 10%;
        }

        </style>

 

 

 

 

코드 보기 / HTML

<section class="img-text__wrap section nexon">
        <div class="container">
            <div class="img-text__inner">
                <article class="text">
                    <span class="section__small">notice</span>
                    <h2 class="section__h2">나선형 은하(Spiral Galaxy)</h2>
                    <span class="desc">나선형 은하는 중심 부분에 바(bar)와 팔(arm) 형태로 뻗어나가는 구조입니다.</span>
                    <p class="desc">
                        나선형 은하 안에는 주로 별들이 모여있는 은하원반이 있습니다. 이 은하원반 안에는 다양한 크기와 모양의 은하들이 분포해 있습니다.
                        이러한 은하들은 대부분 나선형 은하 안의 중심 부분인 바 주변이나 나선형 팔 사이에 위치하고 있습니다. 이러한 은하들을 위성 은하(Satellite Galaxy) 또는 동반 은하(Companion Galaxy)라고 합니다.
                        이렇게 나선형 은하 안에 위치한 위성 은하들은 나선형 은하와 서로 상호작용하면서 형태를 바꾸는 등의 영향을 끼치기도 하며, 형태에 따라 다양한 종류가 있습니다.</p>
                </article>
                    <article class="image">
                        <figure class="image__body">
                            <img src="../asset/img/img-textType01_01.jpg" alt="나선 은하">
                        </figure>
                    </article>
                    <article>
                        <figure class="image__body">
                            <img src="../asset/img/img-textType01_02.jpg" alt="나선형 은하">
                        </figure>
                    </article>
            </div>
        </div>
    </section>

 

 

 

.img-text__inner {
            justify-content: space-between;
            display: flex;
            flex-wrap: wrap;
        }

 

jusrify-content: space-between;

: img-text__inner  요소 안에 자식 요소로 있는 두 장의 이미지와 텍스트를 일정한 간격으로 떨어뜨리기 위해 요소들을 양끝으로 정렬하는 속성을 주었음.

 

 

display: flex;

:내부 요소들을 배치하기 위해 해당 요소를 플렉스 컨테이너로 만듦.

 

flex-wrap

:내부 요소들이 한 줄로 배치되는 것이 아니라 여러 줄로 나누어서 배치되도록 함.

요소들이 부모 요소의 너비를 벗어날 경우 자동으로 줄바꿈 되어 다음 줄에 배치됨.

 

 

또한, 이미지와 텍스트 박스를 정렬하기 위해서는 전부 article로 감쌀 필요가 있었음.

article로 감싸주지 않을 시, 독립적인 컨텐츠 영역이 정의되지 않아 jusrify-content: space-between; 속성이 먹히지 않음.

 

 

 

 

.image__body {
            width: 374px;
            height: 500px;
            margin-right: 10px;
            border-radius: 10%;
}

 

 

image__body 라는 클래스명을 가진 요소들의 너비와 높이를 지정해주는 속성으로, 여기서는 두 장의 이미지에 사용되었다.

이미지의 가로 너비(width)를 374px로 지정하였고, 세로 높이(height)를 500px로 지정하였다.

이미지 사이에 적당한 간격을 주기 위해 margin-bottom : 10px 속성을 주었고,

모서리를 살짝 둥굴게 처리하기 위해 border-radius: 10% 속성을 주었다.

 

 

 

<section class="img-text__wrap section nexon"> <seciton>

section 태그 안에 있는 모든 요소들에 폰트가 적용될 수 있도록 클래스명 nexon을  작성함.

section 안에 있는 small 태그나, h2 태그가 미리 작성해놓은 css의 속성을 상속받을 수 있도록 클래스명 section을 작성함

 

 

<span class="desc">나선형 은하는 중심 부분에 바(bar)와 팔(arm) 형태로 뻗어나가는 구조입니다.</span>
<p class="desc">
나선형 은하 안에는 주로 별들이 모여있는 은하원반이 있습니다. 이 은하원반 안에는 다양한 크기와 모양의 은하들이 분포해 있습니다.
이러한 은하들은 대부분 나선형 은하 안의 중심 부분인 바 주변이나 나선형 팔 사이에 위치하고 있습니다. 이러한 은하들을 위성 은하(Satellite Galaxy) 또는 동반 은하(Companion Galaxy)라고 합니다.
이렇게 나선형 은하 안에 위치한 위성 은하들은 나선형 은하와 서로 상호작용하면서 형태를 바꾸는 등의 영향을 끼치기도 하며, 형태에 따라 다양한 종류가 있습니다.</p>
</article>

 

이전의 유형들과는 다르게 소제목이 없으며, 큰 제목을 제외한 모든 텍스트들이 글자색과 글자 크기 등 자잘한 속성이 모두 같기 때문에  따로 속성을 주지 않고, 

각각 span 태그, p 태그에  desc 클래스를 추가하여 한꺼번에 같은 속성이 적용되도록 하였다.

 

 

+ Recent posts