웹 페이지 제작

웹 페이지 디자인 [텍스트 타입]

우당당쿵당콩탕 2023. 3. 19. 11:46
728x90
반응형

완성화면

특징

이 페이지 특징은 마우스 오버 효과입니다.

마우스 오버 효과는

이미지, 텍스트, 버튼 등에 마우스 포인터가 올라갔을 때 발동되는 전환효과입니다.

 

각 카테고리 창 위에 마우스를 올리면 아래와 같이 회색으로 변합니다.

또, 더보기 버튼에 마우스를 올리면 + 버튼이 돌아가는 효과입니다.

자세한 사항은 상단 링크에서 확인해보시면 됩니다!


HTML - body

<body>
     <section class="text__wrap section center nexon">
          <div class="container">
               <span class="section__small">NOTICE</span>
               <h2 class="section__h2 mb70">스몰토크를 위한 얇고 넓은 지식</h2>
               <div class="text__inner">
                    <div class="text t1">
                         <h3 class="text__title">스몰토크란?</h3>
                         <p class="text__desc">'서로 잘 모르는 사람들이 중요하지 않은 어떤 것에 대해서 나누는 대화'이지만 실제로는 일상적이고 소소한 주제로 대화를 하며며 상대방을 알아가는 것이 스몰토크라고 이해하셔도 됩니다.</p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
                    <div class="text t2">
                         <h3 class="text__title">인도 영화는 왜 항상 춤을 출까?</h3>
                         <p class="text__desc">인도는 지정된 공용어가 22가지나 됩니다.사투리 수준이 아닌 외국어와 다름 없는 경우가 많고 문맹률이 40% 이상이기 때문에 모두가 공감할 수 있는 춤을 넣게 된 것입니다.</p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
                    <div class="text t3">
                         <h3 class="text__title">고대 그리스의 신성부대</h3>
                         <p class="text__desc">고대 그리스의 도시국가(폴리스) 테베에 존재했던 정예 보병부대로 높은 공격력을 자랑하던 부대였습니다. 이 부대는 남성 동성 커플 150쌍으로 구성되어 있었다고 합니다.       </p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
                    <div class="text t4"> 
                         <h3 class="text__title">고양이와 심장병</h3>
                         <p class="text__desc">고양이를 키우면 심장질환 위험이감소된다는 연구구가 있습니다.미국 미네소타대학 뇌졸중연구소에서 진행된 실험으로 고양이를 키우는사람은 심장질환으로 사망할 위험이 30%나 적다고합니다.</p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
                    <div class="text t5">
                         <h3 class="text__title">아돌프 히틀러와 미술</h3>
                         <p class="text__desc">아돌프 히틀러의 꿈은 화가였습니다. 비엔나 예술대의 미술학교에 진학하길 원했으나 입학시험에서 탈락하였고 오스트리아 빈의 미술학교에 지원서를 제출했으나 낙방하였습니다.</p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
                    <div class="text t6">
                         <h3 class="text__title">1광년과 우리 은하</h3>
                         <p class="text__desc">빛은 1초당 약 300,000km 속도로 움직입니다. 따라서 1광년, 즉 빛이 1년동안 이동할 수 있는 거리는 대략 9조 4607억 3057만이고 우리 은하의 지름은 약 105,700광년입니다.</p>
                         <a class="text__btn" href="#">더보기</a>
                    </div>
               </div>
          </div>
     </section>
</body>

태그

<section> 태그는 문서의 섹션을 정의하며, class 속성으로 "text__wrap section center nexon" 값을 가지고 있습니다.

<div> 태그는 문서의 요소들을 감싸는 컨테이너 역할을 하며, class 속성으로 "container" 값을 가지고 있습니다.

<span> 태그는 짧은 문장이나 단어를 표시할 때 사용되며, class 속성으로 "section__small" 값을 가지고 있습니다.

<div> 태그들은 class 속성값으로 각각 "text t1", "text t2", "text t3", "text t4", "text t5", "text t6" 값을 가지고 있으며, 각각 하나의 텍스트 블록을 정의하고 있습니다

<h3> 태그는 문서의 소제목을 정의하며, 각각의 텍스트 블록에 포함된 내용을 설명하고 있습니다. <p> 태그는 문서의 텍스트를 정의하며, 각각의 텍스트 블록에 포함된 내용을 설명하고 있습니다.

<a> 태그는 하이퍼링크를 정의하며, class 속성으로 "text__btn" 값을 가지고 있습니다.

위 코드는 하나의 섹션(구간)에서 여러 개의 텍스트 블록(내용설명) 을 각각 정의하고 있습니다.

 

Style

<style>
          * {
               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;}


          .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;
          }
          .center {
               text-align: center;
          }
          .section__small {
               font-size: 14px;
               border-radius: 50px;
               padding: 1px 23px;
               background-color: #01356E;
               color: #fff;
               text-transform: uppercase;
               display: inline-block;
               margin-bottom: 20px;
          }
          .section__h2 {
               font-size: 50px;
               font-weight: 400;
               margin-bottom: 30px;
               line-height: 1;
          }
          .section__desc {
               font-size: 22px;
               line-height: 25px;
               color: #666666;
               margin-bottom: 70px;
               font-weight: 300;
               line-height: 1.5;
          }
          /* text__wrap */
          .text__inner {
               text-align: left;
               display: flex;
               flex-wrap: wrap;
               justify-content: space-between;
          }
          .text__inner .text {
               width: 32.3333%;
               border: 1px solid #f5f5f5;
               border-radius: 10px;
               padding: 90px 20px 20px 20px;
               box-sizing: border-box;
               margin-bottom: 20px;
               transition: all 0.3s;
               cursor: pointer;
               position: relative;
          }
          .text__inner .text:hover {
               background-color: #f5f5f5;
          }
          .text__title {
               font-size: 24px;
               margin-bottom: 10px;
          }
          .text__desc {
               font-size: 16px;
               color: #666;
               margin-bottom: 15px;
               line-height: 1.5;
          }
          .text__inner .text::before {
               content: '';
               width: 60px;
               height: 60px;
               background-color: #081669;
               background-image: url(../asset/img/textType01_01.svg);
               background-repeat: no-repeat;
               background-position: center;
               position: absolute;
               left: 20px;
               top: 20px;
               border-radius: 50%;
          }
          .text__inner .text.t1::before {
               background-color: #01356E;
               background-image: url(../asset/image/textType01_01.svg);
          }
          .text__inner .text.t2::before {
               background-color: #1C9297;
               background-image: url(../asset/image/textType01_02.svg);
          }
          .text__inner .text.t3::before {
               background-color: #45739F;
               background-image: url(../asset/image/textType01_03.svg);
          }
          .text__inner .text.t4::before {
               background-color: #CE7082;
               background-image: url(../asset/image/textType01_04.svg);
          }
          .text__inner .text.t5::before {
               background-color: #CCBBAA;
               background-image: url(../asset/image/textType01_05.svg);
          }
          .text__inner .text.t6::before {
               background-color: #4F3A4B;
               background-image: url(../asset/image/textType01_06.svg);
          }
          .text__btn {
               float: right;
               position: relative;
               padding-right: 20px;
          }
          .text__btn::before {
               content: '';
               position: absolute;
               right: 0;
               top: 0;
               width: 15px;
               height: 15px;
               background-image: url(../asset/image/icon_plus.svg);
               transition: all 0.3s;
          }
          .text__btn:hover::before {
               transform: rotate(360deg);
          }
     </style>

마우스 오버

CSS를 사용하여 버튼에 화살표 아이콘을 추가하고,

해당 아이콘이 마우스 오버시 360도 회전하는 효과를 만들어 보겠습니다.

 

첫 번째 블록인 .text__btn은 버튼에 대한 스타일을 정의합니다.
float: right는 버튼을 오른쪽으로 떠있게 만듭니다.
position: relative은 해당 엘리먼트의 위치를 상대적으로 조정할 수 있도록 합니다.
padding-right: 20px은 버튼 내부에 오른쪽 여백을 추가합니다.

두 번째 블록인 .text__btn::before는 가상 선택자를 사용하여 버튼 내부에 콘텐츠를 추가합니다.
content: ''는 콘텐츠를 빈 문자열로 설정합니다.
position: absolute는 해당 엘리먼트를 부모 엘리먼트를 기준으로 절대적인 위치로 배치하도록 합니다.
right: 0과 top: 0은 해당 엘리먼트를 부모 엘리먼트의 오른쪽 상단 모서리에 배치하도록 합니다.
width: 15px와 height: 15px는 아이콘의 크기를 지정합니다.
background-image: url(../asset/image/icon_plus.svg)는 배경 이미지를 설정합니다.

마지막 블록인 .text__btn:hover::before는 마우스 오버시 아이콘에 대한 스타일을 정의합니다.
transform: rotate(360deg)는 해당 엘리먼트를 360도 회전시키는 효과를 줍니다.
transition: all 0.3s는 모든 속성에 대해 0.3초의 전환 효과를 부여합니다.
따라서 마우스 오버시 아이콘이 부드럽게 회전하는 것을 볼 수 있습니다.