728x90
반응형

Use Stack

 

cloudinary

:클라우드 기반의 이미지 및 비디오 관리 플랫폼.

-파일 업로드 : 이미지, 비디오, 오디오 파일 등을 클라우드에 업로드 할 수 있음.

-자동 변환 : 업로드된 파일의 포맷, 크기, 품질 등을 자동으로 조정하거나 변환할 수 있음.

-CDN 제공 : 파일을 전 세계에 있는 Content Delivery Network에서 제공하여 빠른 로딩 속도를 보장함.

-이미지 최적화 : 성능을 향상 시키기 위해 이미지와 비디오를 최적화 함.

-강력한 API : 업로드, 관리, 변환 및 삭제 등 다양한 기능을 API를 통해 제어할 수 있음.

 

 

 

pusher

: 실시간 애플리케이션을 쉽게 구축할 수 있도록 도와주는 서비스.

-실시간 메시징 : WebSoket을 사용하여 클라이언트와 서버 간에 실시간으로 데이터를 주고받을 수 있음

-채널 : 사용자나 그룹 간의 실시간 상호작용을 위한 채널을 지원

-푸시 알림 : 사용자에게 실시간 알림을 보낼 수 있음

-자동 재연결 : 네트워크 문제가 발생했을 때 자동으로 재연결 시도

 

 

 

prisma db

: 현대적인 ORM(객체 -관계 매핑) 도구로, 데이터베이스와의 상호작용을 간소화 해줌.

-데이터 모델링 : Prisma Schema를 사용하여 데이터베이스 모델을 정의하고 마이그레이션을 관리할 수 있음.

-타입 안정성: Type Script와 통합되어 타입 안전한 데이터베이스 쿼리를 작성할 수 있음.

-데이터베이스 클라이언트 : Prisma Client를 통해 데이터베이스 쿼리를 쉽게 작성하고 실행할 수 있음.

-데이터베이스 마이그레이션 : Prisma Migrate를 사용하여 데이터베이스 스키마의 변경 사항을 관리하고 적용할 수 있음.

 

✏ 마이그레이션

:데이터베이스 구조의 변경 작업을 관리하고 추적하는 과정. 주로 스키마의 버전 관리를 통해 데이터베이스 구조를 업데이트하고, 기존 데이터를 새로운 구조에 맞게 변환하는 작업을 말함.

 

 

zustand

: 간단하고 직관적인 상태 관리 라이브러리

-간단한 API : 사용하기 쉽고, 복잡한 설정 없이 상태를 관리할 수 있음.

-React 호환성 : React의 상태 관리를 더 간단하게 할 수 있는 훅 기반의 라이브러리.

-빠른 성능 : 상태 업데이트가 빠르고, 리렌더링 최적화가 잘 되어 있음.

-구성 가능성:  다양한 상태 관리 패턴을 지원하며, 커스터마이즈가 가능함.

 

✏ 리렌더링

: React 등의 컴포넌트의 상태나 Props가 변경될 때 해당 컴포넌트가 다시 그려지는 과정을 말함. 리렌더링은 UI가 최신 상태를 유지하도록 함.

 

 

 

React-spinners

: React 애플리케이션에서 로딩 스피너를 쉽게 사용할 수 있도록 해주는 라이브러리

- 다양한 스피너 : 여러 가지 스타일과 애니메이션 효과를 가진 스피너 컴포넌트를 제공함.

-커스터마이징 : CSS 또는 스타일 속서을 사용하여 스피너를 쉽게 커스터마이즈 할 수 있음.

-간편한 사용: React 컴포넌트 형태로 제공되어 쉽게 사용할 수 있음.

 

 

 

next-superjson-plugin

: Next.js 애플리케이션에서 JSON 직렬화 및 역직렬화를 보다 간편하게 해주는 도구

-복잡한 데이터 직렬화 : 날짜 객체, Map, Set 등 JSON으로 직렬화 하기 어려운 데이터 타입을 지원.

-성능 최적화 : JSON의 직렬화와 역직렬화 과정에서 성능을 최적화

-Next.js 통합 : Next.js의 API 라우트와 서버 사이드 렌더링(SSR)에서 JSON 데이터를 처리하는데 도움을 줌.

 

✏ 직렬화

: 데이터 구조나 객체를 네트워크 전송이나 저장을 위해 문자열이나 바이트 스트림(데이터가 연속된 바이트 형태로 전송되거나 저장되는 데이터 흐름)으로 변환하는 과정. JSON, XML, BSON 등이 직렬화의 대표적인 형식.

 

✏  역직렬화

:  직렬화 된 데이터를 원래의 객체나 데이터 구조로 복원하는 과정. 네트워크에서 받은 데이터나 파일로부터 직렬화된 문자열을 읽어들여, 원래의 데이터 구조로 변환함.

 

 

 

NextAuth.js

: Next.js 애플리케이션에서 인증을 쉽게 구현할 수 있도록 도와주는 라이브러리.

 

 

useCallback

:React의 훅으로, 특정 콜백 함수를 메모이제이션 함.

즉, 의존성 배열에 지정된 값이 변경되지 않는 한, 동일한 콜백 함수 인스턴스를 반환.

ex. 함수가 자주 렌더링 되는 컴포넌트에서 불필요한 렌더링을 방지할 때 사용.

 

✏ 메모이제이션

: 함수의 반환값을 캐싱하여 동일한 입력값에 대해 함수가 반복적으로 계산되는 것을 방지하는 기술.

 

 

useRouter

: Next.js의 훅으로 클라이언트 사이드에서 라우팅 관련 정보를 가져오거나, 라우터를 조작할 수 있게 해줌.

ex. 페이지 이동, 쿼리 파라미터 읽기, 라우터 상태 접근에 사용.

 

 

 

NextResponse

:Next.js의 app 디렉토리와 관련된 새로운 API를 통해 사용되는 객체로, 서버 사이드에서 HTTP 응답을 생성하는데 사용.

ex. API 라우트나 서버 사이드 렌더링에서 HTTP 응답을 커스터마이즈 할 때 사용.

 

 

pusher Client

:  Pusher의 클라이언트 라이브러리로, 실시간 기능을 제공하는데 사용됨. 웹소켓을 통해 서버와 클라이언트 간의 실시간 통신을 지원.

 

 

pusherServer

:Pusher의 서버 라이브러리로, 서버에서 실시간 기능을 설정하고 관리하는데 사용됨.

 

 

IParams

: 타입스크립트에서 사용하는 인터페이스로, 주로 라우트 핸들러나 함수의 파라미터를 정의할 때 사용됨.

ex. API 핸들러나 라우트에서 파라미터의 타입을 정의할 때 사용.

 

✏  파라미터

: 함수나 메서드에 입력으로 전달되는 변수

 

 

React Select

:React에서 동적인 셀렉트 박스를 구현할 수 있게 해주는 라이브러리. 다양한 스타일과 기능을 제공함.

ex. 드롭다운 선택 박스를 구현할 때 사용됨.

 

 

useActiveChannel

: Pusher 또는 비슷한 라이브러리의 훅으로, 활성화된 채널에 대한 상태를 관리하는데 사용됨. 이 훅은 특정 채널의 데이터 또는 상태를 구독함.

 

 

@headlessui/react의 Transition과 Dialog

: Transition 컴포넌트는 애니메이션과 전환 효과를 적용하는데 사용됨. 상태에 따라 요소의 등장과 퇴장을 애니메이션으로 처리할 수 잇음.

Dialog 컴포넌트는 모달 대화상자를 구현하는데 사용됨. 사용자와 상호작용할 수 있는 팝업을 쉽게 만들 수 잇음.

ex. UI 요소의 부드러운 전환 효과를 구현할 때 사용, 사용자 입력을 받거나 정보를 표시하는 모달창을 구현할 때 사용.

 

 

ClipLoader

: react-spinners 라이브러리에서 제공하는 스피너 컴포넌트로, 로딩 상태를 시각적으로 표시할 때 사용.

ex. 페이지나 데이터 로딩 중 사용자에게 로딩 상태를 표시할 때 사용.

 

 

Fragment

: React의 컴포넌트로, 여러 자식 요소를 그룹화 할 때 사용됨. DOM에 추가적인 노드를 생성하지 않고 여러 자식 요소를 반환할 수 있음.

ex. 부모 요소를 추가하지 않고 자식 요소를 반환할 때 사용함.

 

 

 

 

 

728x90
반응형

 

 

 

완 성 화 면

(https://fitalux.github.io/web2023/site/site1/index.html)

 

 

 

 

코드 보기 / CSS

(여러 타입의 화면을 합친 관계로 GitHub 주소로 대체)

https://github.com/Fitalux/web2023/tree/main/site/site1/assets/css

 

GitHub - Fitalux/web2023: 수업시간에 배운 사이트입니다.

수업시간에 배운 사이트입니다. Contribute to Fitalux/web2023 development by creating an account on GitHub.

github.com

 

 

 

 

 

코드 보기 / HTML - head

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>site 1</title>

    <!-- SEO -->
    <meta name="author" content="Fitalux">
    <meta name="description" content="About the milky way">
    <meta name="keyword" content="milky way, Galaxy, stars, site">
    <meta name="robots" content="all">

    <link rel="shortcut icon" type="image/x-icon" href="assets/ico/favicon.png"/>  
    <link rel="apple-touch-icon" sizes="114x114" href="assets/ico/favicon.png"/> 
    <link rel="apple-touch-icon" href="assets/ico/favicon.png"/>

    <!-- CSS -->
    <link rel="stylesheet" href="assets/css/fonts.css">
    <link rel="stylesheet" href="assets/css/reset.css">
    <link rel="stylesheet" href="assets/css/common.css">
    <link rel="stylesheet" href="assets/css/style.css">
</head>

 

HTML 문서의 head 섹션이다.

head 섹션에는 브라우저 창에는 표시지되지 않지만 웹 페이지의 기능과 외관에 대한 정보를 포함하고 있다.

 

 

<! DOCUTYPE html>

: 브라우저에게 문서가 작성된 HTML 버전을 알리는 선언입니다. 이 경우 HTML5이다.

 

 

 

<html lang="ko">

:  HTML 문서의 시작을 나타내며 언어를 한국어로 설정합니다.

 

 

 

<head>

:  head 섹션의 시작을 표시합니다.

 

 

 

<meta>

: 문자 인코딩, Internet Explorer 호환성, 뷰포트 설정 및 SEO 관련 정보(작성자, 설명, 키워드, 로봇 설정 등)를 포함한 문서의 메타데이터를 제공한다.

 

 


<title>

: 이 태그는 웹 페이지의 제목을 설정하며, 브라우저 타이틀 바와 검색 엔진 결과에 표시된다.

 

 


<link>

: 이웹 페이지가 필요로하는 외부 리소스를 정의한다.

이에는 파비콘(브라우저 탭과 즐겨찾기에 표시되는 작은 아이콘), 애플 터치 아이콘(북마크나 홈 화면에 추가될 때 Apple 기기에 표시되는 아이콘) 및 CSS 파일(페이지의 스타일링 및 레이아웃을 정의)이 포함된다.

같은 문서 내에 CSS를 작성하지 않고 외부에 작성하고 link로 연결해줌으로서 가독성을 높일 수 있다.

 

 

 

 

 

코드 보기 / HTML -  body / skip

<div id="skip">
        <a href="#">헤더 영역 바로가기</a>
        <a href="#">슬라이드 영역 바로가기</a>
        <a href="#">이미지 영역 바로가기</a>
        <a href="#">이미지, 텍스트 영역 바로가기</a>
        <a href="#">카드 영역 바로가기</a>
        <a href="#">배너 영역 바로가기</a>
        <a href="#">텍스트 영역 바로가기</a>
        <a href="#">푸터 영역 바로가기</a>
    </div>
    <!-- skip -->

 

웹 페이지의 스킵 내비게이션(skip navigation)을 구현한다.

 

스킵 내비게이션은 웹 페이지에 접근할 때 키보드만으로 해당 페이지의 중요한 부분으로 빠르게 이동할 수 있도록 돕는 역할을 한다.

이를 사용하면 페이지에 접근하는 사람들이 불필요한 컨텐츠를 건너뛰고 중요한 부분으로 바로 이동할 수 있기 때문에 웹 접근성을 향상 시킬 수 있다.

 

div 태그로  스킵 내비게이션을 감싸고  a 태그로 스킵 내비게이션의 각 링크를 만든다.

링크의 href 속성은 해당 영역의 id 값을 참조한다.

스킵 내비게이션 링크를 클릭하면 해당 영역으로 포커스가 이동한다.

(그러나, 아직 id값을 참조시키지 않은 상태.)

 

 

 

 

 

 

코드 보기 / HTML - body / headerType

 <header id="headerType" class="header__wrap nexon">
        <div class="header__inner">
            <h1 class="header__logo">🌌 MILKY WAY  </h1>
            <nav class="header__menu">
                <ul>
                    <li><a href="#">은하수</a></li>
                    <li><a href="#">우리 은하</a></li>
                    <li><a href="#">국부 은하군</a></li>
                    <li><a href="#">타원형 은하</a></li>
                    <li><a href="#">나선형 은하</a></li>
                    <li><a href="#">불규칙 은하</a></li>
                </ul>
            </nav>
            <div class="header__memder">
                <a href="#">로그인</a>
            </div>
        </div>
    </header>
    <!-- headerType -->
    
   
  ** CSS**

/* header__wrap */
.header__wrap {}
.header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    background-color: #fff;
    border-bottom: 1px solid #ccc;
    font-weight: 500;
}
.header__logo {
    width: 20%;
}
.header__menu {
    width: 60%;
    text-align: center;
}
.header__menu li {
    display: inline-block;
}
.header__menu li a {
    display: inline-block;
    padding: 10px 20px;
    background-color: #fff;
}
.header__memder {
    width: 20%;
    text-align: right;
}
.header__memder a {
    border: 1px solid #000;
    padding: 10px 30px;
    border-radius: 50px;
    font-size: 16px;
}

 

header__wrap

: 헤더 영역을 감싸는 전체 영역을 지정한다.

 

 

header__inner

: 헤더 내부의 요소들을 가로 방향으로 배치하기 위해 display: flex 속성을 사용하고, 요소들 사이에 동일한 간격을 두기 위해 justify-content: space-between 속성을 사용한다.

그리고 요소들을 세로 중앙에 정렬하기 위해 align-items: center 속성을 사용한다.

헤더의 배경 색상을 #fff (흰색)으로 설정하고, 헤더와 하단 선을 구분하기 위해 border-bottom: 1px solid #ccc 속성을 사용한다.

또한 폰트의 굵기를 500으로 설정(font-weight: 500)한다.

 

 

header__logo

:헤더 중앙에 위치한 메뉴 영역을 지정한다.

너비를 20%로 조정한다.

 

 

 header__menu

: 너비(width)를 60%로 설정하고, 가운데 정렬을 위해 text-align: center 속성을 사용한다.

 

 

header__menu li , header__menu li a

: header__menu 내부의 li 태그에 있는 메뉴 항목을 가로로 나열하기 위해 display:inline-block 속성을 사용한다.

각 메뉴 항목은 a로 구성되며 padding: 10px 20px 속성을 사용하여 각 항목의 내부 여백을 설정하고 배경 색상을 흰색(#fff)로 설정한다.

 

 

header__member 

: 헤더 오른쪽에 위치한 로그인 버튼을 감싸는 영역이다.

너비를 20%로 설정하고, 오른쪽 정렬을 위해 text-align: right 속성을 사용한다.

 

 

header__member a

: 로그인 버튼을 지정하며, 테두리를 1px 두께의 검은색(#000)으로 설정하고, 테두리 반경을 50px로 설정하여 원형 모양을 만듭니다. 또한, 글꼴 크기를 16px로 설정한다.

 

 

 

 

 

코드 보기  / HTML - body / sliderType

<main id="mainType">
        <section id="sliderType" 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>
        <!--//sliderType -->

 

 

 

슬라이드 유형

: https://fitalux.tistory.com/41

 

[2023 사이트 프로젝트] 슬라이드 유형

슬라이드 유형 사이트 완성 화면 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); backgrou

fitalux.tistory.com

 

 

 

 

 

코드 보기 / HTML - body / imageType

 <section id="imageType" class="image__wrap section center nexon" >
            <div class="container">
                <h2 class="section__h2">Milky way</h2>
                <p class="section__desc">Milky way는 은하수 뿐 아니라 우리 은하를 가리키는 말이기도 합니다.</p>
                <div class="image__inner">
                    <article class="image">
                        <figure class="image__header">
                            <img src="assets/img/imageType01_01.jpg" alt="태양계가 속해 있는 우리 은하">
                        </figure>
                        <div class="image__body">
                            <h3 class="title">태양계가 속해 있는 우리 은하</h3>
                            <p class="desc">은하수는 밤하늘에 천구를 아치형으로 가로지르는 흰 빛의 흐릿한 띠 모양으로 보입니다. </p>
                            <a href="#" class="btn">자세히 보기</a>
                        </div>
                    </article>
                    <article class="image">
                        <figure class="image__header">
                            <img src="assets/img/imageType01_02.jpg" alt="우리 은하의 물리적 크기">
                        </figure>
                        <div class="image__body">
                            <h3 class="title">우리 은하의 물리적 크기</h3>
                            <p class="desc">우리 은하의 원반은 직경이 약 100,000광년이고, 평균적으로 약 1,000광년 두께입니다.</p>
                            <a href="#" class="btn">자세히 보기</a>
                        </div>
                    </article>
                </div>
            </div>
        </section> 
        <!--//imageType -->

 

 

 

이미지 유형 

: https://fitalux.tistory.com/37

 

[2023 사이트 프로젝트] 이미지 유형

이미지 유형 사이트 완성화면 코드 보기 / 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 !impo

fitalux.tistory.com

 

 

 

 

 

코드 보기 / HTML - body / img-textType

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

 

 

 

이미지/텍스트 유형

: https://fitalux.tistory.com/40

 

[2023 사이트 프로젝트] 이미지/텍스트 유형

이미지 유형 사이트 완성 화면 코드 보기 / 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 !imp

fitalux.tistory.com

 

 

 

 

 

 

코드 보기 / HTML - body / cardType

 <section id="cardType" class="card__wrap section nexon">
            <div class="container">
                <h2 class="section__h2">About the Milky way</h2>
                <p class="section__desc">은하수는 우리 태양계가 속해 있는 막대 나선 은하로, 지름은 약 10만 광년이며 약 1000억 개 이상의 별과 더불어 행성과 소행성, 혜성, 가스 구름 등 다양한 천체들이 존재합니다.</p>
                <div class="card__inner">
                    <article class="card">
                        <figure class="card__header">
                            <img src="../asset/img/cardType01_01.jpg" alt="은하수의 구성">
                        </figure>
                        <div class="card__body">
                            <h3 class="title">은하수의 구성</h3>
                            <p class="desc">은하수는 약 130억 년 전에 처음으로 형성 되었으며, 암흑 물질, 별, 가스의 혼합물로 이루어져 있습니다. 은하수의 중심부에는 약 4백만 개의 태양 질량을 가진 거대한 블랙홀이 있습니다.</p>
                            <a href="#" class="btn">자세히 보기</a>
                        </div>
                    </article>
                    <article class="card">
                        <figure class="card__header">
                            <img src="../asset/img/cardType01_02.jpg" alt="은하수의 종류">
                        </figure>
                        <div class="card__body">
                            <h3 class="title">은하수의 종류</h3>
                            <p class="desc">은하수는 크게 타원형 은하와 나선형 은하, 불규칙형 은하까지 총  세 가지 종류로 분류 됩니다. 타원형 은하는 둥근 모양을 가지며, 별들이 잘 정렬되어 있다는 특징이 있습니다.</p>
                            <a href="#" class="btn">자세히 보기</a>
                        </div>
                    </article>
                    <article class="card">
                        <figure class="card__header">
                            <img src="../asset/img/cardType01_03.jpg" alt="은하수의 색">
                        </figure>
                        <div class="card__body">
                            <h3 class="title">은하수의 색</h3>
                            <p class="desc">은하수의 색은 그 안에 포함된 별들의  색과 빛을 반사하는 먼지와 가스의 성분, 그리고 은하의 나이 등에 따라 달라집니다. 보통 은하수는 주황, 노랑,  빨강 등의 색을 가집니다.</p>
                            <a href="#" class="btn">자세히 보기</a>
                        </div>
                    </article>
                    </div>
                </div>
            </div>
        </section> 
        <!--//cardType -->

 

 

 

카드 유형 

: https://fitalux.tistory.com/33

 

[2023 사이트 프로젝트] 카드 유형

카드 유형 사이트 완성화면 카드 유형 사이트 - 코드 notice About the Milky way 명칭 및 어원 우리 은하의 명칭은 “Milky Way(밀키 웨이)”입니다. 그러나 밀키 웨이는 우리 은하 뿐 아니라 은하수 자체

fitalux.tistory.com

 

 

 

 

 

코드 보기 / HTML - body / bannerType

<section id="bannerType" class="banner__wrap section nexon center">
            <h2 class="blind">배너</h2>
        <div class="banner__inner container">
            <h3>은하수 관측</h3>
            <p>우리나라에서도 도심에서 떨어진 산이나 산골 지역에서라면 은하수를 관측할 수 있습니다.<br> 하단 링크를 통해 자세히 알아볼 수 있습니다.</p>
            <a href="https://www.insight.co.kr/news/123352">https://www.insight.co.kr/news/123352</a>
        </div>
        </section>
        <!--//bannerType -->
        
        
        ** CSS **
        
        .banner__wrap {
    background-image: url(../img/bannerType01.jpg);
    top: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    color: #fff;
}
.banner__inner h3 {
    font-size: 50px;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: 40px;
}
.banner__inner p {
    font-size: 18px;
    line-height: 1.5;
    font-weight: 700;
    margin-bottom: 80px;
}
.banner__inner a {
    color: #fff;
    font-weight: 700;
}

/* 미디어쿼리 */
@media (max-width: 960px) {
    .banner__inner h3 {
        font-size: 40px;
    }
}
@media (max-width: 600px) {
    .banner__inner h3 {
        font-size: 30px;
    }
    .banner__inner p {
        margin-bottom: 50px;
    }
}

 

section 태그에 id 값으로 bannerType을 지정하고, class 값으로 banner_wrap,  section(padding속성 부여), nexon('NexonLv1Gothic'이라는 font family 속성을 부여), center(가운데 정렬 속성 부여)를 지정하였다.

h2 태그를 통해 "배너"라는 제목을 추가하고 h2 태그에 class로 blind를 주어 화면에서 숨김처리 하였다.

 

div 태그에 class 값으로 banner__inner와 container를 지정하였고, 배너 내부에는 다음과 같은 요소들이 있다.

h3 태그 - "은하수 관측"이라는 제목

p 태그 - h3 태그 제목에 대한 간단한 설명이 포함되어 있다.

a 태그 - h3 태그 제목에 관한 자세한 정보가 포함된 링크를 포함하고 있다.

 

 

 

 

 

코드 보기 / HTML - body / textType

 <section id="textType" class="text__wrap section center nexon">
            <div class="container">
                <span class="section__small">notice</span>
                <h2 class="section__h2 mb70">About the Milky way</h2>
                <div class="text__inner">
                    <div class="text">
                        <h3 class="text__title">명칭 및 어원</h3>
                        <p class="text__desc">우리 은하의 명칭은 “Milky Way(밀키 웨이)”입니다. 그러나 밀키 웨이는 우리 은하 뿐 아니라 은하수 자체를 가리키기도 합니다. 은하수들도 각각의 명칭이 있습니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                    </div>
                    <div class="text">
                            <h3 class="text__title">갤러틱 할로(Galactic Halo)</h3>
                            <p class="text__desc">은하 중심부를 둘러싸고 있는 둥근 모양의 거대한 구조물 입니다. 은하 중심부에 위치한 은하 플레어와 달리, 할로는 무수히 많은 별, 암석체, 가스, 먼지 등이 혼합된 구조물입니다.</p>
                            <a class="text__btn" href="#">더 보기</a>
                    </div>
                    <div class="text">
                        <h3 class="text__title">은하 헤일로(Galaxy Hale)</h3>
                        <p class="text__desc">은하 헤일로는 아메리칸 천문학자 조지 엘리슨 헤일이 처음으로 제안한 은하 분류 체계입니다. 이 체계는 은하를 크기와 모양에 따라 4가지 유형으로 분류하고 있습니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                    </div>
                    <div class="text">
                        <h3 class="text__title">우리 은하의 구조</h3>
                        <p class="text__desc">우리 은하는 막대 나선 은하에 속하며, 허블의 은하 분류에 따르면 Sbc(중심에 막대가 존재하고 나선팔이 느슨히 감긴 형태)입니다. 막대 구조는 대부분 붉고 오래된 항성들로 구성되어 있습니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                    </div>
                    <div class="text">
                        <h3 class="text__title">우리 은하의 블랙홀</h3>
                        <p class="text__desc">우리 은하를 구성하는 별들은 은하의 중심부를 중심으로 나선팔 모양으로 공전합니다. 이는 은하 중심에 초대질량 블랙홀이 있기 때문이라 여겨집니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                    </div>
                    <div class="text">
                        <h3 class="text__title">우리 은하의 팔</h3>
                        <p class="text__desc">우리 은하에는 네 개의 큰 나선 팔이 있다고 여겨졌으나, 2008년에 스피처 적외선 망원경을 이용하여 1억 개 이상의 별의 분포를 분석한 결과, 단지 2개의 나선 팔만이 구분되었습니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                    </div>
                </div>
            </div>
        </section> 
        <!--//textType -->
    </main>
    <!-- mainType -->

 

 

텍스트 유형

: https://fitalux.tistory.com/45

 

[2023 사이트 프로젝트] 텍스트 유형

텍스트 유형 사이트 완성 화면 코드 보기 / 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 !imp

fitalux.tistory.com

 

 

 

 

 

코드 보기 / HTML - body / footerType

<footer id="footerType" class="footer__wrap section nexon">
        <div class="container">
            <h2 class="blind">footer</h2>
            <div class="footer__inner">
                <div class="footer__menu">
                    <div>
                        <h3>은하수 관련 정보</h3>
                        <ul>
                            <li><a href="#">은하수 소개</a></li>
                            <li><a href="#">은하수 어원</a></li>
                            <li><a href="#">우리은하 형태</a></li>
                            <li><a href="#">우리 은하 크기</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 종류</h3>
                        <ul>
                            <li><a href="#">나선형 은하</a></li>
                            <li><a href="#">타원형 은하</a></li>
                            <li><a href="#">불규칙 은하</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 구조</h3>
                        <ul>
                            <li><a href="#">은하 헤일로</a></li>
                            <li><a href="#">은하의 중심</a></li>
                            <li><a href="#">블랙홀</a></li>
                            <li><a href="#">나선 팔</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>국부 은하군</h3>
                        <ul>
                            <li><a href="#">안드로메다 은하</a></li>
                            <li><a href="#">우리 은하</a></li>
                            <li><a href="#">삼각형자리 은하</a></li>
                            <li><a href="#">대마젤란 은하</a></li>
                            <li><a href="#">바너드 은하</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 색</h3>
                        <ul>
                            <li><a href="#">청색(靑色)</a></li>
                            <li><a href="#">적색(赤色)</a></li>
                            <li><a href="#">자색(紫色)</a></li>
                            <li><a href="#">황색(黃色)</a></li>
                            <li><a href="#"> 백색(白色)</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>위성 은하</h3>
                        <ul>
                            <li><a href="#">큰개자리 왜소은하</a></li>
                            <li><a href="#">궁수자리 왜소타원은하</a></li>
                            <li><a href="#">작은곰자리 왜소은하</a></li>
                            <li><a href="#">사자자리 왜소은하</a></li>
                            <li><a href="#">목동자리 왜소은하</a></li>
                        </ul>
                    </div>
                </div>
                <address class="footer__right">
                    2023 Byun Woo Hyun 은하수 사이트 Portfolio is Power <br>All Right Reserved 
                </address>
            </div>
        </div>
    </footer>
    <!-- footerType -->

 

 

 

푸터 유형

: https://fitalux.tistory.com/50

 

[2023 사이트 프로젝트] 푸터(footer) 유형

완성 화면 푸터 유형 사이트 코드 보기 / HTML footer 은하수 관련 정보 은하수 소개 은하수 어원 우리은하 형태 우리 은하 크기 은하수의 종류 나선형 은하 타원형 은하 불규칙 은하 은하수의 구조

fitalux.tistory.com

 

728x90
반응형

 

완성 화면

 

 

 

 

 

푸터 유형 사이트

 

 

 

 

 

 

코드 보기 / HTML

  <footer class="footer__wrap section nexon">
        <div class="container">
            <h2 class="blind">footer</h2>
            <div class="footer__inner">
                <div class="footer__menu">
                    <div>
                        <h3>은하수 관련 정보</h3>
                        <ul>
                            <li><a href="#">은하수 소개</a></li>
                            <li><a href="#">은하수 어원</a></li>
                            <li><a href="#">우리은하 형태</a></li>
                            <li><a href="#">우리 은하 크기</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 종류</h3>
                        <ul>
                            <li><a href="#">나선형 은하</a></li>
                            <li><a href="#">타원형 은하</a></li>
                            <li><a href="#">불규칙 은하</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 구조</h3>
                        <ul>
                            <li><a href="#">은하 헤일로</a></li>
                            <li><a href="#">은하의 중심</a></li>
                            <li><a href="#">블랙홀</a></li>
                            <li><a href="#">나선 팔</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>국부 은하군</h3>
                        <ul>
                            <li><a href="#">안드로메다 은하</a></li>
                            <li><a href="#">우리 은하</a></li>
                            <li><a href="#">삼각형자리 은하</a></li>
                            <li><a href="#">대마젤란 은하</a></li>
                            <li><a href="#">바너드 은하</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>은하수의 색</h3>
                        <ul>
                            <li><a href="#">청색(靑色)</a></li>
                            <li><a href="#">적색(赤色)</a></li>
                            <li><a href="#">자색(紫色)</a></li>
                            <li><a href="#">황색(黃色)</a></li>
                            <li><a href="#"> 백색(白色)</a></li>
                        </ul>
                    </div>
                    <div>
                        <h3>위성 은하</h3>
                        <ul>
                            <li><a href="#">큰개자리 왜소은하</a></li>
                            <li><a href="#">궁수자리 왜소타원은하</a></li>
                            <li><a href="#">작은곰자리 왜소은하</a></li>
                            <li><a href="#">사자자리 왜소은하</a></li>
                            <li><a href="#">목동자리 왜소은하</a></li>
                        </ul>
                    </div>
                </div>
                <address class="footer__right">
                    2023 Byun Woo Hyun 은하수 사이트 Portfolio is Power <br>All Right Reserved 
                </address>
            </div>
        </div>
    </footer>

 

 

 

 

 

코드 보기 / CSS

 /* reset */
         * {
            margin: 0;
            padding: 0;
        }
        li {
            list-style: none;
        }
        a {
            text-decoration: none;
            color:#000;
        }
        h1,h2,h3,h4,h5,h6 {
            font-weight: normal;
        }
        img {
            vertical-align: top;
            width: 100%;
        }
        .blind {
            position:absolute;
            clip:rect(0 0 0 0);
            width:1px;
            height:1px;
            margin:-1px;
            overflow:hidden
        }
        .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;
        }
        .footer__wrap {
            background-color: #7B06A4;
            color: #fff;
        }
        .footer__menu{
            display: flex;
        }
        .footer__menu >  div {
            width: 16.6666%;
        }
        .footer__menu >  div h3 {
            margin-bottom: 13px;
            font-size: 18px;
            font-weight: bold;
        }
        .footer__menu >  div li {
            line-height: 1.5;
            font-size: 14px;
        }
        .footer__menu >  div li a{
            color:#fff;
        }
        .footer__right {
            text-align: center;
            margin-top: 50px;
            border-top: 3px solid #fff;
            padding-top: 50px;
            font-style: normal;
            line-height: 1.55;
        }

 

.footer__wrap

: footer__wrap 클래스를 가진 요소에 대한 스타일링이다.

푸터 전체의 배경색과 글자 색상을 지정한다. 배경 색상은 #7B06A4이며, 글자 색상은 #fff이다.

 

 

 

.footer__menu > div  (> 는 자식 선택자로 footer__menu의 자식 요소인 div에만 속성을 적용)

: footer__menu 클래스를 가진 요소의 자식 요소들에 대한 스타일링이다. display 속성을 flex로 지정하여 자식 요소(내부의 메뉴항목)들을 가로 정렬하게 만든다.

자식 요소들의 너비를 16.6666%로 일정하게 지정하여 총 6개의 자식 요소가 동일한 너비를 갖게 한다.

 

 

 

.footer__menu > div h3

: 각 메뉴 항목의 제목에 대한 스타일을 지정한다.

요소의 아래 여백을 13px로 설정하여 h3 요소 아래쪽 여백을 만든다.

글자 크기는 18px로, 글자 굵기를 굵게 설정한다.

 

 

 

.footer__menu > div li

: 각 메뉴 항목 내부의 리스트 항목에 대한 스타일을 지정한다.

줄간격 속성을 1.5만큼 설정하여 li 요소의 라인 높이를 조절하고, 글자 크기를 14px로 지정한다.

 

 

 

.footer__menu > div li a

: 각 리스트 항목에 대한 링크의 스타일을 지정한다.

a 태그로 감싸진 글자들의 색상을 흰색(#fff)로 설정하여 하이퍼링크나 글자의 색상을 변경한다.

 

 

 

.footer__right

: 푸터의 오른쪽 영역에 대한 스타일을 지정한다.

이 영역은 텍스트 정렬을 가운데로 지정하고, 상단에 3px 두께의 흰색 선을 그려낸다.

그리고 위쪽 패딩값을 50px 지정하며, 폰트 스타일과 줄간격(line-height)에 대한 스타일을 지정한다.

 

 

 

 

 

 

 

 

 

 

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;
        }
        .text__inner {
            text-align: left;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
        }
        .text__inner .text {
            width: 32.3333333%;
            border:  1px solid #f5f5f5;
            padding: 90px 20px 20px 20px;
            border-radius: 10px;
            box-sizing: border-box;
            margin-bottom: 20px;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
        }
        .text__inner .text:hover {
            background-color: #ece0f8;
        }
        .text__inner .text::before {
            content: '';
            width: 60px;
            height: 60px;
            background-color: rgba(147, 87, 245, 0.76);
            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::after {
            content: '';
        }
        .text__title {
            font-size: 24px;
            margin-bottom: 10px;
        }
        .text__desc {
            font-size: 16px;
            color: #666;
            margin-bottom: 15px;
            line-height: 1.5;
        }
        .text__btn {
            float: right;
            position: relative;
            padding-right: 20px;
        }
        .text__btn:hover::before {
            transform: rotate(360deg);
        }
        .text__btn::before {
            content: '';
            position: absolute;
            right: 0;
            top: 0;
            width: 15px;
            height: 15px;
            background-image: url(../asset/img/icon_plus.svg);
            transition: all 0.3s;
        }

 

 

 

 

 

코드 보기 / HTML

<section class="text__wrap section center nexon">
        <div class="container">
            <span class="section__small">notice</span>
            <h2 class="section__h2 mb70">About the Milky way</h2>
            <div class="text__inner">
                <div class="text">
                    <h3 class="text__title">명칭 및 어원</h3>
                    <p class="text__desc">우리 은하의 명칭은 “Milky Way(밀키 웨이)”입니다. 그러나 밀키 웨이는 우리 은하 뿐 아니라 은하수 자체를 가리키기도 합니다. 은하수들도 각각의 명칭이 있습니다.</p>
                    <a class="text__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                        <h3 class="text__title">갤러틱 할로(Galactic Halo)</h3>
                        <p class="text__desc">은하 중심부를 둘러싸고 있는 둥근 모양의 거대한 구조물 입니다. 은하 중심부에 위치한 은하 플레어와 달리, 할로는 무수히 많은 별, 암석체, 가스, 먼지 등이 혼합된 구조물입니다.</p>
                        <a class="text__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">은하 헤일로(Galaxy Hale)</h3>
                    <p class="text__desc">은하 헤일로는 아메리칸 천문학자 조지 엘리슨 헤일이 처음으로 제안한 은하 분류 체계입니다. 이 체계는 은하를 크기와 모양에 따라 4가지 유형으로 분류하고 있습니다.</p>
                    <a class="text__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 구조</h3>
                    <p class="text__desc">우리 은하는 막대 나선 은하에 속하며, 허블의 은하 분류에 따르면 Sbc(중심에 막대가 존재하고 나선팔이 느슨히 감긴 형태)입니다. 막대 구조는 대부분 붉고 오래된 항성들로 구성되어 있습니다.</p>
                    <a class="text__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 블랙홀</h3>
                    <p class="text__desc">우리 은하를 구성하는 별들은 은하의 중심부를 중심으로 나선팔 모양으로 공전합니다. 이는 은하 중심에 초대질량 블랙홀이 있기 때문이라 여겨집니다.</p>
                    <a class="text__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 팔</h3>
                    <p class="text__desc">우리 은하에는 네 개의 큰 나선 팔이 있다고 여겨졌으나, 2008년에 스피처 적외선 망원경을 이용하여 1억 개 이상의 별의 분포를 분석한 결과, 단지 2개의 나선 팔만이 구분되었습니다.</p>
                    <a class="text__btn" href="#">더 보기</a>
                </div>
            </div>
        </div>
    </section>

 

 

 

 

.text__inner {
text-align: left; 
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

:text__inner 클래스(class)는 텍스트 블록들을 감싸는 부모 요소를 나타낸다.

이 클래스는 왼쪽 정렬이 되며(text-align), 텍스트 블록들은 flexbox를 이용해(display: flex, flex-wrap: wrap) 감싸져서 각각의 텍스트 블록 사이에 공간이 생기도록 하는 속성(justify-content: space-between)이 적용된다.

 

 

 

.text__inner .text {
width: 32.3333333%;
border: 1px solid #f5f5f5;
padding: 90px 20px 20px 20px;
border-radius: 10px;
box-sizing: border-box;
margin-bottom: 20px;
transition: all 0.3s;
cursor: pointer;
position: relative;
}

 

: text__inner 클래스 안의 text 클래스는 텍스트 블록을 나타낸다.

text__inner .text 클래스는 각각의 텍스트 블록이 32.33%의 너비를 가지고 있으며(width:32.33%), 테두리가 (border: 1px) 있고, 패딩(텍스트를 기준으로 주는 여백, padding: 90px(상/위) 20px(우/오른쪽) 20px(하/아래) 20x(좌/왼쪽)))과 보더 라운딩(테두리를 둥글게 하는 것, border-radius : 10px), 마진 등의 속성을 준다.

마우스가 해당 텍스트 블록 위에 올라갔을 때 배경색이 변하도록 (:hover) 속성을 주었다.

 

 

 

 

 

 

.text__btn {
float: right;
position: relative;
padding-right: 20px;
}

: text__btn 요소는 오른쪽 끝으로 float 속성을 이용해 위치시킨다.

이어서 position 속성을 relative로 지정하여 text__btn 요소의 자식 요소의 배치를 위한 기준점으로 삼는다.

또한 padding-right 속성을 사용하여 오른쪽 패딩 값을 20px 지정해주었다.

 

 

 

 

 

 

.text__btn:hover::before {
transform: rotate(360deg);
}
.text__btn::before {
content: ' ';
position: absolute;
right: 0;
top: 0;
width: 15px;
height: 15px;
background-image: url(../asset/img/icon_plus.svg);
transition: all 0.3s;
}

 

: text__btn의 가상 요소이다.

content: ' '; 속성으로 컨텐츠를 추가하고, position 속성을 absolute로 설정하여 해당 요소의 위치를 text__btn 요소에서 상대적으로 지정한다.이 가상 요소의 위치는 right: 0과 top: 0으로 오른쪽 상단 모서리에 위치 시킨다.

 

width, height 속성은 각각 가상 요소의 너비와 높이를 15px로 설정한다.

background-image 속성은 가상 요소의 배경 이미지(까만 동그라미 배경의 +)를 지정한다.

 

또한 transiton 속성을 이용해 마우스가 까만 동그라미 배경의 + 요소 위에 마우스가 올라갔을 때의 변화를 부드럽게 처리할 수 있도록 설정하고,

transsform 속성을 이용해 가상 요소가 360도 회전 시키는 애니메이션 효과를 주었다.

 

 

 

 

 

 

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 클래스를 추가하여 한꺼번에 같은 속성이 적용되도록 하였다.

 

 

728x90
반응형

이미지 유형  사이트

 

 

 

 

 

완성화면

 

 

 

 

 

코드 보기 / CSS

<style>
        /* 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;
            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;
        }
        /* imag_type */
        .imag_inner {
            display: flex;
            justify-content: space-between;
        }
        .imag_inner .image {
            width: 570px;
            height: 370px;
            background-color: #ccc;
            position: relative;
        }
        .image__body {
            position: absolute;
            left: 0;
            bottom: 0;
            color: #fff;
            text-align: left;
            padding: 30px;
        }
        .image__body .title {
            font-size: 32px;
            line-height: 1;
            margin-bottom: 15px;
        }
        .image__body .desc {
            margin-bottom: 15px;
            line-height: 1.5;
            padding-right: 20%;
        }
        .image__body .btn {
         color: #000;
         background-color: #fff;
         padding: 10px 30px;
         display: inline-block;
        }
        .container .section__h2 {
            font-weight: 700;
        }

 

 

 

 

 

코드 보기 / HTML

<section class="image__wrap section center nexon">
        <div class="container">
            <h2 class="section__h2">Milky way</h2>
            <p class="section__desc">Milky way는 은하수 뿐 아니라 우리 은하를 가리키는 말이기도 합니다.</p>
            <div class="imag_inner">
                <article class="image">
                    <figure class="img__header">
                        <img src="../asset/img/imageType01_01.jpg" alt="태양계가 속해 있는 우리 은하">
                    </figure>
                    <div class="image__body">
                        <h3 class="title">태양계가 속해 있는 우리 은하</h3>
                        <p class="desc">은하수는 밤하늘에 천구를 아치형으로 가로지르는 흰 빛의 흐릿한 띠 모양으로 보입니다. </p>
                        <a href="#" class="btn">자세히 보기</a>
                    </div>
                </article>
                <article class="image">
                    <figure class="img__header">
                        <img src="../asset/img/imageType01_02.jpg" alt="우리 은하의 물리적 크기">
                    </figure>
                    <div class="image__body">
                        <h3 class="title">우리 은하의 물리적 크기</h3>
                        <p class="desc">우리 은하의 원반은 직경이 약 100,000광년이고, 평균적으로 약 1,000광년 두께입니다.</p>
                        <a href="#" class="btn">자세히 보기</a>
                    </div>
                </article>
            </div>
        </div>
    </section>

 

 

 

 

vertical-align

:CSS 속성 중 하나로, 인라인 요소나 테이블 셀 요소의 수직 정렬을 지정하는 속성이다.

 

baseline, top, middle, bottom, text-top, text-bottom, sub, super 등의 다양한 속성 값이 있다.

 

각각의 속성값은

baseline

:요소의 기준선을 부모 요소의 기준선과 맞춤

 

middle

: 요소의 중앙을 부모 요소의 중앙과 맞춤

 

bottom

: 요소의 아랫부분을 부모 요소의 아랫부분과 맞춤

 

text-top

: 요소의 윗부분을 부모 요소의 폰트 윗부분과 맞춤

 

text-bottom

: 요소의 아랫부분을 부모 요소의 폰트 아랫부분과 맞춤

 

sub

: 요소를 부모 요소의 아래 첨자 [각주:1] 로 정렬함.

 

super

: 요소를 부모 요소의 위 첨자 [각주:2]로 정렬함.

 

 

 

vertical-align : top

: 요소의 윗부분을 부모 요소의 윗부분과 맞춘다.

 

 

 

figure

: figure 요소는 독립적인 컨텐츠, 일반적으로 이미지나 동영상, 삽화 등을 그룹화 하기 위해 사용된다.

시각적으로 컨텐츠의 그룹화 등을 나타내는데 사용되며, 웹 페이지의 접근성을 향상 시키기 위해 스크린 리더 등 보조 기술에서 컨텐츠의 그룹화를 알려주는 역할도 한다.

 

자식 요소로는 figcaption, img, video, adio가 있다.

 

figucaption figure 요소에 포함된 컨텐츠에 대한 설명이나
캡션을 제공하는 요소
img 이미지를 삽입하기 위한 요소
video 동영상 컨텐츠를 삽입하기 위한 요소
audio 오디오 컨텐츠를 삽입하기 위한 요소

 

 

 

display

:요소를 어떻게 보여줄지를 지정하는데 사용됨.

요소를 블록 레벨 요소, 인라인 요소, 플렉스 박스, 그리드 등의 다양한 형태로 보여줄 수 있음.

display 속성을 사용하여 요소의 보이는 방식을 지정함으로써 웹 페이지의 레이아웃을 구성할 수 있다.

 

자식 요소로는 block, inline, inline-block, none, flex, gird 등이 있다.

block 요소를블록 레벨 요소로 표시함.
새로운 줄에서시작하며, 
전체 너비를 차지함
inline 요소를 인라인 요소로 표시함.
새로운 줄에서 시작하지 않으며, 
컨텐츠의 너비만큼 공간을 차지함
inline-block 요소를 인라인 요소로 표시하면서,
블록 레벨 요소의 속성을 가짐.
none 요소를 화면에서 숨기며,
요소의 영역까지 사라짐
flex 플렉스 박스로 요소를 표시함.
플렉스 컨테이너 안에서 요소를 정렬하고 배치할 수 있는
유연한 레이아웃 제공
gird 요소를 그리드 컨테이너 안에서 그리드 아이템으로 표시
그리드 아이템은 행과 열로 구성된 그리드 안에서 배치됨

 

 

display: inline-block

: 요소를 인라인 요소처럼 취급하면서도 블록 레벨 요소의 특성을 가지게 만든다.

즉, 요소는 한 줄에 표시 되지마 너비나 높이, 여백 등의 속성을 가질 수 있다.

 

 

 

font-weight

 

:글꼴의 두께를 지정하는데 사용되며, 글꼴의 두께를 조절할 수 있다.

보통 글꼴의 두께는 100~900까지의 값 중에서 지정됨.

 

nomal 기본 값으로 평범한 글꼴 두께를 나타냄.
(400과 같음)
bold 굵은 글꼴 두께를 나타냄
(700과 같음)
bolder 상위 요소보다 더 굵은 글꼴 두께를 나타냄
lighter 상위 요소보다 더 얇은 글꼴 두께를 나타냄
100~900 지정한 값에 해당하는 글꼴 두께를 나타냄.

 

 

 

 

 

 

  1. ex) H₂O에서 2를 아래 첨자라고 함. [본문으로]
  2. ex) a² 에서 2를 위 첨자라고 함 [본문으로]
728x90
반응형

카드 유형 사이트

 

 

 

 완성화면

 

 

 

카드 유형 사이트 - 코드

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>텍스트 유형01</title>

    <link href="https://webfontworld.github.io/NexonLv1Gothic/NexonLv1Gothic.css" rel="stylesheet">

    <style> 
        /* 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-top: 10px !important;}
        .mb20 {margin-top: 20px !important;}
        .mb30 {margin-top: 30px !important;}
        .mb40 {margin-top: 40px !important;}
        .mb50 {margin-top: 50px !important;}
        .mb60 {margin-top: 60px !important;}
        .mb70 {margin-top: 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: 0 23px;
            text-transform: uppercase;
            margin-bottom: 1px 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;
        }
        .text__wrap {
            
        }
        .text__inner {
            text-align: left;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
        }
        .text__inner .text {
            width: 32.3333333%;
            border:  1px solid #f5f5f5;
            padding: 90px 20px 20px 20px;
            border-radius: 10px;
            box-sizing: border-box;
            margin-bottom: 20px;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
        }
        .text__inner .text:hover {
            background-color: #ece0f8;
        }
        .text__inner .text::before {
            content: '';
            width: 60px;
            height: 60px;
            background-color: rgba(147, 87, 245, 0.76);
            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::after {
            content: '';
        }
        .text__title {
            font-size: 24px;
            margin-bottom: 10px;
        }
        .text__desc {
            font-size: 16px;
            color: #666;
            margin-bottom: 15px;
            line-height: 1.5;
        }
        .tetx__btn {
            float: right;
            position: relative;
            padding-right: 20px;
        }
        .tetx__btn:hover::before {
            transform: rotate(360deg);
        }
        .tetx__btn::before {
            content: '';
            position: absolute;
            right: 0;
            top: 0;
            width: 15px;
            height: 15px;
            background-image: url(../asset/img/icon_plus.svg);
            transition: all 0.3s;
        }
    </style>
</head>
<body>
    <section class="text__wrap section center nexon">
        <div class="container">
            <span class="section__small">notice</span>
            <h2 class="section__h2 mb70">About the Milky way</h2>
            <div class="text__inner">
                <div class="text">
                    <h3 class="text__title">명칭 및 어원</h3>
                    <p class="text__desc">우리 은하의 명칭은 “Milky Way(밀키 웨이)”입니다. 그러나 밀키 웨이는 우리 은하 뿐 아니라 은하수 자체를 가리키기도 합니다. 은하수들도 각각의 명칭이 있습니다.</p>
                    <a class="tetx__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                        <h3 class="text__title">갤러틱 할로(Galactic Halo)</h3>
                        <p class="text__desc">은하 중심부를 둘러싸고 있는 둥근 모양의 거대한 구조물 입니다. 은하 중심부에 위치한 은하 플레어와 달리, 할로는 무수히 많은 별, 암석체, 가스, 먼지 등이 혼합된 구조물입니다.</p>
                        <a class="tetx__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">은하 헤일로(Galaxy Hale)</h3>
                    <p class="text__desc">은하 헤일로는 아메리칸 천문학자 조지 엘리슨 헤일이 처음으로 제안한 은하 분류 체계입니다. 이 체계는 은하를 크기와 모양에 따라 4가지 유형으로 분류하고 있습니다.</p>
                    <a class="tetx__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 구조</h3>
                    <p class="text__desc">우리 은하는 막대 나선 은하에 속하며, 허블의 은하 분류에 따르면 Sbc(중심에 막대가 존재하고 나선팔이 느슨히 감긴 형태)입니다. 막대 구조는 대부분 붉고 오래된 항성들로 구성되어 있습니다.</p>
                    <a class="tetx__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 블랙홀</h3>
                    <p class="text__desc">우리 은하를 구성하는 별들은 은하의 중심부를 중심으로 나선팔 모양으로 공전합니다. 이는 은하 중심에 초대질량 블랙홀이 있기 때문이라 여겨집니다.</p>
                    <a class="tetx__btn" href="#">더 보기</a>
                </div>
                <div class="text">
                    <h3 class="text__title">우리 은하의 팔</h3>
                    <p class="text__desc">우리 은하에는 네 개의 큰 나선 팔이 있다고 여겨졌으나, 2008년에 스피처 적외선 망원경을 이용하여 1억 개 이상의 별의 분포를 분석한 결과, 단지 2개의 나선 팔만이 구분되었습니다.</p>
                    <a class="tetx__btn" href="#">더 보기</a>
                </div>
            </div>
        </div>
    </section>
</body>
</html>

 

 

1.  a

a {
            text-decoration: none;
            color:#000;
        }

 

text-decoration 예시

 : 링크 즉, 하이퍼링크에 생기는 글자색이 파랗게 변하는 속성, 밑줄이 그려지는 속성, 하이퍼링크 클릭 시 글자색과 밑줄 색이 변하는 스타일 속성을 없애고, 글자를 #00000 검은 색으로 바꾸는 코드입니다.

 

 

 

2. mt10~70, mb10~70

.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-top: 10px !important;}
.mb20 {margin-top: 20px !important;}
.mb30 {margin-top: 30px !important;}
.mb40 {margin-top: 40px !important;}
.mb50 {margin-top: 50px !important;}
.mb60 {margin-top: 60px !important;}
.mb70 {margin-top: 70px !important;}

:section__h2 클래스가 여러 곳에서 중복으로 사용되는 클래스이기 때문에 이 페이지에 있는 h2 태그에 여백 속성을 지정하면 다른 페이지에 있는 section__h2 클래스를 가지고 있는 요소 모두에 속성이 지정 되어버리기 때문에 필요 시에만 알맞은 속성을 사용할 수 있도록, 그리고 여백 속성이 제일 먼저 우선순위를 가지도록 작성한 코드입니다.

 

 

3. .text__btn::before ~

.tetx__btn::before {
            content: '';
            position: absolute;
            right: 0;
            top: 0;
            width: 15px;
            height: 15px;
            background-image: url(../asset/img/icon_plus.svg);
            transition: all 0.3s;
.tetx__btn:hover::before {
            transform: rotate(360deg);
        }

 

 

.text__btn::before 

content: ' ';  : 가상 요소의 내용을 비워둠을 의미합니다.

position: absolute; : 가상 요소를 절대적으로 배치합니다.

right : 0, top: 0 : 가상 요소를 부모 요소의 오른쪽 상단에 배치합니다.

widht 15px, height: 15px : 가상 요소의 크기를 지정합니다.

background-image:  url(../asset/img/icon_plus.svg); : 가상 요소에 사용할 이미지를 지정합니다.

transition: all 0.3s;는 모든 속성에 대해 0.3초 동안 전환 효과를 부여합니다.

 

 

:before 

:선택한 요소의 내용의 앞부분에 가상 요소를 생성합니다.

 

 

hover

:선택한 요소에 마우스 커서를 올리면 작동하는 css 선택자입니다.

 

 

.text_btn::hover::before

:버튼 요소에 마우스를 올렸을 때 아이콘을 회전 시키기 위한 css 선택자 입니다.

 

transform: rotate(360deg); : 요소를 회전 시키는 css 속성입니다.

 

 

4. position

.parent{					//부모요소
position : relative;		
}

.child{						//자식요소
position : absolute;		
top : 20px
left: 30px
}

 

position: absolute;

: 요소를 원하는 위치에 정확하게 배치할 수 있습니다. 이 속성을 사용하면 해당 요소가 다른 요소들의 위치에 영향을 받지 않고 가장 가까운 조상 요소중 position 값이 relative나 absolute인 요소를 기준으로 위치를 지정합니다.

 

position: relative;

: 요소의 위치를 상대적으로 이동시키기 위해 사용되는 css 속성입니다. 이 속성을 사용하면 요소가 원래 있던 위치를 기준으로 위치를 이동시킬 수 있습니다.

예시에서의 top과 left 속성은 부모 요소를 기준으로 상대적으로 조정 되며, 부모 요소 내에서 자식 요소의 위치가 결정됩니다.

 

 

 

 

 

 

 

 

 

+ Recent posts