본문 바로가기
03. 웹 표준 기술/CSS

[css] 마무리

by moca7 2024. 8. 8.

 

ㅁ 초반 10분

 

ㅁ transition 

- 이행(움직임 과정) 스타일 속성 

1. transition-property : 이행 과정을 볼 css속성을 지정 

2. transition-duration : 이행 시간을 지정 (3s == 3초) (3초동안 지속. 3초에 걸쳐서.) 

3. transition-timing-function : 이행 과정이 동작하는 방식을 지정 ease, ease-in, ease-out, linear

 

 

<div class="box1">box1</div>

 

    <style>
    .box1 {
        box-sizing: border-box;
        width: 100px;
        height: 100px;
        border: 1px solid gray;
    }
    .box1:hover {
        width: 300px;
        background: red;
    }
    .box1 {
        transition-property: width, background;
        transition-duration: 3s;
        transition-timing-function: ease-in;
    }
    </style>

 

- 3초에 걸쳐서 크기가 길어지면서 빨개진다.

 

 

    <div class="box2">회전판</div>
 

 

    .box2 {
        box-sizing: border-box;
        width: 200px;
        height: 200px;
        border: 1px solid gray;
        border-radius: 100px; /* 테두리 동그랗게 */
    }

 

 

- 테두리를 동그랗게 했지만 실제로는 사각형이어서 글씨가 저기있다.

 

 

 

    .box2 {
        box-sizing: border-box;
        width: 200px;
        height: 200px;
        border: 1px solid gray;
        border-radius: 100px; /* 테두리 둥그랗게 했지만 실제로는 사각형 */

        text-align: center;
    }

 

 

    .box2 {
        box-sizing: border-box;
        width: 200px;
        height: 200px;
        border: 1px solid gray;
        border-radius: 100px; /* 테두리 둥그랗게 했지만 실제로는 사각형 */

        text-align: center;
        line-height: 200px;
    }

 

 

    .box2 {
        box-sizing: border-box;
        width: 200px;
        height: 200px;
        border: 1px solid gray;
        border-radius: 100px; /* 테두리 둥그랗게 했지만 실제로는 사각형 */

        text-align: center;
        line-height: 200px;
        font-size: 32px;
        font-weight: 900;
        cursor: pointer; /* 커서 올리면 마우스가 손모양이 됨 */
        margin: 100px auto; /* 상하, 좌우다. (?) */
    }

 

 

 


    .box2:active { /* 이 요소를 어떻게 움직일건지 */
        transform: rotate(3600deg); /* 360도면 한 바퀴. 10번 돌린다. */
        /* 근데 이것만으로는 모름. 클릭하는 순간 순식간에 10바퀴가 돈거다. 3초에 걸쳐서 보게. */
    }

    .box2 { /* 클릭하는 동안만 돌아간다. */
        transition-property: transform;
        transition-duration: 3s;
    }

 

- 클릭하는 동안 돌아감.

 

 

 
    <div class="img-container"></div>
    <div class="screen">도쿄타워</div>
 

 

        .img-container {
            width: 192px;
            height: 128px;
            background-image: url(../assets/assets/image/city2.jpg);
            /* 원본 이미지보다 박스가 작아서 짤려서 보여짐. */
        }

 

 

        .img-container {
            width: 192px;
            height: 128px;
            background-image: url(../assets/assets/image/city2.jpg);
            /* 원본 이미지보다 박스가 작아서 짤려서 보여짐. */

            background-size: 192px; /* 잘 보임 */
        }

 

 

        .screen {
            width: 192px;
            height: 128px;
            background-color: rgba(255, 0, 0, 0.4); /* 마지막은 투명도. 두 요소를 겹칠 것. */
           
            font-size: 32px;
            font-weight: 900;
            color: white;
            text-align: center; /* 수평 가운데 정렬 */
            line-height: 128px; /* 수직 가운데 정렬 */
            /* 근데 이 스크린 요소를 안보이게 숨겼다가 위의 사진을 누르면 보여지고, 또 아래에서 올라오게 */
        }

 

 

        .screen {
            width: 192px;
            height: 128px;
            background-color: rgba(255, 0, 0, 0.4); /* 마지막은 투명도. 두 요소를 겹칠 것. */
           
            font-size: 32px;
            font-weight: 900;
            color: white;
            text-align: center; /* 수평 가운데 정렬 */
            line-height: 128px; /* 수직 가운데 정렬 */
            /* 근데 이 스크린 요소를 안보이게 숨겼다가 위의 사진을 누르면 보여지고, 또 아래에서 올라오게 */

            opacity: 0; /* 숨겨짐 */
        }

 

 
        .img-container:hover + .screen {
            opacity: 1; /* 이미지에 커서 올리면 screen이 보여짐. 근데 단순 보여지게할뿐 아니라 올라오게할것 */
            transform: translateY(-128px) /* y축으로 움직이게하는 함수. 음수면 위로. 양수면 아래로. */
            /* 이미지에 hover시 보여지는데 128px만큼 위로 이동해서 보여지게 함. 박스의 세로높이만큼. */
        }
 

 

 

- 천천히 올라오고, 천천히 불투명해지게끔 하려면,

 

 

    <style>
        .img-container {
            width: 192px;
            height: 128px;
            background-image: url(../assets/assets/image/city2.jpg);
            /* 원본 이미지보다 박스가 작아서 짤려서 보여짐. */

            background-size: 192px; /* 잘 보임 */
        }
        .screen {
            width: 192px;
            height: 128px;
            background-color: rgba(255, 0, 0, 0.4); /* 마지막은 투명도. 두 요소를 겹칠 것. */
           
            font-size: 32px;
            font-weight: 900;
            color: white;
            text-align: center; /* 수평 가운데 정렬 */
            line-height: 128px; /* 수직 가운데 정렬 */
            /* 근데 이 스크린 요소를 안보이게 숨겼다가 위의 사진을 누르면 보여지고, 또 아래에서 올라오게 */

            opacity: 0; /* 숨겨짐 */
        }
        .img-container:hover + .screen {
            opacity: 1; /* 이미지에 커서 올리면 screen이 보여짐. 근데 단순 보여지게할뿐 아니라 올라오게할것 */
            transform: translateY(-128px) /* y축으로 움직이게하는 함수. 음수면 위로. 양수면 아래로. */
            /* 이미지에 hover시 보여지는데 128px만큼 위로 이동해서 보여지게 함. 박스의 세로높이만큼. */
        }
        .screen {
            transition-property: opacity, transform;
            transition-duration: 1s;
            /* 마우스 올리면 1초에 걸쳐서 올라오고, 불투명해진다. */
        }
    </style>

 

 

 

ㅁ <transform 종류 >

- 주석 봐야함.

 

 

 

 

 

 

 

 

'03. 웹 표준 기술 > CSS' 카테고리의 다른 글

[CSS] 04. 레이아웃 스타일  (0) 2024.08.07
[CSS] 05. Flex 스타일  (0) 2024.08.07
[CSS] 04. 레이아웃 스타일  (0) 2024.08.06
[CSS] 실습문제  (0) 2024.08.06
[CSS] 테이블 관련 스타일  (0) 2024.08.06