화면 구현 실습1)


 

 

▼ 전체 코드 보기 (더보기 클릭) ▼
더보기

 

html

<!DOCTYPE html>
<html lang="ko">
<!-- 1. head 작성 -->
<head>
    <!-- meta tag : metadata(정보에 대한 정보) 제공 
    화면에 표시되지는 않지만 검색 엔진/브라우저에 읽힘 -->
    <meta charset="UTF-8">
    <!-- IE 브라우저에서 최신 표준 모드를 선택하는 문서 모드 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 뷰 포트 : 화면 상의 화상 표시 영역 
    데스크탑 화면과 모바일의 뷰 포트는 차이가 있음. 너비를 디바이스에 맞춤. 기본 배율 1. -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 사이트에 대한 설명 -->
    <meta name="description" content="Full Screen Practice">
    <title>1_full-screen실습</title>

    <!-- CSS -->
    <!-- 브라우저별로 디폴트로 적용된 CSS에 차이(여백, 폰트 크기 등)가 있어
    CSS가 별도로 지정 되지 않은 요소는 브라우저별로 다르게 보일 수 있으므로
    만들어져 있는 리셋 css 활용 -->
    <!-- ress.css (https://github.com/filipelinhares/ress)-->
    <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
    <!-- favicon (Real Favicon Generator 활용) -->
    <link rel="icon" type="image/x-icon" href="../resources/images/khfavicon.ico">
    <!-- 외부 스타일 시트 -->
    <link href="../resources/css/style.css" rel="stylesheet" type="text/css">
    <!--구글 웹 폰트-->
    <link href="https://fonts.googleapis.com/css2?family=Syne+Tactile&display=swap" rel="stylesheet">


</head>
<body>
    <!-- 화면을 꽉채우는 이미지 배치 -->
    <div id="home" class="big-bg">


    <!--2. header 만들기-->
    <header class="page-header wrapper">

    <!--로고 클릭시 다시 본인 페이지로 로드-->
    <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="Home"></a></h1>
    <nav>
        <ul class ="main-nav">
            <li><a href="2_column실습.html">News</a></li>
            <li><a href="3_grid실습.html">Menu</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </nav>
    </header>

    <!--3. 콘텐츠 부분 만들기-->
    <div class="home-content wapper">
        <h2 class="page-title">Full Screen Practice</h2>
        <p>
            풀 스크린이란 이미지 또는 동영상을 메인으로 화면 전체에 출력하는 레이아웃입니다.
        </p>
        <a class="button" href="#">메뉴 보기</a>

    </div>

</div>
</body>
</html>

 

 

css

@charset "UTF-8";       /* 인코딩 문자 깨짐 방지 */

html {
    /* 사용자 설정 문자 크기 그대로 반영 되도록 */
    font-size : 100%;
}

body {
    line-height: 2.0;
    color : #432;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
}

/* header ---------------------------------------------- */

/* 로고 크기 및 여백 */
.logo {
    width: 210px;
    margin-top : 14px;
}

/* nav 메뉴 장식 */
.main-nav {
    display: flex;
    list-style: none;
    text-transform: uppercase;
    font-size: 1.25em;
    margin-top: 34px;
}

.main-nav li {
    margin-left : 36px;
}

.main-nav a {
    color : #432;
}

.main-nav a:hover {
    color : #0bd;
} 

/* 로고 내비 가로 정렬 */
.page-header {
    display: flex;
    justify-content: space-between;
}

/* 콘텐츠의 최대 출력 너비 설정 */
.wrapper {
    max-width: 1100px;
    margin : 0 auto;
    padding : 0 4%;
}

/* home ----------------------------------------- */

/* 배치 및 여백 설정 */
.home-content {
    text-align: center;
    margin-top: 10%;
}

.home-content p {
    font-size: 1.125em;
    margin : 10px 0 42px;
}

/* 제목 */
.page-title {
    font-size: 5em;
    text-transform: uppercase;
    font-weight: normal;
    font-family: 'Roboto Serif', sans-serif;
}

/* 버튼 */
.button {
    background: #0bd;
    color : white;
    padding: 15px 32px;
    border-radius: 5px;
    font-size: 1.375em;
}

/* 큰 배경 이미지 */
.big-bg {
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
}

#home {
    background-image: url("../images/main-bg.jpg");
    min-height: 100vh;
}

 

 

 

 

 

<body>
    <!-- 화면을 꽉채우는 이미지 배치 -->
    <div id="home" class="big-bg">


    <!--2. header 만들기-->
    <header class="page-header wrapper">

    <!--로고 클릭시 다시 본인 페이지로 로드-->
    <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="Home"></a></h1>
    <nav>
        <ul class ="main-nav">
            <li><a href="2_column실습.html">News</a></li>
            <li><a href="3_grid실습.html">Menu</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </nav>
    </header>
@charset "UTF-8";       /* 인코딩 문자 깨짐 방지 */

html {
    /* 사용자 설정 문자 크기 그대로 반영 되도록 */
    font-size : 100%;
}

body {
    line-height: 2.0;
    color : #432;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
}

/* header ---------------------------------------------- */

/* 로고 크기 및 여백 */
.logo {
    width: 210px;
    margin-top : 14px;
}

/* nav 메뉴 장식 */
.main-nav {
    display: flex;
    list-style: none;
    text-transform: uppercase;
    font-size: 1.25em;
    margin-top: 34px;
}

.main-nav li {
    margin-left : 36px;
}

.main-nav a {
    color : #432;
}

.main-nav a:hover {
    color : #0bd;
} 

/* 로고 내비 가로 정렬 */
.page-header {
    display: flex;
    justify-content: space-between;
}

/* 콘텐츠의 최대 출력 너비 설정 */
.wrapper {
    max-width: 1100px;
    margin : 0 auto;
    padding : 0 4%;
}

 

 

 

 

 

    <!--3. 콘텐츠 부분 만들기-->
    <div class="home-content wapper">
        <h2 class="page-title">Full Screen Practice</h2>
        <p>
            풀 스크린이란 이미지 또는 동영상을 메인으로 화면 전체에 출력하는 레이아웃입니다.
        </p>
        <a class="button" href="#">메뉴 보기</a>

    </div>
/* home ----------------------------------------- */

/* 배치 및 여백 설정 */
.home-content {
    text-align: center;
    margin-top: 10%;
}

.home-content p {
    font-size: 1.125em;
    margin : 10px 0 42px;
}

/* 제목 */
.page-title {
    font-size: 5em;
    text-transform: uppercase;
    font-weight: normal;
    font-family: 'Roboto Serif', sans-serif;
}

/* 버튼 */
.button {
    background: #0bd;
    color : white;
    padding: 15px 32px;
    border-radius: 5px;
    font-size: 1.375em;
}

/* 큰 배경 이미지 */
.big-bg {
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
}

#home {
    background-image: url("../images/main-bg.jpg");
    min-height: 100vh;
}

 

 

 

 

 

 

 

 

 

 

화면 구현 실습2)


 전체 코드 보기 (더보기 클릭) 
더보기

 

 

html

<!DOCTYPE html>
<html lang="ko">
<!-- 1. head 작성 -->
<head>
    <!-- meta tag : metadata(정보에 대한 정보) 제공 
    화면에 표시되지는 않지만 검색 엔진/브라우저에 읽힘 -->
    <meta charset="UTF-8">
    <!-- IE 브라우저에서 최신 표준 모드를 선택하는 문서 모드 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 뷰 포트 : 화면 상의 화상 표시 영역 
    데스크탑 화면과 모바일의 뷰 포트는 차이가 있음. 너비를 디바이스에 맞춤. 기본 배율 1. -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 사이트에 대한 설명 -->
    <meta name="description" content="Column Practice">

    <title> 2.Column 실습 </title>

    <!-- CSS -->
    <!-- 브라우저별로 디폴트로 적용된 CSS에 차이(여백, 폰트 크기 등)가 있어
    CSS가 별도로 지정 되지 않은 요소는 브라우저별로 다르게 보일 수 있으므로
    만들어져 있는 리셋 css 활용 -->
    <!-- ress.css (https://github.com/filipelinhares/ress)-->
    <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
    <!-- favicon (Real Favicon Generator 활용) -->
    <link rel="icon" type="image/x-icon" href="../resources/images/khfavicon.ico">
    <!-- 외부 스타일 시트 -->
    <link href="../resources/css/style.css" rel="stylesheet" type="text/css">
    <!--구글 웹 폰트-->
    <link href="https://fonts.googleapis.com/css2?family=Syne+Tactile&display=swap" rel="stylesheet">


</head>
<body>
   
    <div id="news" class="big-bg">


    <!--2. header 만들기-->
    <header class="page-header wrapper">

    <!--로고 클릭시 다시 본인 페이지로 로드-->
    <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="Home"></a></h1>
        <nav>
            <ul class ="main-nav">
                <li><a href="2_column실습.html">News</a></li>
                <li><a href="3_grid실습.html">Menu</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>
    </header>

    <!--3. 헤더부 제목 작성-->
    <div class="wrapper">
        <h2 class="page-title"> News </h2>

    </div>

</div>



<!-- 5. 뉴스 컨텐츠-->
<div class="news-content wrapper">
    <article>
        <!--세부 영역 사이사이 header를 넣을 수 있다.-->
 
        <!-- 기사 헤더-->
        <header class="post-info">
            <h2 class="post-title">기사 상단에 출력될 제목입니다.</h2>
            <p class="post-date">2/14 <span>2022</span></p>
            <p class="post-cat">카테고리 : 기사 카테고리</p>

        </header>
        <!--기사 본문-->
        <img src="../resources/images/tower1.PNG" alt="기사사진">

        <!--6. 반응형 웹-->
        <p>
            <b>반응형 웹 (Responsible Web)  디자인 </b> 이란
            출력 영역의 너비에 따라서 변화하게 디자인 된 웹 사이트를 의미함.
            데스크탑과 모바일의 너비는 매우 다른데, 반응형 웹 디자인을 사용하면
            콘텐츠를 별도로 변경하지 않고도 디바이스 크기에 따라서 CSS만으로 외관을 변경할 수 있다<div class=""></div>
            
            
        </p>
        <P>
            <b>반응형 웹 디자인을 적용하는 방법</b> 으로는
            1. 2-column, 3-cloumn 등 여러개의 컬럼이 수평적으로 정렬 되면 모바일의
            작은 화면에서는 보기 힘드므로 수평으로 정렬된 칼럼을 수직으로 배치해 1-column으로 
            출력하는 방법
            2. 네비게이션 메뉴의 경우 모바일의 작은 화면에서는 한눈에 볼 수 없으므로 
            처음에는 내비게이션 메뉴를 감추고 메뉴 전용 아이콘을 눌렀을때 모든 네비게이션
            메뉴를 출력하여 보여주는 방법 등이 주로 사용됨.
        </P>
        <p>
            <b>viewport란</b> 다양한 장치에서의 출력영역을 의미함
            별도로 지정하지 않았을 시 모바일에서도 데스크탑과같은 너비에 맞춰서
            모든 것을 출력해버리므로 글자가 너무 작아서 내용을 읽기 힘들어짐 
            1. viewport 너비를 전체 화면에 맞추는게 첫번째
            현재 viewport는 설정이 되어있지만 레이아웃이 깨지므로 추가적인 조정이 필요함
        </p>
        <p>
            <b>미디어 쿼리(Media Query)란</b>
            웹 페이지가 출력하는 화면 크기에 따라서 다른 CSS를 적용하게 해주는 기능으로
            "화면의 너비가 600px 이하 일 때 문자의 크기를 작게 만든다" 와 같이 
            사용자 화면 환경에 맞게 스타일 변경이 가능함

            @media (max-width:600px) { p { font-size : 10px } } 와 같은 형태로 사용시 
            0~600px 크기의 화면에서는 p 태그의 문자 크기를 10px로 나타냄.
        </p>


        

    </article>
    <!--사이드 바-->

    <aside>
        <h3 class="sub-title">카테고리</h3>
        <ul class="sub-menu">
            <li><a href="#">서브메뉴1</a></li>
            <li><a href="#">서브메뉴2</a></li>
            <li><a href="#">서브메뉴3</a></li>
            <li><a href="#">서브메뉴4</a></li>

        </ul>
        <h3 class="sub-title">KH 아카데미 소개</h3>
        <p> 
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정

        </p>
    </aside>



    <!-- 7. 3-cloumn 레이아웃으로 변경 -->
    <div class="ad">
        <!--
            display : flex가 지정 된 내부 박스 모두 자동으로 수평
            정렬 되지만 전체 너무 조정을 위해 article 너비 수정
        -->
        <img src="../resources/images/banner.PNG">
    </div>






</div>



<!--2. 푸터 만들기-->
<footer>
    <div class="wrapper">
        <p><small>&copy; 2022 KH Academy</small></p>


    </div>

</footer>

</body>
</html>

 

 

 

css

/* news ------------------------------------------------------- */
#news {
    background-color: skyblue;
    height: 270px;
    margin-bottom: 40px;
}

#news .page-title {
    text-align: center;
}

/* footer --------------------------------------------------- */
footer {
    background: #432;
    text-align: center;
    padding: 26px 0;
}

footer p {
    color : #fff;
}

/* news content -------------------------------------------- */

/* 기사 부분 */
article {
    /* width : 74%; */
    /* 2-column에서 3-column으로 변경 시 width 줄이기 */
    width : 55%;
    /* 컬럼 순서 변경
    display : flex의 자식 요소에서 동작 */
    order : 2;
}

/* 사이드바 */
aside {
    width: 22%;
    order : 3;
}

/* 광고 배너 */
.ad {
    order : 1;
}

/* 뉴스 컨텐츠 수평 정렬 및 여백 */
.news-content {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px;
}

/* 기사 날짜 장식 */
.post-info {
    position: relative;
    padding-top: 4px;
    padding-bottom: 40px;
}

.post-date {
    background : #0bd;
    border-radius: 50%;
    width : 100px;
    height : 100px;
    color : #fff;
    font-size:1.625em;
    text-align: center;
    /* .post-info 기준 절대 위치 */
    position: absolute;
    top : 0;
    padding-top : 10px;
}

.post-date span {
    font-size : 1rem;
    border-top : 1px rgba(255,255,255,0.5) solid;
    padding-top : 6px;
    display: block;
    width : 60%;
    margin : 0 auto;
}

.post-title {
    font-family: "나눔명조", nanummyeongjo;
    font-size:2rem;
    font-weight: normal;
}

.post-title,
.post-cat {
    margin-left: 120px;
}

article img {
    margin-bottom: 20px;
}

article p {
    margin-bottom: 1rem;
}

/* side bar ------------------------------------ */
.sub-title {
    font-size: 1.375em;
    padding : 0 8px 8px;
    border-bottom: 2px #0bd solid;
    font-weight: normal;
}

aside p {
    padding : 12px 10px;
}

.sub-menu {
    list-style: none;
    margin-bottom: 60px;
}

.sub-menu li {
    border-bottom : 1px #ddd solid;
}

.sub-menu a {
    color : #432;
    padding : 10px;
    display: block;
}

.sub-menu a:hover {
    color : #0bd;
}

 

 

 

2-1) 모바일 기준 화면 구현

/* for mobile -------------------------------------- */
/* 변경 기준이 되는 화면 크기를 브레이크 포인트라고 하며 디바이스 별로 width는 다름
450~760 정도가 기준으로 중간 정도인 600을 브레이크 포인트로 설정 */
/* 창 너비가 0~600px인 경우 */
@media (max-width:600px) {

    /* 제목 문자 크기 축소 */
    .page-title {
        font-size : 2.5rem;
    }

    /* header */
    /* 내비 글자 크기 및 여백 축소 */
    .main-nav {
        font-size : 1rem;
        margin-top : 10px;
    }

    .main-nav li {
        margin : 0 20px;
    }

    /* home */
    /* 홈 컨텐츠의 상단 여백 증가 */
    .home-content {
        margin-top : 20%;
    }

    /* 로고와 내비 수직 정렬 */
    .page-header {
        /* display : flex 에서 어떤 방향으로 정렬할지 지정 */
        flex-direction: column;
        align-items: center;
    }

    /* news */
    /* 뉴스 컨텐츠 수직 정렬 */
    .news-content {
        flex-direction: column;
    }

    /* 원래 2-column으로 쪼개서 차지하던 너비를 100% 차지하게 */
    article,
    aside {
        width : 100%;
    }

    /* 문자 크기 및 여백 조절 */
    #news .page-title {
        margin-top: 30px;
    }

    aside {
        margin-top : 60px;
    }

    .post-info {
        margin-bottom : 30px;
    }

    .post-date {
        width : 70px;
        height : 70px;
        font-size : 1rem;
    }

    .post-date span {
        font-size : 0.875rem;
        padding-top : 2px;
    }

    .post-title {
        font-size : 1.375rem;
    } 

    .post-cat {
        font-size : 0.875rem;
        margin-top : 10px;
    }

    .post-title,
    .post-cat {
        margin-left : 80px;
    }
}

 

 

 

 

 

 

 

 

 

<body>
   
    <div id="news" class="big-bg">


    <!--2. header 만들기-->
    <header class="page-header wrapper">

    <!--로고 클릭시 다시 본인 페이지로 로드-->
    <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="Home"></a></h1>
        <nav>
            <ul class ="main-nav">
                <li><a href="2_column실습.html">News</a></li>
                <li><a href="3_grid실습.html">Menu</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>
    </header>

    <!--3. 헤더부 제목 작성-->
    <div class="wrapper">
        <h2 class="page-title"> News </h2>

    </div>

</div>

/* news ------------------------------------------------------- */
#news {
    background-color: skyblue;
    height: 270px;
    margin-bottom: 40px;
}

#news .page-title {
    text-align: center;
}



/* footer --------------------------------------------------- */
footer {
    background: #432;
    text-align: center;
    padding: 26px 0;
}

footer p {
    color : #fff;
}

 

 

 


<!-- 5. 뉴스 컨텐츠-->
<div class="news-content wrapper">
    <article>
        <!--세부 영역 사이사이 header를 넣을 수 있다.-->
 
        <!-- 기사 헤더-->
        <header class="post-info">
            <h2 class="post-title">기사 상단에 출력될 제목입니다.</h2>
            <p class="post-date">2/14 <span>2022</span></p>
            <p class="post-cat">카테고리 : 기사 카테고리</p>

        </header>
        <!--기사 본문-->
        <img src="../resources/images/tower1.PNG" alt="기사사진">
        /* 기사 부분 */
        article {
            /* width : 74%; */
            /* 2-column에서 3-column으로 변경 시 width 줄이기 */
            width : 55%;
            /* 컬럼 순서 변경
            display : flex의 자식 요소에서 동작 */
            order : 2;
        }

 

 

 

 

 

    
    <!--사이드 바-->

    <aside>
        <h3 class="sub-title">카테고리</h3>
        <ul class="sub-menu">
            <li><a href="#">서브메뉴1</a></li>
            <li><a href="#">서브메뉴2</a></li>
            <li><a href="#">서브메뉴3</a></li>
            <li><a href="#">서브메뉴4</a></li>

        </ul>
        <h3 class="sub-title">KH 아카데미 소개</h3>
        <p> 
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정
            클라우드 서버를 이용한 웹 융합 응용 SW 개발자 양성과정

        </p>
    </aside>
    
    
        <!-- 7. 3-cloumn 레이아웃으로 변경 -->
    <div class="ad">
        <!--
            display : flex가 지정 된 내부 박스 모두 자동으로 수평
            정렬 되지만 전체 너무 조정을 위해 article 너비 수정
        -->
        <img src="../resources/images/banner.PNG">
    </div>
/* 기사 부분 */
article {
    /* width : 74%; */
    /* 2-column에서 3-column으로 변경 시 width 줄이기 */
    width : 55%;
    /* 컬럼 순서 변경
    display : flex의 자식 요소에서 동작 */
    order : 2;
}

/* 사이드바 */
aside {
    width: 22%;
    order : 3;
}

/* 광고 배너 */
.ad {
    order : 1;
}

 

/* 기사 날짜 장식 */
.post-info {
    position: relative;
    padding-top: 4px;
    padding-bottom: 40px;
}

.post-date {
    background : #0bd;
    border-radius: 50%;
    width : 100px;
    height : 100px;
    color : #fff;
    font-size:1.625em;
    text-align: center;
    /* .post-info 기준 절대 위치 */
    position: absolute;
    top : 0;
    padding-top : 10px;
}

.post-date span {
    font-size : 1rem;
    border-top : 1px rgba(255,255,255,0.5) solid;
    padding-top : 6px;
    display: block;
    width : 60%;
    margin : 0 auto;
}

.post-title {
    font-family: "나눔명조", nanummyeongjo;
    font-size:2rem;
    font-weight: normal;
}

.post-title,
.post-cat {
    margin-left: 120px;
}

article img {
    margin-bottom: 20px;
}

article p {
    margin-bottom: 1rem;
}

 

 

/* side bar ------------------------------------ */
.sub-title {
    font-size: 1.375em;
    padding : 0 8px 8px;
    border-bottom: 2px #0bd solid;
    font-weight: normal;
}

aside p {
    padding : 12px 10px;
}

.sub-menu {
    list-style: none;
    margin-bottom: 60px;
}

.sub-menu li {
    border-bottom : 1px #ddd solid;
}

.sub-menu a {
    color : #432;
    padding : 10px;
    display: block;
}

.sub-menu a:hover {
    color : #0bd;
}

 

/* for mobile -------------------------------------- */
/* 변경 기준이 되는 화면 크기를 브레이크 포인트라고 하며 디바이스 별로 width는 다름
450~760 정도가 기준으로 중간 정도인 600을 브레이크 포인트로 설정 */
/* 창 너비가 0~600px인 경우 */
@media (max-width:600px) {

    /* 제목 문자 크기 축소 */
    .page-title {
        font-size : 2.5rem;
    }

    /* header */
    /* 내비 글자 크기 및 여백 축소 */
    .main-nav {
        font-size : 1rem;
        margin-top : 10px;
    }

    .main-nav li {
        margin : 0 20px;
    }

    /* home */
    /* 홈 컨텐츠의 상단 여백 증가 */
    .home-content {
        margin-top : 20%;
    }

    /* 로고와 내비 수직 정렬 */
    .page-header {
        /* display : flex 에서 어떤 방향으로 정렬할지 지정 */
        flex-direction: column;
        align-items: center;
    }

    /* news */
    /* 뉴스 컨텐츠 수직 정렬 */
    .news-content {
        flex-direction: column;
    }

    /* 원래 2-column으로 쪼개서 차지하던 너비를 100% 차지하게 */
    article,
    aside {
        width : 100%;
    }

    /* 문자 크기 및 여백 조절 */
    #news .page-title {
        margin-top: 30px;
    }

    aside {
        margin-top : 60px;
    }

    .post-info {
        margin-bottom : 30px;
    }

    .post-date {
        width : 70px;
        height : 70px;
        font-size : 1rem;
    }

    .post-date span {
        font-size : 0.875rem;
        padding-top : 2px;
    }

    .post-title {
        font-size : 1.375rem;
    } 

    .post-cat {
        font-size : 0.875rem;
        margin-top : 10px;
    }

    .post-title,
    .post-cat {
        margin-left : 80px;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

화면 구현 실습3)


 

 

 전체 코드 보기 (더보기 클릭) 
더보기

 

 

html

<!DOCTYPE html>
<html lang="ko">
    
<!-- 1. head 작성 -->

<head>
    <!-- meta tag : metadata(정보에 대한 정보) 제공 
    화면에 표시되지는 않지만 검색 엔진/브라우저에 읽힘 -->
    <meta charset="UTF-8">
    <!-- IE 브라우저에서 최신 표준 모드를 선택하는 문서 모드 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 뷰 포트 : 화면 상의 화상 표시 영역 
    데스크탑 화면과 모바일의 뷰 포트는 차이가 있음. 너비를 디바이스에 맞춤. 기본 배율 1. -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 사이트에 대한 설명 -->
    <meta name="description" content="Grid Practice">
    <title>3_grid실습</title>

    <!-- CSS -->
    <!-- 브라우저별로 디폴트로 적용된 CSS에 차이(여백, 폰트 크기 등)가 있어
    CSS가 별도로 지정 되지 않은 요소는 브라우저별로 다르게 보일 수 있으므로
    만들어져 있는 리셋 css 활용 -->
    <!-- ress.css (https://github.com/filipelinhares/ress)-->
    <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
    <!-- favicon (Real Favicon Generator 활용) -->
    <link rel="icon" type="image/x-icon" href="../resources/images/khfavicon.ico">
    <!-- 외부 스타일 시트 -->
    <link href="../resources/css/style.css" rel="stylesheet" type="text/css">
    <!-- 구글 웹 폰트 -->
    <link href="https://fonts.googleapis.com/css2?family=Roboto+Serif&display=swap" rel="stylesheet">

</head>



<body>



    <!-- 4. 화면을 꽉 채우는 배경 이미지 배치 -->
    <div id="menu" class="big-bg">
        <!-- 2. header 만들기 -->
        <header class="page-header wrapper">
            <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="HOME"></a></h1>
            <nav>
                <ul class="main-nav">
                    <li><a href="2_column실습.html">News</a></li>
                    <li><a href="3_grid실습.html">Menu</a></li>
                    <li><a href="#">Contact</a></li>
                </ul>
            </nav>
        </header>



        <!-- 3. 콘텐츠 부분 만들기 -->
        <div class="menu-content wrapper">
           <h2 class="page-title">Menu</h2>
           <p>
               클라우드 서버를 이용한 웹 융합 응용SW개발자 양성과정에 오신 여러분을 진심으로
               환영합니다. 웹 어플리케이션 개발에 대한 기초를 다지기 위해 해당 과정에서
               학습할 수 있는 하단의 메뉴를 확인해보세요.
           </p>
        </div>
    </div>



    <!-- 5. 타일형 콘텐츠 -->
    <div class="grid wrapper">
        <div class="item">
            <img src="../resources/images/java.png" alt="Java">
            <p>Java 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/oracle.jpg" alt="Oracle">
            <p>Oracle 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/jdbc.png" alt="JDBC">
            <p>JDBC 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/html.png" alt="HTML5">
            <p>HTML5 시작하기</p>
        </div>
        <div class="item big-box">
            <img src="../resources/images/css.png" alt="CSS3">
            <p>CSS3 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/js.png" alt="JavaScript">
            <p>JavaScript 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/servlets.png" alt="Servlets">
            <p>Servlets & JSP 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/mybatis.png" alt="Mybatis">
            <p>Mybatis 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/spring.png" alt="SpringFramework">
            <p>Spring Framework 시작하기</p>
        </div>
    </div>



    <!-- 4. 푸터 만들기 -->
    <footer>
        <div class="wrapper">
            <p><small>&copy; 2022 KH Academy</small></p>
        </div>
    </footer>
</body>
</html>

 

 

 

 css

/* menu ----------------------------------------------------- */
#menu {
    background-image: url(../images/menu-bg.jpg);
    min-height: 100vh;
}

.menu-content {
    max-width: 560px;
    margin-top : 10%;
}

.menu-content .page-title {
    text-align: center;
}

.menu-content p {
    font-size: 1.125rem;
    font-weight: bolder;
    margin : 10px 0 0;
}

/* for mobile ----------------------------------- */
@media (max-width : 600px) {
    .menu-content {
        margin-top: 20%;
    }
}

/* grid ----------------------------------------- */
.grid {
    display: grid;
    gap : 26px;
    /* 처음 적용한 값 */
    /* grid-template-columns: 1fr 1fr 1fr; */
    /* 반응형 적용 1. 창의 너비가 작아졌을 때 이미지가 너무 작아지지 않도록 최소값 지정 */
    /* grid-template-columns: repeat(3, minmax(240px, 1fr)); */
    /* 반응형 적용 2. 2번째 3번째 요소가 잘려 보이므로 3열로 한정하지 않고
    화면의 너비에 맞게 요소의 수 조정 */
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin-top: 6%;
    margin-bottom: 50px;
}

.item p {
    font-weight: bold;
    text-align: center;
}

/* 타일형 레이아웃 변경
-> 강조하고 싶은 item에 big-box 클래스 부여 */
.big-box {
    grid-column : 1/3;
    grid-row : 1/3;
}

/* 큰 이미지와 작은 이미지의 높이 맞춤 */
.big-box img {
    height: 94%;
    /* 이미지 비율 맞춤 (자동 잘림) */
    object-fit: cover;
}

/* for mobile ------------------------------- */
/* 타일형 레이아웃 변경으로 인해 폭이 좁아지면 메뉴끼리 크기가 맞지 않으므로
폭이 좁아질 경우 1-column으로 변경하기 */
@media (max-width : 600px) {
    /* big-box 2개씩 자리차지하던 설정을 리셋 */
    .big-box {
        grid-column: auto;
        grid-row : auto;
    }
}

 

 

 

 

 

 

 

    <!-- 4. 화면을 꽉 채우는 배경 이미지 배치 -->
    <div id="menu" class="big-bg">
        <!-- 2. header 만들기 -->
        <header class="page-header wrapper">
            <h1><a href="1_full-screen실습.html"><img class="logo" src="../resources/images/logo.jpg" alt="HOME"></a></h1>
            <nav>
                <ul class="main-nav">
                    <li><a href="2_column실습.html">News</a></li>
                    <li><a href="3_grid실습.html">Menu</a></li>
                    <li><a href="#">Contact</a></li>
                </ul>
            </nav>
        </header>



        <!-- 3. 콘텐츠 부분 만들기 -->
        <div class="menu-content wrapper">
           <h2 class="page-title">Menu</h2>
           <p>
               클라우드 서버를 이용한 웹 융합 응용SW개발자 양성과정에 오신 여러분을 진심으로
               환영합니다. 웹 어플리케이션 개발에 대한 기초를 다지기 위해 해당 과정에서
               학습할 수 있는 하단의 메뉴를 확인해보세요.
           </p>
        </div>
    </div>

/* menu ----------------------------------------------------- */
#menu {
    background-image: url(../images/menu-bg.jpg);
    min-height: 100vh;
}

.menu-content {
    max-width: 560px;
    margin-top : 10%;
}

.menu-content .page-title {
    text-align: center;
}

.menu-content p {
    font-size: 1.125rem;
    font-weight: bolder;
    margin : 10px 0 0;
}

 

 

 

 

    <!-- 5. 타일형 콘텐츠 -->
    <div class="grid wrapper">
        <div class="item">
            <img src="../resources/images/java.png" alt="Java">
            <p>Java 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/oracle.jpg" alt="Oracle">
            <p>Oracle 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/jdbc.png" alt="JDBC">
            <p>JDBC 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/html.png" alt="HTML5">
            <p>HTML5 시작하기</p>
        </div>
        <div class="item big-box">
            <img src="../resources/images/css.png" alt="CSS3">
            <p>CSS3 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/js.png" alt="JavaScript">
            <p>JavaScript 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/servlets.png" alt="Servlets">
            <p>Servlets & JSP 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/mybatis.png" alt="Mybatis">
            <p>Mybatis 시작하기</p>
        </div>
        <div class="item">
            <img src="../resources/images/spring.png" alt="SpringFramework">
            <p>Spring Framework 시작하기</p>
        </div>
    </div>

 

 

 

/* for mobile ----------------------------------- */
@media (max-width : 600px) {
    .menu-content {
        margin-top: 20%;
    }
}

/* grid ----------------------------------------- */
.grid {
    display: grid;
    gap : 26px;
    /* 처음 적용한 값 */
    /* grid-template-columns: 1fr 1fr 1fr; */
    /* 반응형 적용 1. 창의 너비가 작아졌을 때 이미지가 너무 작아지지 않도록 최소값 지정 */
    /* grid-template-columns: repeat(3, minmax(240px, 1fr)); */
    /* 반응형 적용 2. 2번째 3번째 요소가 잘려 보이므로 3열로 한정하지 않고
    화면의 너비에 맞게 요소의 수 조정 */
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin-top: 6%;
    margin-bottom: 50px;
}

.item p {
    font-weight: bold;
    text-align: center;
}

 

 

/* 타일형 레이아웃 변경
-> 강조하고 싶은 item에 big-box 클래스 부여 */
.big-box {
    grid-column : 1/3;
    grid-row : 1/3;
}

/* 큰 이미지와 작은 이미지의 높이 맞춤 */
.big-box img {
    height: 94%;
    /* 이미지 비율 맞춤 (자동 잘림) */
    object-fit: cover;
}

 

 

/* for mobile ------------------------------- */
/* 타일형 레이아웃 변경으로 인해 폭이 좁아지면 메뉴끼리 크기가 맞지 않으므로
폭이 좁아질 경우 1-column으로 변경하기 */
@media (max-width : 600px) {
    /* big-box 2개씩 자리차지하던 설정을 리셋 */
    .big-box {
        grid-column: auto;
        grid-row : auto;
    }
}

 

 

 

 

    <!-- 4. 푸터 만들기 -->
    <footer>
        <div class="wrapper">
            <p><small>&copy; 2022 KH Academy</small></p>
        </div>
    </footer>

 

 

 

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

4. 변형/애니메이션  (0) 2022.02.10
3. 기본스타일  (0) 2022.02.10
2. CSS 색상/배경  (0) 2022.02.10
1. 목록/링크 스타일  (0) 2022.02.10
0. CSS 기초 & 선택자  (0) 2022.02.09

 

 

 

 

 

변형/애니메이션

 

  • 애니메이션 개요

 

 

 

 

 

 

변형


단순히 요소가 페이지에 출력만 되는 것이 아니라 사용자의 동작에 따라 크기가 바뀌고 요소가 이동, 회전하는 것

 

 

 

애니메이션


단순히 요소가 페이지에 출력만 되는 것이 아니라 사용자의 동작에 따라 크기가 바뀌고 요소가 이동, 회정하는 것

 

 

 

 

2차원 변형


요소가 변형(이동,회전)할 때 수직,수평으로 이동하는 것으로 X축, Y축으로 나누어 페이지 내에서 이동하는 것

 

 

 

 

 

 

 

 

3차원 변형


요소가 변형(이동,회전)할 때 수직, 수평으로 이동뿐만 아니라 화면상에서 앞으로 이동하거나 뒤로 이동하는 것이 추가된 것으로 X,Y좌표 뿐만 아니라 Z좌표가 추가된 것

 

 

 

 

 

 

 

 

transform 속성


페이지에서 요소들을 변형시키려면 transform속성과 변형 함수를 이용
- 변형함수는 2차원 함수와 3차원 함수 구분

 

 

선택자 {
        -접두사-transform : 변형함수
        transform : 변형함수;
        }

 

  • 이전브라우저와 호환을 위해 접두사를 이용한 함수호출

 

 

 

 

 

 

 

 

 

 

 

변형/애니메이션

 

 

 

 

 

 

2차원 변형함수


 

 

 

 

 

 

<body>
    <h1>애니메이션</h1>
    <h3>transition</h3>
    <p>
        시간에 따라 웹 요소의 스타일 속성이 조금씩 바뀌는 것을 의미<br>
        transition-duration : 애니메이션 효과를 얼마동안 줄지 설정<br>
        transition-property : 애니메이션 효과를 적용할 프로퍼티 
        목록을 정의
    </p>
    <h3>transform</h3>
    <p>
        사용자의 동작에 따라 크기가 바뀌고 요소가 이동, 회전하는 것을
        변형이라고 하고 transform 속성에 변형 함수를 사용해서 나타낼 수 있음<br>
        변형이 부드럽게 이어지면 애니메이션이 됨
    </p>
    <ul>
        <li>translate(x,y) : 지정한 크기만큼 x축, y축으로 이동</li>
        <li>scale(x,y) : 지정한 크기만큼 x축, y축으로 확대/축소</li>
        <li>rotate(각도) : 지정한 각도만큼 회전</li>
        <li>skew(x, y) : 지정한 각도만큼 x축과 y축으로 요소 변형</li>
    </ul>

 

 

 

 

 

 

 

 

 

translate ? (좌표값)


  • 요소를 페이지의 일정좌표로 이동하는 함수
  • 3d효과를 표현하기 위해서는 perspective함수을 사용해야함

 

 

 

선택자 {
        transform : 함수명(이름) ;
        }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

scale ? (좌표값)


  • 요소를 일정페이지 만큼 확대/축소 시키는 함수
  • 양수 : 확대
  • 음수 : 축소

 

 

 

선택자 {
        transform : 함수명(이름) ;
        }

 

 

 

 

 

 

 

 

rotate ? (좌표값)


지정한 각도만큼 요소를 시계방향(양수)이나 반대방향(음수)으로 회전시키는 함수

 

 

 

선택자 {
        transform : 함수명(이름) ;
        }

 

 

 

 

 

 

 

skew ? (좌표값)


2차원만 가능 지정한 각도만큼 요소를 비틀어 변형하는 함수

 

 

 

선택자 {
        transform : 함수명(이름) ;
        }

 

 

 

 

 

 

 

 

 

 

 

 

추가 변형속성

 

 

 

 

 

transform-origin


변형기준을 x,y,x축을 기준으로 했으나 특정지점을 기준으로 변형할 수 있게 하는 속성

 

 

 

선택자 {
        trasform-origin : x y z ;
        }

 

 

 

 

 

 

 

 

transform-origin


변형기준을 x,y,x축을 기준으로 했으나 특정지점을 기준으로 변형할 수 있게 하는 속성

 

 

 

선택자 {
        trasform-origin : x y z ;
        }

 

 

 

 

 

 

perspective


화면에서 원근감을 갖게 하는 속성

다른 변형과 적용하려면 먼저 적용되어야 한다.

 

 

선택자 {
        perspective : 숫자(단위);
        }

 

 

 

 

 

 

 

 

 

 

transform-style


여러가지 변형을 동시에 하는 경우 부모 요소에서 적용한 3D변형을 하위요소에 적용하는 속성

 

 

 

선택자 {
        transform-style : 속성값;
        }

 

 

 

 

 

 

 

backface-visibility


회전하여 뒷면이 보일 경우 뒷면을 보이게 할 것인지 안보이게 할 것인지 설정하는 속성

 

 

 

선택자 {
        transform-style : 속성값;
        }

 

 

 

 

 

 

 

 

 

 

 

트렌지션

 

 

 

 


트렌지션이란


  • 웹요소의 스타일이 바뀌는 것을 의미
  • CSS로 애니메이션 같은 효과를 나타낼 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

transition-property


  • 트렌지션을 적용할 속성을 선택하는 속성값.
  • 여러 개를 설정하는 경우 ,(콤마)로 구분

 

 

선택자 {
        transition-property : 속성값;
        }

 

 

 

 

 

 

transition-duration


  • 트렌지션이 진행되는 시간을 지정하는 속성값
  • 시간 값은 밀리초(ms) 와 초(s)로 설정
  • 여러 개를 설정할 경우 ,(콤마)로 구분하고 propert값과 1:1로 대응

 

선택자 {
        transition-duration : 시간;
        }

 

 

 

 

 

 

 

 

 

 

transition-timing-function


트렌지션이 진행되는 구간별로 시간을 지정하는 속성

 

 

 

선택자 {
        transition-timing-function : 속성값;
        }

 

 

 

 

 

 

transition-delay


트렌지션이 두 개 이상 있는 경우 하나의 트렌지션이 끝나도 다음 트렌지션이 시작하는 시간

 

 

선택자 {
        transition-dalay : 시간(s, ms);
        }

 

 

 

 

 

 

 

 

transition


  • 트렌지션 속성값을 한 번에 지정할 수 있는 속성
  • 속성값을 생략하면 default값으로 설정됨
property : all
duration : 0
timing-function : ease
delay : 0

 

선택자 {
        transition : property duration
        timing-function delay;
        }



 

 

 

▼ 코드 예시 보기 
    <h3>트랜지션 진행 시간 지정하기</h3>
    <div class="box duration"></div>

    <h3>트랜지션 진행별 시간 설정하기</h3>
    <div class="box property"></div>
    <style>
        .box {
            width : 100px;
            height : 100px;
            background: red;
            border : 1px solid black;
        }

        .duration {
            /* 트랜지션이 진행되는 시간을 지정하는 속성 (s or ms)*/
            transition-duration: 5s;
        }

        .duration:hover {
            background: yellow;
        }

        .property {
            /* 트랜지션을 적용할 속성을 선택하며 여러 개를 선택한 경우
            , 로 구분하여 나열함 */
            transition-property: background-color, transform, width, height;
            /* 트랜지션이 진행되는 시간을 지정하는 속성
            여러 개를 설정할 경우 , 로 구분하고 property 값과 1:1 대응 */
            transition-duration: 2s, 3s, 1s, 10s;
        }

        .property:hover {
            width : 200px;
            height : 200px;
            background: yellow;
            transform: rotate(180deg);
        }

 

 

 

    <h3>트랜지션 진행별 속도 지정하기</h3>
    <p>
        transition-timing-function : linear | ease | ease-in |
        ease-out | ease-in-out | cubic-bezier(n,n,n,n)<br>
        베지어 곡선 : 컴퓨터 그래픽스에서 사용되는 특별한 형태의
        곡성으로, CSS 애니메이션 등에서 도형을 그릴 때 사용<br>
        * 참고 : https://cubic-bezier.com
    </p>
    <label>시작 : </label>
    <input type="checkbox">
    <p>linear</p>
    <div class="box timing"></div>
    <p>ease</p>
    <div class="box timing"></div>
    <p>ease-in</p>
    <div class="box timing"></div>
    <p>ease-out</p>
    <div class="box timing"></div>
    <p>ease-in-out</p>
    <div class="box timing"></div>
        input:checked ~ .timing {
            background: yellow;
            width : 100%;
        }

        /* 트랜지션이 진행되는 구간 별로 시간을 지정하는 속성 */
        .timing:nth-of-type(1) {
            transition-timing-function: linear;
        }
        .timing:nth-of-type(2) {
            transition-timing-function: ease;
        }
        .timing:nth-of-type(3) {
            transition-timing-function: ease-in;
        }
        .timing:nth-of-type(4) {
            transition-timing-function: ease-out;
        }
        .timing:nth-of-type(5) {
            transition-timing-function: ease-in-out;
        }

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h3>트랜지션 시간 지연하기</h3>
    <div class="box delay"></div>
        .delay {
            /* transition : 트랜지션 속성 값을 한 번에 지정할 수 있는 속성
            선택자 { transition : property duration timing-function delay; } */
            transition: all 5s ease-in 3s;
        }

        .delay:hover {
            transform: rotate(180deg);
            background : yellow;
        }

 

 

 

 

 

 

 

 

 

 

 

애니메이션

 

 

 

 

애니메이션과 트렌지션의 차이


  • 시작 스타일과 끝스타일을 부드럽게 이어주는 기능을 하는 것은 같음
  • 애니메이션은 중간에 원하는 위치에서 keyframe이라는 것을 이용하여 중간 스타일을 넣을 수 있다.

 

 

 

 

 

 

 

 

 

@keyframes


  • 애니메이션의 시작지점과 끝지점의 스타일을 정하고 keyframes의 이름을 지정한다.
  • 시작 지점과 끝지점 두개만 설정할 경우 from to로 설정
  • 중간에 작업이 있으면 %로 구분하여 설정

 

@keyframes 이름 {
                선택자{ 스타일
                ;}
                }

 

 

 

 

 

 

 

시작과 끝스타일만


 

@keyframes 이름 {
        from{
                선택자{ 스타일 ; }
   		     }
    	 to {
                선택자 { 스타일 ; }
  		      }
        }

 

 

 

 

 

 

 

중간에 스타일이 있는경우


 

@keyframes 이름 {
        0%{
    	    선택자{ 스타일 ;}
        }
        50% {
            선택자 { 스타일 ; }
        }
        100% {
            선택자 { 스타일 ; }
        }
        }

 

 

 

 

 

 

 

animation-name


  • 요소에 적용할 애니메이션을 지정하는 속성
  • Keyframes에서 정한 이름을 작성
  • 적용할 요소 스타일에 작성

 

선택자 {
        animation-name : keyframes이름;
        }

 

 

 

 

 

 

 

animation-duration


요소에 적용되는 애니메이션의 실행시간을 지정하는 속성

 

 

선택자 {
        animation-duration : 시간(s);
        }

 

 

 

 

 

 

animation-direction


  • 요소에 적용되는 애니메이션을 반복할 때 처음부터 시작할 것인지 끝에서 역순으로 시작할지를 선택하는 속성
  • animation-iteration-count와 같이 사용

 

 

 

선택자 {
        animation-direction : 속성값;
        }

 

 

 

 

 

 

 

 

animation-iteration-count


애니메이션을 얼마나 반복할지 설정

 

 

선택자 {
        animation-iteration-count : 속성값;
        }

 

 

 

 

 

 

 

 

 

animation-timing-function


전체 속도를 지정할 수 있는 속성

 

 

 

 

선택자 {
        animation-timing-function : 속성값;
        }

 

 

 

 

 

 

 

 

 

 

 

 

animation


애니메이션 전체속성을 지정할 수 있는 속성

' , ' 를 이용하여 두개 이상의 애니메이션을 적용 가능

 

 

선택자 {
        animation : name duration
        timing-function delay
        iteration-count direction;
        }

 

 

 

 

 

 

 

▼ 코드 예시 보기 ▼
    <h3>keyframes</h3>
    <p>
        @keyframes 을 사용하면 간단한 애니메이션 여러 개를
        한꺼번에 실행할 수 있음<br>
        @keyframes에는 애니메이션 이름과 CSS 속성을 시점을
        나누어 설정함<br>
        EX. from ~ to, 0% ~ 30% ~ 60% ~ 100% 등<br>
        애니메이션을 적용하기 위해 아래와 같은 속성 적용<br>
        animation-name : 애니메이션 이름<br>
        animation-duration : 애니메이션 실행 시간<br>
        animation-direction : 애니메이션 반복 방향
        (처음부터, 끝나면 다시 역순으로)<br>
        animation-iteration-count : 반복 횟수 (숫자 또는 무한)
    </p>
    <img class="pika" id="jump" src="../resources/images/pikachu.png">
    <hr>
    <img class="pika" id="shake" src="../resources/images/pikachu.png">
</body>
        /* @keyframes 정의 */
        /* 1. 시작 지점과 끝 지점 두 개만 있는 경우 */
        @keyframes jump {
            from {
                margin-left: 300px;
            }
            to {
                margin-left : 100px;
                margin-bottom : 200px;
            }
        }

        /* 애니메이션 jump를 #jump img에 적용 */
        #jump {
            /* keyframes에서 정한 이름을 작성 */
            animation-name: jump;
            /* 애니메이션의 실행 시간을 지정하는 속성 */
            animation-duration: 2s;
            /* 애니메이션을 얼만큼 반복할지 설정 */
            animation-iteration-count: 5;
            /* 애니메이션 반복 시 처음부터 시작 or 끝에서 역순으로 */
            animation-direction: normal;
        }

        /* 2. 중간 작업이 있는 경우 */
        @keyframes shake {
            0% {
                border : 5px solid black;
            }
            50% {
                margin-left : 300px;
                border : 10px solid black;
                border-radius: 50%;
                transform: translate(50px, 50px);
            }
            100% {
                margin-left : 600px;
                border : 5px solid black;
                transform : rotate(45deg);
            }
        }

        /* 애니메이션 shake를 #shake img에 적용 */
        #shake {
            /* alternate : 반복 시 역순으로 
               infinite : 무한 반복 */
            animation: shake 2s alternate infinite;
        }

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

CSS 화면 구현  (0) 2022.02.14
3. 기본스타일  (0) 2022.02.10
2. CSS 색상/배경  (0) 2022.02.10
1. 목록/링크 스타일  (0) 2022.02.10
0. CSS 기초 & 선택자  (0) 2022.02.09

 

 

 

 

 

레이아웃 개요

 

 

 

 

 


Height / width


콘텐츠(내용)이 차지 하고 있는 영역의 크기를 조절할 수 있는 속성

 

선택자 {
        width : 숫자(단위) or auto(default);
        height: 숫자(단위) or auto(default);
        }

 

  • 상태크기 단위를 입력하면 창크기에 따라 변경되지만 절대크기 단위를 입력하면 창크기에
    변화가 없다.
  • height / width 속성은 실제 콘텐츠영역만의 길이를 의미하지만 IE6버전에서는 padding, margin을
    더한 값으로 인식하여 계산에 유의
  • 실제 크기 : (height/width) + padding + margin

 

 

 

 

 

 

 

 

블록 레벨 요소


  • 한 줄 전체 차지하는 요소로 박스 모델이라고 한다.
  • 한 줄에 여러 요소가 올 수 없는 요소

 

 

 

 

 

 

인라인 레벨 요소


  • 한 줄에서 일부분만 차지하는 요소
  • 한 줄에 여러 요소가 올 수 있는 요소

 

 

 

 

 

 

 

display


  • 화면 배치 방법 변경 속성
  • 박스 레벨과 인라인 레벨 요소를 변경 가능하게 해준다.

 

 

 

 

선택자 {
        display : 속성값 ;
        }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

테두리 스타일

  • 레이아웃 테두리

 

 

 

 

 


border-style


테두리 스타일 지정

 

 

 

 

 

 

 

 

 

 

border-width


테두리 스타일 지정

 

 

선택자 {
        border-[위치]-width : 숫자(단위) or 속성값 ;
        }

 

 

 

 

 

 

 

 

border-color


  • 테두리의 색상을 정하는 속성
  • 각 테두리별 설정하려면 위치(top, right, bottom, left)에 값을 넣는다.
  • 전체를 한번에 설정하려면 “border-color:색상값”을 이용한다.

 

선택자 {
        border-[위치]-color : 색상값 ;
        }



 

 

 

 

 

 

 

 

border


  • 테두리 두께, 스타일, 색상을 한번에 지정할 수 있는 속성
  • 각 테두리별 설정하려면 위치(top, right, bottom, left)에 값 이용

 

선택자 {
        border-[위치] : 두께 스타일 색상값 ;
        }

 

 

 

 

 

 

 

 

 

border-radius


  • 박스의 모서리를 둥글게 하는 속성
  • 위치 : top-left, top-right, bottom-left, bottom-right
  • 각 테두리의 변에서부터 설정한 값만큼의 반지름을 가지는 원이 모서리에 그려지고
  • 그 외곽부분이 그 원을 따라 둥글게 변하게 된다.

 

선택자 {
        border-[위치]-radius : 숫자(단위);
        }



 

 


비대칭 원 그리기


선택자 {
        border-[위치]-[위치]-radius : 숫자 숫자(단위);
        }

 

 

 

 

 

 

box-shadow


Box영역에 그림자 효과를 주는 속성

 

 

선택자 {
        border-shadow : 수평거리 수직거리 흐림정도 번짐정도, 색상 [inset];
        }

 

  • 설정값은 숫자(단위)표시
  • 수평거리 + : 오른쪽, - : 왼쪽 / 수직거리 + : 아래 - : 위
  • 흐림정도 : 값이 커지면 부드러운 느낌을 주며 음수 사용 못함
  • 번짐정도 : 양수로 하면 모든 방향으로 번져 커지고 음수로 하면 축소됨
  • inset : 안쪽 그림자로 그리는 옵션. 필요시 사용

 

 

 

 

 

▼ 코드 예시 보기 ▼
<body>
	<h1>테두리 스타일</h1>
	<h3>border-style:none</h3>
    <div class="border-test1"></div>
	<h3>border-style:hidden & box-shadow:5px 5px 3px 2px gray</h3>
    <div class="border-test2"></div>
	<h3>border-style:dotted</h3>
    <div class="border-test3"></div>
	<h3>border-style:dashed & border-top-color:blue</h3>
    <div class="border-test4"></div>
	<h3>border-style:double & border-color:blue</h3>
    <div class="border-test5"></div>
	<h3>border-style:groove & border-top-left-radius:50px</h3>
    <div class="border-test6"></div>
	<h3>border-style:inset & border-bottom-right-radius:50px</h3>
    <div class="border-test7"></div>
	<h3>border-style:outset & border-bottom-right-radius:50px</h3>
    <div class="border-test8"></div>
	<h3>border-style:ridge & box-shadow:5px 5px 3px 2px gray</h3>
    <div class="border-test9"></div>
	<h3>border-style:solid & border-bottom-width : 10px</h3>
	<div class="border-test10"></div>
	<h3>border : 두께 스타일 색상값</h3>
	<div class="border-test11"></div>

 </body>
</html>
<!doctype html>
<html lang="ko">
 <head>
  <meta charset="UTF-8">
  <title>07_테두리 스타일</title>
  <style>
	div {
		width:100px;
		height:100px;
		border-width:3px;
	}
	
	.border-test1 {
		border-style:none;
	}
	
	.border-test2 {
		border-style:hidden;
		/* 수평거리 수직거리 흐림정도 번짐정도 */
		box-shadow:5px 5px 3px 2px gray;
	}
	
	.border-test3 {
		border-style:dotted;
	}

 

	.border-test4 {
		border-style:dashed;
		border-top-color:blue;
	}
	
	.border-test5 {
		border-style:double;
		border-color:blue;
	}
	
	.border-test6 {
		border-style:groove;
		border-top-left-radius:50px;
	}

 

 

	.border-test7 {
		border-style:inset;
		border-bottom-right-radius:50px;
	}

	.border-test8 {
		border-style:outset;
		border-top-left-radius:50px;
		border-bottom-right-radius:50px;
	}

	.border-test9 {
		border-style:ridge;
		box-shadow:5px 5px 3px 2px gray;
	}
	
	.border-test10 {
		border-style:solid;
		border-bottom-width : 10px;
	}

	.border-test11 {
		border-top : 5px double blue;
		border-left : 1px dotted black;
		border-right : 1px dashed blue;
		border-bottom : 5px solid black;
	}

 

 

 

 

 

▼ 코드 예시 보기 ▼
<body>
    <h1>레이아웃 스타일</h1>
    <h3>width와 height</h3>
    <p>
        내용이 차지하고 있는 영역의 크기를 조절할 수 있는 속성
    </p>
    <h4>고정 크기</h4>
    <div id="test1" class="size-test"></div>
    <h4>가변 크기</h4>
    <div id="test2" class="size-test"></div>

    <hr>
    <title>08_레이아웃스타일(블럭인라인)</title>
    <style>
        .size-test {
            border : 2px solid red;
        }

        #test1 {
            width : 800px;
            height : 200px;
        }

 

 

 

    <h3>화면 배치 방법 변경</h3>
    <p>
        블럭 요소와 인라인 요소의 속성을 변경하여 배치 방식을
        변경할 수 있다<br>
        블럭 요소 : 한 줄 전체를 차지하는 요소.
        한 줄에 여러 요소가 올 수 없는 요소.<br>
        Ex. div, hn, p, hr, ul, ol, form, table, ... 등등<br>
        인라인 요소 : 한 줄에서 일부분만 차지하는 요소.
        한 줄에 여러 요소가 올 수 있는 요소.<br>
        Ex. span, img, input, textarea, label, button, br, ... 등등
    </p>
    
    
        <h4>블럭 요소를 인라인 요소로 변경</h4>
    <p>
        >> display : inline 테스트<br>
        인라인 요소로 변경 되면서 width와 height 속성이 무시된다.
    </p>
    <div class="block block-test1 area1">첫 번째 영역</div>
    <div class="block block-test1 area2">두 번째 영역</div>
    <div class="block block-test1 area3">세 번째 영역</div>
    <div class="block block-test1 area4">네 번째 영역</div>
    <div class="block block-test1 area5">다섯 번째 영역</div>
        #test2 {
            width: 50%;
            height: 200px;
        }

        .block {
            width: 150px;
            height : 150px;
            border : 1px solid black;
            color : white;
        }

        .area1 { background: red;}
        .area2 { background: orange;}
        .area3 { background: yellowgreen;}
        .area4 { background: green;}
        .area5 { background: blue;}

 

 

    <h4>인라인 요소를 블럭 요소로 변경</h4>
    <p>
        >> display : block 테스트<br>
        인라인 요소를 블럭 요소로 변경하면 width와 height 값을
        지정할 수 있다.
    </p>
    <span class="block block-test2 area1">첫 번째 영역</span>
    <span class="block block-test2 area2">두 번째 영역</span>
    <span class="block block-test2 area3">세 번째 영역</span>
    <span class="block block-test2 area4">네 번째 영역</span>
    <span class="block block-test2 area5">다섯 번째 영역</span>
    .block-test2 {
            display: block;

 

 

 

 

    <h4>블럭 요소를 인라인 요소로 변경2</h4>
    <p>
        >> display : inline-block 테스트<br>
        영역은 인라인 요소로 변경되지만 내용은 블럭 요소로 지정 되어
        width와 height 속성을 설정할 수 있다.
    </p>
    <div class="block block-test3 area1">첫 번째 영역</div>
    <div class="block block-test3 area2">두 번째 영역</div>
    <div class="block block-test3 area3">세 번째 영역</div>
    <div class="block block-test3 area4">네 번째 영역</div>
    <div class="block block-test3 area5">다섯 번째 영역</div>
        .block-test3 {
            display: inline-block;
        }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여백 스타일

 

 

 

 

 

 

 

레이아웃 개요


  • 박스모델 구조

 

 

 

 

 

 

 

 

 

 

레이아웃_padding조절

 

 


padding


테두리와 컨텐츠 영역사이의 거리를 조절하는 속성

 

 

선택자 {
        padding-[위치] : 숫자(단위);
        }

 

 

 

 

 

 

 

레이아웃_margin조절

 


margin


Box레벨이나 inline레벨의 요소들간의 간격을 조절하는 속성

 

 

선택자 {
        margin-[위치] : 숫자(단위);
        }

 

 

 

 

 

▼ 코드 예시 보기 ▼
<body>
    <h1>여백 관련 속성</h1>
    <h4>기준 div</h4>
    <div class="test"></div>

    <h3>padding</h3>
    <h4>테두리와 컨텐츠 영역 사이의 거리를 조절하는 속성</h4>
    <p>padding : 100px; </p>
    <div class="test test1">콘텐츠영역</div>
    <p>padding-top : 50px; padding-left : 100px;</p>
    <div class="test test2">콘텐츠영역</div>

    <h3>margin</h3>
    <h4>요소들 간의 간격을 조정하는 속성</h4>
    <p>margin : 50px;</p>
    <div class="test test3">콘텐츠영역</div>
    <p>margin-top : 50px; margin-left : 10px; </p>
    <div class="test test4">콘텐츠영역</div>
    <title>09_레이아웃스타일(여백)</title>
    <style>
        .test {
            background: yellow;
            width : 100px;
            height : 100px;
        }

        .test1 {
            /* top-right-bottom-left */
            padding: 100px 70px 50px 30px;
            padding: 100px;
        }

        .test2 {
            padding-top: 50px;
            padding-left: 100px;
        }

        .test3 {
            /* top-right-bottom-left */
            margin : 100px 70px 50px 30px;
            margin: 50px;
        }

        .test4 {
            margin-top: 50px;
            margin-left: 10px;
        }
    </style>

 

 

 

 

 

 

 

 

 

 

 

CSS 레이아웃 - 포지셔닝

 

 

 

 

 

 

포지셔닝_개요

 

 

 

포지셔닝 이란?


  • Box모델, inline모델을 페이지상에서 배치하는 스타일
  • 페이지 안 요소들을 원하는 위치에 배치하는 속성들의 position스타일, float스타일이 존재

 

 

 


box-sizing


  • 요소들은 모두 conten영역과 paddin영역, margi영역으로 나눠져 있음
  • 이 요소들의 크기(width속성)를 어떠한 영역까지 포함할 것인지 결정하는 속성

 

 

 

 

 

 

 

 

 

 

포지셔닝_요소배치

 

 


position


  • 페이지의 요소들을 자유롭게 배치해 주는 속성
  • top, left, right, bottom으로 위치 지정

 

 

 

선택자 {
        position : 속성값 ;
        [top:숫자(단위)]; [left:숫자(단위)];
        [right:숫자(단위)]; [bottom:숫자(단위)]; }

 

 

 

 

 

 

▼ 코드 예시 보기 
<body>
    <h1>배치 관련 스타일</h1>
    <p>
        <b>position 속성</b><br>
        static : 일반적인 문서 흐름에 따라 배치(기본 값).
        top, right, bottom, left 속성이 아무런 영향을 주지 못함.<br>
        relative : 일반적인 문서 흐름에 따라 배치.
        자신 기준으로 top, right, bottom, left의 값에 따라 오프셋 적용.
        다른 요소에는 영향을 주지 않아 공간 차지는 static일 때와 같음.<br>
        absolute : 일반적인 문서 흐름에서 제외되며 공간도 차지하지 않음.
        가장 가까운 위치 지정 조상 요소에 대해 상대적으로 배치 되며
        top, right, bottom, left의 값이 위치 결정.<br>
        fixed : 일반적인 문서 흐름에서 제외되며 공간도 차지하지 않음.
        해당 요소가 모든 페이지의 같은 위치에 출력.<br>
    </p>
    
    <h3>static과 relative</h3>
    <div class="inline-block" id="first"></div>
    <div class="inline-block" id="second"></div>
    <div class="inline-block" id="third"></div>
    <title>10_레이아웃스타일(배치)</title>
    <style>
        .inline-block {
            display: inline-block;
            width : 100px;
            height: 100px;
            background: orange;
        }

        #first {
            position: static;
            top : 20px;
            left : 20px;
        }

        #second {
            position: relative;
            top : 20px;
            left : 20px;
        }

        #third {
            position : relative;
            bottom: 20px;
            right : 20px;
        }

 

 

 

 

 

    <h3>absolute</h3>
    <div class="outer">
        <div class="positioning first"></div>
        <div class="positioning second"></div>
        <div class="positioning third"></div>
    </div>

    <h3>fixed</h3>
    <div class="positioning fixed-area"></div>
        .outer {
            position: relative;
        }

        .positioning {
            border : 1px solid black;
        }

        .first {
            width: 300px;
            height: 300px;
            background: yellow;
        }

        .second {
            width: 200px;
            height : 200px;
            background: yellowgreen;
            position:absolute;
            top : 50px;
            left : 50px;
        }

        .third {
            width : 100px;
            height : 100px;
            background: red;
            position: absolute;
            top : 100px;
            left : 100px;
        }

        .fixed-area {
            width : 100px;
            height : 100px;
            position: fixed;
            left : 0;
            top : 0;
        }

 

 

 

 

 

 

 


visibility


페이지에 특정 속성을 보이거나 보이지 않게 하는 속성

 

 

 

 

선택자 {
        visibility : 속성값;
        }

 

 

 

 

 

▼ 코드 예시 보기 
    <h3>visibility</h3>
    <p>
        페이지에 특정 속성을 보이거나 보이지 않게 하는 속성<br>
        display : none 속성은 페이지 공간도 차지하지 않고,
        visibility : hidden 속성은 페이지 공간을 차지한다
    </p>
    <div class="vis-test vis-test1"></div>
    <div class="vis-test vis-test2"></div>
    <div class="vis-test vis-test3"></div>
        .vis-test {
            width : 100px;
            height : 100px;
            border : 1px solid black;
        }

        .vis-test1 { background: red;}
        .vis-test2 { 
            background: yellow;
            /* display: none; */
            visibility: hidden;
        }
        .vis-test3 { background: green;}

        .wrap {
            position: relative;
        }

 

 

 

 

 

 

 

 

z-index


  • 페이지 안의 요소들을 순서대로 위로 쌓는 속성
  • 속성값이 크면 가장 위에 있는 요소 작으면 밑에 있는 속성
  • 항상 맨위에 요소가 위치해야하면 값을 999 또는 1000 등의 큰값으로 설정

 



선택자 {
        z-index : 속성값;
        }

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h3>z-index</h3>
    <p>페이지 안의 요소들을 순서대로 위로 쌓는 속성</p>
    <div class="wrap">
        <div class="z-test z-test1">요소1</div>
        <div class="z-test z-test2">요소2</div>
        <div class="z-test z-test3">요소3</div>
    </div>
        .wrap {
            position: relative;
        }
        
        .z-test{
            width : 150px;
            height : 100px;
            border : 1px solid black;
        }

        .z-test1 {
            background : yellow;
            position : absolute;
            top : 100px;
            left : 100px;
            z-index : 100;
        }

        .z-test2 {
            background: green;
            position: absolute;
            top : 50px;
            left : 50px;
            z-index : 10;
        }

        .z-test3 {
            background : red;
            position: absolute;
        }

 

 

 

 

 

 

 

 

 

float


페이지의 내의 요소의 위치를 왼쪽이나 오른쪽으로 지정하는 속성

 

 

 

선택자 {
        float : 속성값;
        }

 

 

 

 

 

 

▼ 코드 예시 보기 ▼
 <h3>float 속성</h3>
    <p>
        페이지 내의 요소의 위치를 왼쪽이나 오른쪽으로 지정하는 속성
    </p>
    <div>
        <div class="float-test">요소1</div>
        <div class="float-test">요소2</div>
        <div class="float-test">요소3</div>
        <div class="float-test">요소4</div>
        <div class="float-test">요소5</div>
    </div>
        .float-test {
            border : 1px solid black;
            width : 150px;
            height : 100px;
            float : right;
        }

 

 

 

 

 

 

 

 

 

 

clear


페이지에 float설정되어 있으면 그 속성이 그대로 다음 요소에 영향을 미치는데 이를 초기화시키는 속성

 

 

 

 

선택자 {
        clear : 속성값;
        }

 

 

 

 

 

 

 

 

 

▼ 코드 예시 보기 ▼
<body>
    <h1>Flexbox로 수평 정렬</h1>
    <p>
        Flexible Box Layout Module의 의미로
        이전에는 float 속성을 많이 사용했다면
        최근에는 Flexbox를 많이 사용함
    </p>

    <div class="container">
        <div class="item">div 1</div>
        <div class="item">div 2</div>
        <div class="item">div 3</div>
        <div class="item">div 4</div>
        <div class="item">div 5</div>
        <div class="item">div 6</div>
        <div class="item">div 7</div>
        <div class="item">div 8</div>
    </div>
</body>
    <style>
        .item {
            background : lightgray;
            color : white;
            margin : 10px;
            padding : 10px;
        }

        .container {
            /* 부모 요소 display : flex; 추가 시 수평 정렬 */
            display: flex;

            /* flex-direction : 배치 방향 */

            /* 오른쪽에서 왼쪽으로 */
            flex-direction: row-reverse;
            /* 위에서 아래로 */
            flex-direction: column;
            /* 아래에서 위로 */
            flex-direction: column-reverse;
            /* 왼쪽에서 오른쪽으로 */
            flex-direction: row;

            /* flex-wrap : 줄바꿈 */

            /* 줄바꿈 하지 않음 */
            flex-wrap: nowrap;
            /* 줄바꿈 여러 줄의 경우 아래에서 위로 */
            flex-wrap: wrap-reverse;
            /* 줄바꿈 여러 줄의 경우 위에서 아래로 */
            flex-wrap: wrap;

            /* justify-content : 수평 방향 맞춤 */

            /* 오른쪽 맞춤 */
            justify-content: flex-end;
            /* 가운데 맞춤 */
            justify-content: center;
            /* 양쪽 끝에 붙이고 균등하게 맞춤 */
            justify-content: space-between;
            /* 균등하게 맞춤 */
            justify-content: space-around;
            /* 왼쪽 맞춤 */
            justify-content: flex-start;

            /* align-items : 수직 방향 맞춤 */

            /* vh는 뷰 포트의 높이 기준 단위 */
            height: 100vh;

            /* 부모 요소의 높이 or 콘텐츠 많은 자식 요소 높이 맞춤 */
            align-items: stretch;
            /* 부모 요소 윗 부분 배치 */
            align-items: flex-start;
            /* 부모 요소 아랫 부분 배치 */
            align-items: flex-end;
            /* 중앙 배치 */
            align-items: center;
        }
    </style>

 

 

<body>
    <h1>Grid로 타일 형태 정렬</h1>
    <p>
        Grid는 2차원으로 수평 수직을 동시에 영역을 나눌 수 있음
    </p>
    <div class="container">
        <div class="item">div 1</div>
        <div class="item">div 2</div>
        <div class="item">div 3</div>
        <div class="item">div 4</div>
        <div class="item">div 5</div>
        <div class="item">div 6</div>
        <div class="item">div 7</div>
        <div class="item">div 8</div>
        <div class="item">div 9</div>
    </div>
   
</body>
    <style>
        .item {
            background: lightgray;
            color : white;
            padding : 10px;
        }

        .container {
            display: grid;

            /* grid-template-columns : 그리드 아이템 너비 
            한 열에 그리드 아이템을 여러 개 놓을 경우 띄어쓰기로 구분 
            필요한 그리드 아이템 수 만큼 너비 지정 */
            grid-template-columns: 200px 200px 200px;
            grid-template-columns: 100px 200px auto;

            /* 고정 너비 사용 시
            화면 너비가 넓어지면 공간 발생
            회면 너비가 좁아지면 화면 잘림
            그리드에서 사용하는 fr(fraction) 단위 사용 
            */
            grid-template-columns : 1fr 1fr 1fr;
            /* 반복 되는 패턴이 있다면 repeat 사용 */
            grid-template-columns: repeat(3, 1fr);

            /* gap : 그리드 아이템 사이의 여백 */
            row-gap : 20px;
            column-gap: 10px;
            gap : 20px 10px;
            gap : 20px;

            /* grid-template-rows : 그리드 아이템 높이
            여러 줄을 만들 경우 띄어쓰기 구분 */
            grid-template-rows: 200px 200px 200px;
            /* row 개수를 미리 알 수 없을 때는 */
            grid-auto-rows : 200px;
            grid-auto-rows: minmax(200px, auto);
        }

        .item:nth-child(1) {
            /* 컬럼 시작/끝 설정 */
            grid-column-start: 1;
            grid-column-end: 3;
            /* 컬럼 시작/끝 설정 한 번에 */
            grid-column: 1/3;
            grid-column: 1/span 2;

            /* 로우 시작/끝 설정 */
            grid-row-start: 1;
            grid-row-end: 3;
            /* 로우 시작/끝 설정 한 번에 */
            grid-row : 1/3;
            grid-row : 1/span 2;
            
            /* grid-area */
            /* 로우시작/컬럼시작/로우끝/컬럼끝 */
            grid-area : 1/1/3/3;
        }

    </style>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

CSS 화면 구현  (0) 2022.02.14
4. 변형/애니메이션  (0) 2022.02.10
2. CSS 색상/배경  (0) 2022.02.10
1. 목록/링크 스타일  (0) 2022.02.10
0. CSS 기초 & 선택자  (0) 2022.02.09

 

 

 

 

CSS 색상/배경

 

 

 

 

 

 

CSS의 색상표현


 

 

 

 

 

 

 

 

 

 

배경스타일

 

 

 

 

 

 

background-color


배경색을 지정하는 속성

 

 

기본형식
    선택자 {
            background-color : 색상표현;
            }

 

 

 

 

 

 

 

 

 

background-clip


배경 범위 조절

 

 

 

 

기본형식
선택자 {
        background-clip : 속성값;
        }



 

 

 

 

 

 

background-image


요소에 배경지정 속성

 

 

기본형식
선택자 {
        background-image : url(경로);
        }



 

 

 

 

 

 

 

 

background-repeat


배경이미지 반복 출력 설정

 

 

 

 

기본형식
    선택자 {
        background-repeat : 속성값;
        }



 

 

 

 

 

 

 

background-size


배경이미지의 크기를 조절하는 속성

 

 

기본형식
선택자 {
    background-size : 속성값;
    }



 

 

 

 

 

 

background-position


배경 이미지 위치를 조정하는 속성

 

 

 

기본형식
선택자 {
        background-origin : 속성값;
        }

 

 

 

 

 

 

 

background-origin


배경이미지 배치할 때 기준을 지정하는 속성

 

 

 

 

기본형식
 선택자 {
    background-origin : 속성값;
    }

 

 

 

 

 

 

 

background-attachment


웹페이지가 위아래로 움직여도 배경이미지는 움직이지 않게 고정하는 속성

 

 

 

 

기본형식
선택자 {
        background-attachment : 속성값;
        }

 

 

 

 

 

 

 

 

 

 

background


배경이미지 한번에 설정하는 속성

 

 

기본형식
선택자 {
        background : image값 repea값 attachmen값
        position값 clip값 origin값 size값;
        }

 

 

 

 

 

 

 

 

▼ 코드 예시 보기 ▼
<body>
    <h1>배경색과 배경 이미지</h1>
    <p>
        body { background-color : 색상명 | rgb | rgba | hsl | hsla | 16진수; }
        로 배경색을 지정할 수 있다.
    </p>

    <hr>

    <h3>div 영역 테스트</h3>
    <p>
        div 영역을 설정하는 경우 배경색을 지정하기 위해서는
        div에 배경색을 별도로 지정해야 한다.
    </p>
    <div id="div-bg">
        생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.
    </div>    

    <h3>배경 적용 범위 조정</h3>
    <p>
        div 영역의 배경 적용 범위를 지정할 때 background-clip
        속성을 사용한다.
    </p>
    <div class="div-test" id="div1">
        생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.
    </div> 
    <div class="div-test" id="div2">
        생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.
    </div> 
    <div class="div-test" id="div3">
        생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.
    </div> 

    <h3>배경 이미지 테스트</h3>
    <p>
        background-image 속성을 이용하여 배경 사진을 넣을 수 있다.
        사진 크기에 따라 자동 반복하여 이미지가 나타난다.
        배경 이미지의 반복 방법을 지정하기 위해 background-repeat 속성을
        이용할 수 있다.
        배경 이미지가 요소보다 크거나 작은 경우 배경 이미지의 크기를
        background-size 속성으로 변경할 수 있다.
    </p>
    <div id="bg-img"></div>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

CSS_배경 그라데이션

 

 

 

 

 

선형 그라데이션


  • 색상이 수직, 수평, 대각선 방향으로 일정하게 변하는 것
  • 웹표준으로 지정되었지만 이전 버전과 호환을 위해 브라우저별 접두사를 이용, 그라데이션 표현방법이
    약간씩 다름

 

기본형식(표준)
선택자 {
    background : -접두사-linear-gradient(아래와동일)
    background : linear-gradient(각도 or 방향, 시작색상, [color-stop(색상,위치), 끝색상;
    }

 

 

 

 

 

 

 

 

방향


 

 

 

 

 

 

브라우저별 접두사


 

 

 

 

 

 

각도


 

 

 

 

시작색상 / 끝색상


 

 

 

시작색상 / 끝색상


 

 

 

 

 

 

 

원형 그라데이션


색상이 원이나 타원의 중심부터 동심원을 그리며 바깥방향으로 색상변경

 

 

기본형식
선택자 {
        background : 접두사 radial-gradient(위치 모양, 크기, 시작색상, 끝색상);
        background : radial-gradient(모양크기 at 위치, 시작색상, 끝색상);
        }

 

 

 

 

 

모양


 

 

 

 

크기


 

 

 

 

위치( x(가로좌표), y(세로좌표))


 

 

 

 

 

 

중지점 색상 / 위치


 

 

 

 

 

 

그라데이션 반복(선형)


그라데이션 패턴을 요소를 다 채울 때까지 반복하는 것

 

 

기본형식
선택자 {
        background : 접두사 repeating-linear-gradient(
        모양, 시작색상, 끝색상 중단위치 );
        background : repeating-linear-gradient(
        모양, 시작색상, 끝색상 중단위치);
        }

 

  • 두가지 색이 뚜렷하게 구분되는 것이 아니라 색이 흐린한 부분에서 색이 섞여 다른 색으로 보인다.

 

 

 

 

 

 

 

두가지색이 뚜렷하게 구분된 반복


선택자 {
        background : 접두사 repeating-linear-gradient(
        모양, 시작색상, 시작색상 중단위치, 끝색상, 끝색상 중단위치);
        background : repeating-linear-gradient(
        모양, 시작색상, 시작색상 중단위치, 끝색상, 끝색상 중단위치);
        }



 

 

 

 

 

그라데이션 반복(원형)


 

기본형식
선택자 {
        background : 접두사 repeating-radial-gradient(
        모양, 시작색상, 끝색상 중단위치);
        background : repeating-radial-gradient(
        모양, 시작색상, 끝색상 중단위치);
        }

 

  • 두가지 색이 뚜렷하게 구분되는 것이 아니라 색이 흐린한 부분에서 색이 섞여 다른 색으로 보인다.

 

 

 

 

 

 

 

 

두가지색이 뚜렷하게 구분된 반복


선택자 {
        background : 접두사 repeating-radial-gradient(
        시작색상, 시작색상 중단위치, 끝색상, 끝색상 중단위치);
        background : repeating-radial-gradient(
        시작색상, 시작색상 중단위치, 끝색상, 끝색상 중단위치);
        }



 

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

CSS 화면 구현  (0) 2022.02.14
4. 변형/애니메이션  (0) 2022.02.10
3. 기본스타일  (0) 2022.02.10
1. 목록/링크 스타일  (0) 2022.02.10
0. CSS 기초 & 선택자  (0) 2022.02.09

 

 

 

 

 

CSS_목록 스타일

 

 

 

 

 

<!DOCTYPE html>
<html lang="en">
<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>05_텍스트 스타일</title>
	<!-- 구글 웹 폰트 추가 -->
	<link href="https://fonts.googleapis.com/css2?family=Festive&display=swap" rel="stylesheet">

	<!-- 외부 스타일 시트 링크 -->
	<link href="../resources/css/font.css" rel="stylesheet" type="text/css">
	<link href="../resources/css/textstyle.css" rel="stylesheet" type="text/css">
	<link href="../resources/css/paragraph.css" rel="stylesheet" type="text/css">
	<link href="../resources/css/liststyle.css" rel="stylesheet" type="text/css">
</head>
<body>
    <h1>텍스트 스타일</h1>

    <hr>

	<h2>글꼴 관련 스타일</h2>

	<h3>font-family 속성 : 텍스트의 글꼴을 지정할 때 사용한다.</h3>
	<pre> 선택자 { font-family : 글꼴이름; }의 형식으로 사용한다. </pre>
	<p id="ff1">글꼴 변경 테스트1</p>
	<p id="ff2">글꼴 변경 테스트2</p>
	<p id="ff3">글꼴 변경 테스트3</p>
 
	<h4>웹 폰트 사용하는 방법</h4>
	<p>웹 폰트 제공 사이트 예시 : <a href="http://fonts.google.com" target="_blank">구글 웹 폰트 사이트로</a></p>
	<p id="web-font">font style test</p>
	
	<h3>font-size 속성 : 텍스트의 크기를 변경할 때 사용한다.</h3>
    <p>
		상대 크기 <br>
		- em : 해당 폰트의 대문자 M의 너비를 기준으로 함.
			   부모 요소의 크기가 기준으로 배수를 의미. ex) 1.5em은 1.5배<br>
		- rem : 최상위의 부모 요소의 크기 기준으로 배수를 의미.<br>
		- %  : 기본 글꼴의 크기에 대하여 상대적인 값을 가짐<br>
        절대 크기 <br>
		- px : Pixels, 표시장치(모니터)에 따라서 상대적인 크기를 가짐<br>
		- pt : Points, 기본 지정된 크기를 가짐. 1 포인트는 1/72 인치
	</p>
/* font-family 속성 */
#ff1 { font-family: "궁서체";}
#ff2 { font-family: "돋움체";}
#ff3 { font-family: "없는글꼴", "굴림체";}

/* 웹 폰트 설정 */
#web-font { font-family: 'Festive', cursive;}

 

 

 

 

 

	<pre> 선택자 { font-size : 크기; }의 형식으로 사용한다.</pre>
	<ul>
		<li id="size1">고정크기 px 테스트</li>
		<li id="size2">가변크기 em 테스트</li>
		<li id="size3">가변크기 % 테스트</li>
	</ul>

	<ul id="size4">
		<li id="size5">고정크기 px 테스트</li>
		<li id="size6">가변크기 em 테스트</li>
		<li id="size7">가변크기 % 테스트</li>
	</ul>
/* font-size 속성 */
#size1 { font-size : 30px; }
#size2 { font-size : 2em; }
#size3 { font-size : 150%; }

/* 부모 요소 ul의 크기 변경 */
#size4 { font-size : 200%; }

#size5 { font-size : 30px; }
#size6 { font-size : 2em; }
#size7 { font-size : 150%; }

 

 

 

	<h3>font-weight 속성 : 두꺼운 글씨를 표현할 때 사용한다.</h3>
	<pre> 선택자 { font-weight : normal | bold | bolder | lighter | 100 | 400 | 900; }의 형식으로 표현한다.</pre>
	<ul>
		<li id="fw1">굵은 글꼴로 변경</li>
		<li id="fw2">원래 굵기보다 더 가늘게</li>
		<li id="fw3">원래 굵기보다 더 굵게</li>
		<li id="fw4">수치로 조절해보기</li>
	</ul>
	
	<h3>font-variant 속성 : 작은 대문자로 변경할 때 사용한다.</h3>
	<pre> 선택자 { font-variant : 속성값; } 의 형식으로 사용된다.</pre>
	<p>I LOVE YOU</p>
	<p id="fv">i love you</p>


	<h3>font-style 속성 : 텍스트의 기울임을 지정할 때 사용한다.</h3>
	<pre> 선택자 { font-style : normal | italic | oblique; }의 형식으로 사용한다.</pre>
	<ul>
		<li id="fs1">italic 기울임 글꼴</li>
		<li id="fs2">oblique 기울임 글꼴</li>
	</ul>


	<h3>font 속성 : 글꼴 관련 스타일을 한번에 지정할 때 사용한다.</h3>
	<pre> 선택자 { font : font-style font-variant font-weight font-size/line-height font-family; }의 형식으로 사용한다.</pre>
	<ul>
		<li id="f1">글꼴 관련 스타일 테스트1</li>
		<li id="f2">글꼴 관련 스타일 테스트2</li>
	</ul>

	<hr>
/* font-weight 속성 */
#fw1 { font-weight: bold;}
#fw2 { font-weight: lighter;}
#fw3 { font-weight: bolder;}
#fw4 { font-weight: 100;}

/* font-variant 속성 */
#fv { font-variant: small-caps;}

/* font-style 속성 */
#fs1 { font-style : italic;}
#fs2 { font-style : oblique;}

/* font 속성 */
#f1 { font : 16px/25px "궁서체"; }
#f2 { font : italic bold 20px/20px "고딕체"; }

 

 

	<h2>텍스트 스타일</h2>

    <h3>color 속성 : 텍스트의 색상을 지정할 수 있다.</h3>
	<pre> 선택자 { color : 색상명영문이름 | 16진수숫자 | rgb값 | rgba값 | hsl값 | hsla값; }의 형식으로 사용된다.</pre>
	<p>색상값 참조 사이트 : <a href="http://www.colorpicker.com" target="_blank">사이트로 이동</a></p>
	<ul>
		<li id="c-name">색상명으로 지정</li>
		<li id="c-16">16진수 값으로 지정</li>
		<li id="c-rgb">rgb로 지정</li>
		<li id="c-rgba">rgba로 지정</li>
		<li id="c-hsl">hsl로 지정</li>
		<li id="c-hsla">hsla로 지정</li>
	</ul>

	<h3>text-decoration 속성 : 텍스트에 줄을 긋거나 줄을 없앨 때 사용한다.</h3>
	<pre> 선택자 {text-decoration : none | underline | overline | line-through; }의 형식으로 표현한다.</pre>
	<ul>
		<li><a href="#" id="td1">하이퍼링크 밑줄 없애기</a></li>
		<li id="td2">텍스트영역 아래 줄 긋기</li>
		<li id="td3">텍스트영역 중간에 줄 긋기</li>
		<li id="td4">텍스트영역 위에 줄 긋기</li>
	</ul>
/* color 속성 */
#c-name { color : red; }
#c-16 { color : #ff0000; }
#c-rgb { color : rgb(255, 0, 0); }

/* 투명도 추가 */
#c-rgba { color : rgba(255, 0, 0, 0.5); }

/* 색조, 채도, 명도 */
#c-hsl { color : hsl(360, 100%, 50%); }
#c-hsla { color : hsla(360, 100%, 50%, 0.5); }

/* text-decoration 속성 */
#td1 { text-decoration: none; } 
#td2 { text-decoration: underline; }
#td3 { text-decoration: line-through; }
#td4 { text-decoration: overline; }

/* text-transform 속성 */
#tt1 { text-transform: none; }
#tt2 { text-transform: capitalize; }
#tt3 { text-transform: uppercase; }
#tt4 { text-transform: lowercase; }

 

 

	<h3>text-transform 속성 : 영문 텍스트의 대소문자 변환 시 사용한다.</h3>
	<pre> 선택자 { text-transform : none | capitalize | uppercase | lowercase; }의 형식으로 표현한다.</pre>
	<ul>
		<li id="tt1">none</li>
		<li id="tt2">capitalize : 영문자의 첫 글자만 대문자로</li>
		<li id="tt3">uppercase : 모든 영문자를 대문자로</li>
		<li id="tt4">lowercase : 모든 영문자를 소문자로</li>
	</ul>

	<h3>text-shadow 속성 : 텍스트에 그림자 효과를 줄 때 사용한다.</h3>
	<pre> 선택자 { text-shadow : none | 가로거리 세로거리 번짐정도 색상; }의 형식으로 표현한다.</pre>
	<div id="bg">
		<span id="ts1" class="shadow">HTML5</span>&nbsp;&nbsp;&nbsp;&nbsp;
		<span id="ts2" class="shadow">HTML5</span>&nbsp;&nbsp;&nbsp;&nbsp;
		<span id="ts3" class="shadow">HTML5</span>&nbsp;&nbsp;&nbsp;&nbsp;
		<span id="ts4" class="shadow">HTML5</span>
	</div>
/* text-shadow 속성 */
/* 배경 설정 */
#bg {
    background: black;
    margin : 30px;
    padding : 50px;
}
/* 공통 속성으로 사이즈와 두께를 지정 */
.shadow {
    font-size : 100px;
    line-height: 30px;
    font-weight: 900;
}

/* 그림자 효과 (가로, 세로, 번짐, 색상) */
#ts1 {
    color : orangered;
    text-shadow: 5px 5px orange;
}
#ts2 {
    color : white;
    text-shadow: 0px 1px 20px #fff;
}
#ts3 {
    color : white;
    text-shadow: 1px 1px 20px #6f0;
}
#ts4 {
    color : black;
    text-shadow: 0px 0px 4px #ccc,
    0px -5px 4px #ff3,
    2px -10px 6px #fd3,
    -2px -15px 11px #f80,
    2px -19px 18px #f20;
}

 

    <h3>white-space 속성 : 텍스트의 공백을 처리할 때 사용한다. </h3>
    <h3>letter-spacing 속성 : 낱개 글자의 간격을 조정할 때 사용한다. </h3>
    <h3>word-spacing 속성 : 단어와 단어 사이 간격을 조정할 때 사용한다. </h3>
	<p id="space1">모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다. 공개하지 아니한 회의내용의 공표에 관하여는 법률이 정하는 바에 의한다.
                   명령·규칙 또는 처분이 헌법이나 법률에 위반되는 여부가 재판의 전제가 된 경우에는 대법원은 이를 최종적으로 심사할 권한을 가진다. 국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농·어민의 이익을 보호한다.<p>
	<p id="space2">모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다. 공개하지 아니한 회의내용의 공표에 관하여는 법률이 정하는 바에 의한다.
                   명령·규칙 또는 처분이 헌법이나 법률에 위반되는 여부가 재판의 전제가 된 경우에는 대법원은 이를 최종적으로 심사할 권한을 가진다. 국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농·어민의 이익을 보호한다.<p>
	<p id="space3">모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다. 공개하지 아니한 회의내용의 공표에 관하여는 법률이 정하는 바에 의한다.
                   명령·규칙 또는 처분이 헌법이나 법률에 위반되는 여부가 재판의 전제가 된 경우에는 대법원은 이를 최종적으로 심사할 권한을 가진다. 국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농·어민의 이익을 보호한다.<p>
	<p id="space4">모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다. 공개하지 아니한 회의내용의 공표에 관하여는 법률이 정하는 바에 의한다.
                   명령·규칙 또는 처분이 헌법이나 법률에 위반되는 여부가 재판의 전제가 된 경우에는 대법원은 이를 최종적으로 심사할 권한을 가진다. 국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농·어민의 이익을 보호한다.<p>
	<p id="space5">모든 국민은 고문을 받지 아니하며, 형사상 자기에게 불리한 진술을 강요당하지 아니한다. 공개하지 아니한 회의내용의 공표에 관하여는 법률이 정하는 바에 의한다.
                   명령·규칙 또는 처분이 헌법이나 법률에 위반되는 여부가 재판의 전제가 된 경우에는 대법원은 이를 최종적으로 심사할 권한을 가진다. 국가는 농수산물의 수급균형과 유통구조의 개선에 노력하여 가격안정을 도모함으로써 농·어민의 이익을 보호한다.<p>
/* white-space 속성 */
/* letter-spacing 속성 */
/* word-spacing 속성 */
#space1 {
    /* 여러 개의 공백을 하나로 표시 */
    white-space: normal;
    /* 낱개 글자의 간격 조정 */
    letter-spacing: 5px;
}

#space2 {
    /* 여러 개의 공백 하나로 표시, 줄 바꾸지 않고 한 줄 표시 */
    white-space: nowrap;
    /* 단어 사이의 간격 조정 */
    word-spacing: 10px;
}

#space3 {
    /* 여러 개의 공백을 그대로 표시 */
    white-space: pre;
}

#space4 {
    /* 여러 개의 공백을 하나로 표시,
    영역 넘어가면 자동 줄바꿈 */
    white-space: pre-line;
}

#space5 {
    /* 여러 개의 공백을 그대로 표시,
    영역 넘어가면 자동 줄바꿈 */
    white-space: pre-wrap;
}

 

 

 

 <h2>문단 스타일</h2>
 
 <h3>direction 속성 : 텍스트 글자 쓰기 방향 지정</h3>
	<h4>왼쪽에서 오른쪽으로 텍스트를 표시</h4>
		<p id="p1">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>
	<h4>오른쪽에서 왼쪽으로 텍스트를 표시</h4>
		<p id="p2">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>
 
 <h3>text-align 속성 : 텍스트 정렬하기</h3>
	<h4>왼쪽 정렬(기본값)</h4>
		<p id="p3">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>
	<h4>오른쪽 정렬</h4>
		<p id="p4">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>
	<h4>가운데 정렬</h4>
		<p id="p5">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>
	<h4>양쪽 정렬</h4>
		<p id="p6">꽃이 거친 쓸쓸한 것이다. 피가 같이, 얼마나 뭇 힘차게 우리 것은 눈이 아니한 있는가? 이는 얼마나 봄바람을 우리의 같지 힘있다. 인도하겠다는 가치를 그들의 거선의 쓸쓸하랴? 든 불어 피가 피부가 인생을 긴지라 봄바람이다. 그들은 이는 어디 인생에 이상의 커다란 이상 찾아다녀도, 스며들어 이것이다. 갑 보배를 거친 꾸며 자신과 끓는다. 인간에 이상 인류의 관현악이며, 것이다. 인간이 인생에 천지는 커다란 사라지지 칼이다.</p>

<h3>line-height 속성 : 줄 간격 조절하기</h3>
	<h4>기본 간격</h4>
		<p id="p7">생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.</p>
	<h4>픽셀 고정 단위 간격</h4>
		<p id="p8">생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.</p>
	<h4>em 가변 단위 간격</h4>
		<p id="p9">생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.</p>
	<h4>% 배율 단위 간격</h4>
		<p id="p10">생성하기 뛰노는 가진 청춘의 같은 보이는 군영과 것이다. 그것을 있는 있는 길을 많이 위하여서. 싶이 만물은 끝에 것은 끓는 든 것이다. 과실이 풍부하게 뜨고, 대한 많이 날카로우나 주는 고행을 때문이다. 같은 웅대한 천하를 봄바람이다. 우리 이성은 튼튼하며, 같이 때문이다. 내려온 싶이 인간이 철환하였는가? 만천하의 있는 있으며, 어디 못하다 풀밭에 칼이다. 아름답고 동산에는 이상의 이상 칼이다. 그들에게 인생의 반짝이는 무엇이 못할 사랑의 붙잡아 군영과 앞이 그리하였는가?
		우는 길지 못하다 청춘은 구하지 가지에 이상이 힘있다. 피고, 부패를 인간의 위하여 열매를 그러므로 피다. 가치를 자신과 우리 평화스러운 방지하는 있으랴? 없으면, 자신과 되려니와, 실현에 풍부하게 광야에서 뿐이다. 있을 쓸쓸한 꽃이 있으랴? 많이 품에 곳이 끝에 그들의 유소년에게서 피부가 날카로우나 듣는다. 위하여서, 오직 두손을 전인 어디 이 풍부하게 되려니와, 쓸쓸하랴? 할지라도 예수는 이상은 피어나는 것은 그리하였는가? 목숨이 내려온 곳이 하는 가치를 현저하게 있는가? 시들어 그들은 우리 굳세게 사는가 약동하다. 얼마나 따뜻한 무한한 청춘의 없으면 힘있다.
		그들의 눈이 불러 설레는 이상이 가치를 끓는 있다. 생생하며, 뛰노는 때에, 천하를 보는 우리의 열락의 내려온 보이는 있는가? 청춘의 길을 때에, 천하를 심장은 뜨고, 방지하는 것이다. 구할 꾸며 몸이 든 찾아 말이다. 주며, 소담스러운 위하여 구하지 이상은 때문이다. 주며, 청춘의 힘차게 발휘하기 때까지 그림자는 우리 노래하며 듣는다. 청춘의 수 것은 든 인생의 같지 가진 끓는다. 무엇을 피고 온갖 그들의 부패를 군영과 끓는다. 청춘 예수는 영락과 바로 가는 때에, 꽃 운다. 기쁘며, 것은 소금이라 청춘의 방황하여도, 철환하였는가? 어디 예가 우리의 이것이다.</p>
<hr>
/* direction 속성 */
#p1 { direction: ltr;}
#p2 { direction: rtl;}

/* text-align 속성 */
#p3 { text-align: left; }
#p4 { text-align: right; }
#p5 { text-align: center; }
#p6 { text-align: justify;}

/* line-height 속성 */
#p7 { line-height: normal; }
#p8 { line-height: 30px; }
#p9 { line-height: 1.5em; }
#p10 { line-height: 200%; }

 

 

 

<h2>목록 스타일</h2>
  <h3>list-style-type 속성 : 순서 없는 목록스타일</h3>
  <h4>채운 원 모양 불렛(기본값)</h4>
    <ul id="default-bullet">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>
   <h4>빈 원 모양 불렛</h4>
    <ul id="circle-bullet">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>
   <h4>채운 사각형 모양 불렛</h4>
    <ul id="square-bullet">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>
   <h4>불렛 없애기</h4>
    <ul id="none-bullet">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>
/* list-style-type 속성 */
#default-bullet { list-style-type: disc; }
#circle-bullet { list-style-type: circle; }
#square-bullet { list-style-type: square; }
#none-bullet { list-style-type: none; }

 

 

   <h3>list-style-type 속성 : 순서 있는 목록스타일</h3>
   <h4>1로 시작하는 10진수(기본값)</h4>
	<ol id="default-number">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>
   <h4>앞에 0이 붙는 10진수</h4>
	<ol id="zero-number">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>
   <h4>소문자 로마 숫자</h4>
	<ol id="lower-rome-number">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>
   <h4>대문자 로마 숫자</h4>
	<ol id="upper-rome-number">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>
   <h4>알파벳 소문자</h4>
	<ol id="lower-alpha">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>

   <h4>알파벳 대문자</h4>
	<ol id="upper-alpha">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ol>
#default-number { list-style-type: decimal; }
#zero-number { list-style-type: decimal-leading-zero; } 
#lower-rome-number { list-style-type: lower-roman; } 
#upper-rome-number { list-style-type: upper-roman; } 
#lower-alpha { list-style-type: lower-alpha;}
#upper-alpha { list-style-type: upper-alpha;}

 

	<h3>list-style-position 속성 : 목록 기호 들여쓰기</h3>
	<ul id="bullet-inside">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>

	<ul id="bullet-outside">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>

	<h3>list-style-image 속성 : 기호 대신 이미지 삽입</h3>
	<ul id="image-bullet">
		<li>HTML5</li>
		<li>CSS3</li>
		<li>JavaScript</li>
		<li>JQuery</li>
	</ul>
/* list-style-position 속성 */
#bullet-inside { list-style-position: inside; }
#bullet-outside { list-style-position: outside; }

/* list-style-image 속성 */
#image-bullet { list-style-image: url("../images/circle.png");}

 

 

 

 

 

 

 

 

 

list-style-type


목록을 기호의 스타일을 지정하는 속성

 

 

 

 

 

 

 

 

 

list-style-image


기호 대신 이미지 삽입

 

 

기본형식
<style>
    선택자 {
            list-style-image : url(이미지 경로);
 	   }
</style>

 

 

 

 

 

 

 

list-style-position


목록 기호 들여쓰기

 

 

 

 

기본형식
<style>
        선택자 {
        	list-style-position: inside or outside;
        }
</style>

 

 

 

 

 

 

list-style


목록 스타일 한번에 지정하는 속성

 

 

기본형식
<style>
        선택자 {
       		 list-style: type값 position값 image값;
        }
</style>

 

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

CSS 화면 구현  (0) 2022.02.14
4. 변형/애니메이션  (0) 2022.02.10
3. 기본스타일  (0) 2022.02.10
2. CSS 색상/배경  (0) 2022.02.10
0. CSS 기초 & 선택자  (0) 2022.02.09

 

 

 

 

 

 

웹페이지_구성


  • 문서내용작성과 꾸미는 부분을 분리하여 내용을 수정해도 디자인을 바꿀 필요가 없고 디자인을 수정해도 글내용을 바꿀 필요가 없다.
  • 다양한 기기에도 디자인만 따로 적용하여 구동 시킬 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

CSS_개요

 

 

 

 

style과 stylesheet


  • style은 정해진 속성을 입력하여 웹페이지를 꾸미는 것
  • stylesheet은 웹페이지에서 반복적으로 쓰는 style을 모아 놓은 것

 

 

 

스타일 기본형식


 

 

 

 

 

 

 

 

CSS_적용

 

 

 

 

내부 스타일시트


<style></style> 내부에 스타일 정보를 저장하는 방법

 

 

    <style>
    	p { text-align : center; }
    </style>

 

 

 

 

 

외부 스타일시트


<link>태그를 이용하여 CSS파일을 읽어 와서 스타일을 적용하는 방법

 

 

<link href=“css파일경로” rel=“stylesheet” type=“text/css”>

 

 

 

 

 

인라인 스타일 시트


태그 내부에 스타일 정보를 지정하는 방법

 

<html>
    <head>
    </head>
        <boby>
     	   <p style=“스타일정보;”>
        </body>
</html>

 

 

 

 

 

 

CSS_선택자

 

 

 

 

 

선택자의 종류


 

 

 

 

   <h1> CSS 기본 선택자 </h1>
    <h2> 선택자란 </h2>
    <p>
        특정한 HTML 태그를 선택할 때 사용하는 기능으로, 태그를 선택하여 원하는 스타일과
        기능을 적용할 수 있다.
    </p>

 

 

 

 

 

 

 

전체 선택자


<html>에 있는 모든 태그에 적용되는 스타일

 

 

 

기본형식

전체태그는 body태그에 있는 요소뿐만 아니라 html, head에도 적용된다.

 

* { 설정내용; }



 

 

 

▼ 코드 예시 보기 ▼
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>01_기본선택자</title>
        <!--내부 스타일 시트/ html에서 작성하는 주석방법-->
    <style>
        /* 스타일이라는 태그 안에서의 주석은 이와같이 작성한다. */
        /* CSS 주석 */
<h2>모든 선택자</h2>
    <p>
        HTML문서 안의 모든 태그를 선택할 때 전체 선택자를 사용할 수 있다.
    </p>
        /* 전체 선택자 */
        /* 전체선택자로서 모든 요소의 색상이 빨간색이 된다. */
        /* * { color : red; } */

 

 

 

 

 

 

 

 

 

태그 선택자


<html>에 있는 모든 태그에 적용되는 스타일

 

 

기본형식

-> 여러 개 태그 선택시에는 ‘,’(쉼표)로 구별하여 작성

 

태그명 { 설정내용; }

 



 

 

▼ 코드 예시 보기 
    <h2>태그 선택자</h2>
    <p>
        HTML 문서 내에 같은 태그를 모두 선택할 때 사용한다. 
        p {color : red;} 와 같은 형태로 사용한다.
    </p>
        /* 태그 선택자 */
        p { color : blueviolet; }
        /* p로 선언된 태그들만 골라서 색으로 적용한다.  */

 

 

 

 

 

 

 

아이디 / 클래스 선택자


  • 아이디 선택자 : 태그 속성 id를 설정하고 id값을 선택자로 하는 것(#)
  • 클래스 선택자 : 태그 속성 class를 설정하고 class값을 선택자로 하는 것(.)

 

 

기본형식
id : #아이디명 { 설정내용; }
class : .클래스명 { 설정내용; }

 

  • 클래스 선택자는 중복이 허용되고 id선택자는 중복이 허용되지 않는다. 코드상에서는 에러는 없지만 javascript의 DOM에서 id값으로 페이지 요소를 가져오기 때문에 중복을 허용하지 않음.
  • 클래스는 중복을 허용하기 때문에 영역을 명확하게 하기 위해 태그선택자와 같이 쓰는 경우도 있음

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h2>아이디 선택자</h2>
    <!-- 아이디는 고유값으로서 반드시 하나에만 고유하게 적용해야 한다. -->
    <p>
        HTML 문서 내에 해당하는 아이디 속성을 가진 태그만 선택할때 사용한다. <br>
        #아이디명 {color : blue;} 와 같은 형태로 사용한다.
    </p>
    <ol>
        <li id = "id1">아이디 선택자 테스트1</li>
        <li id = "id2">아이디 선택자 테스트2</li>
        <li id = "id3">아이디 선택자 테스트3</li>
        <li id = "id4">아이디 선택자 테스트4</li>
        <li id = "id5">아이디 선택자 테스트5</li>
    </ol>


    <h2>클래스 선택자</h2>
    <p>
        HTML 문서 내에서 여러 개의 태그를 동일한 클래스명으로 지정하여
        선택할 때 사용한다. <br>
        .클래스명 {color : purple;} 와 같은 형태로 사용한다.
    </p>
    <ul>
        <li class="class1">클래스 선택자 테스트1</li>
        <li class="class2">클래스 선택자 테스트2</li>
        <li class="class1">클래스 선택자 테스트1</li>
        <li class="class2">클래스 선택자 테스트2</li>
        <li class="class1">클래스 선택자 테스트1</li>
    </ul>
        /* 아이디 선택자 */
        #id2, #id4 {
            background : lightblue;
            color : white;
        }

        /* 클래스 선택자 */
        .class1 {
            background : lightcoral;
            color : white;
        }

 

 

 

 

 

 

 

 

 

 

기본 속성 선택자


지금 선택자와 함께 사용하는 선택자로 선택자 뒤에 []를 사용하여 속성과 속성값을 사용

 

 

기본형식
- 선택자[속성] { 설정내용; }
- 선택자[속성=속성값] { 설정내용; }

 

 

 

 

 

 

문자열 속성 선택자


특정문자열을 확인하여 스타일을 적용하는 방식으로 특별한 경우에만 사용

 

 

 

 

 

▼ 코드 예시 보기 
<body>
    <h1>다양한 선택자</h1>
    <h2>속성 선택자</h2>
    <p>
        기본 선택자 뒤에 []를 사용하여 속성과 속성값을 사용한다 <br>
        선택자 [속성=속성값] { 설정내용 } 의 형식으로 사용한다.
    </p>
    <div name="name1" class="div-class">div 1</div>
    <div name="name2" class="div-class">div 2</div>
    <div name="name3 name1" class="div-class">div 3</div>
    <div name="name4" class="class-div">div 4</div>
    <style>
        /* 속성 선택자 */

        /* 속성 값이 특정 값의 태그 선택 */
        div[name=name2] { background : skyblue; }

        /* 속성 값이 특정 값을 단어로 포함하는 태그 선택 (띄어쓰기 구분) */
        div[name~=name1] { background : pink; }
        /* 띄어쓰기 기준으로 어떤 단어가 포함됐는지를 묻는것, 단 붙어있으면 인식되지 않는다. */

        /* 속성 값이 특정 값을 단어로 포함하는 태그 선택
        (-으로 구분, - 앞의 내용이 값 동일해야 함) */
        div[class|=class] { background : cyan; }

        /* 속성 값이 특정값으로 시작하는 태그 선택 */
        div[name^=name] {
            background : gray;
        }

        /* 속성 값이 특정 값으로 끝나는 태그 선택 */
        div[class$=class] {
            color : white;
        }

        /* 속성 값이 특정 값을 포함하는 태그 선택 
        (해당값이 적어도 하나 존재한다면) */
        div[class*=div] { background : salmon; }

 

 

 

 

 

 

 

 

 

 

후손선택자 / 자손선택자


 

 

 

 

 

 

 

 

후손 선택자


 

기본 형식
선택자 후손선택자 { 설정내용; }

 

 

 

 


자손 선택자


 

 

기본 형식
선택자 > 자손선택자 { 설정내용; }

 

 

  • 여러 개의 자손선택가능 ( 선택자 > 자손 > 자손 > 자손 … )

 

 

 

 

▼ 코드 예시 보기 
    <h2>자손/후손 선택자</h2>
    <p>
        자손 선택자 : 바로 아래의 요소, 후손선택자 : 하위요소 전부<br>
        자손선택자는 :  선택자>자손선택자 { 설정내용 } 의 형식으로 사용하고 <br> 
        후손 선택자는 : 선택자 후손선택자 { 설정내용 } 의 형식으로 사용한다. (띄어쓰기)
    </p>
    <div id = "test1">
        <h4>div의 자손입니다.</h4>
        <h4>나도 div의 자손입니다.</h4>
        <ul id="testul">
            <li>나는 ul의 자손이면서 동시에 div의 후손입니다.</li>
            <li>나도 ul의 자손이면서 동시에 div의 후손입니다.</li>
        </ul>
    </div>
        /* 자손/후손 선택자 */

        /* div test1의 자손 h4*/
        #test1 > h4 { background : pink; }

        /* div test1의 자손 ul의 자손 li */
        #test1 > ul > li {background : skyblue;}

        /* div test1의 후손 ul */
        #test1 ul { background : lightgray }

        /* div test1의 후손 li */
        #test1 li {color : white;}

 

 

 

 

 

 

 

 

 

동위선택자


동위 관계에서 뒤에 위치한 태그를 선택할 때 사용

 

 

 

 

 

▼ 코드 예시 보기 
    <h2>동위 선택자</h2>
    <p>
        동위 관계에서 뒤에 위치한 태그를 선택할 때 사용한다. <br>
        바로 뒤에 있는 요소 선택 시 : 선택자 + 선택자 { 설정내용 }의 형식으로 사용하고
        뒤에 있는 모든 요소 선택 시 : 선택자 ~ 선택자 { 설정내용 }의 형식으로 사용한다.

    </p>


    <!--
        동위 선택자 사용을 위해서 다른 태그들과 동위가 
        되지않도록 div로 감싸서 작업한다.
    -->
    <div>
        <div id="div-test1">div test1</div>
        <div id="div-test2">div test2</div>
        <div id="div-test3">div test3</div>
        <div id="div-test4">div test4</div>
        <div id="div-test5">div test5</div>

    </div>
        /* 동위 선택자 */
        /* 선택자바로 뒤의 요소 선택시 ' + ' */
        #div-test1 + div { background : yellow; }


        /* 선택자 뒤에 있는 모든 요소 선택시 ' ~ ' */
        #div-test2 ~ div { background : orangered; }

 

 

 

 

 

 

 

 

 

반응선택자


사용자의 움직임에 따라 달라지는 선택자

 

 

 

 

기본형식
선택자 :active { 설정내용; }
선택자 :hover { 설정내용; }

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h2>반응 선택자</h2>
    <p>
        사용자의 움직임에 따라 달라지는 선택자 <br>
        사용자가 클릭한 태그 : 선택자:active {설정 내용} 의 형식으로
        사용하고 사용자의 마우스가 올라간 태그 : 선택자:hover { 설정 내용 }
        의 형식으로 사용한다.
    </p>

    <div id="active-test">active 테스트</div>
    <br>
    <div id="hover-test">hover 테스트</div>
        /* 반응 선택자 */

        /* div 영역 표시를 위한 스타일 적용 */

        #active-test,
        #hover-test {
            width : 300px;
            height : 300px;
            background-color : skyblue;
            color : white;
        }

        /* 클릭한 태그 */
        #active-test:active {background : plum;}

        /* 마우스 오버한 태그 */
        #hover-test:hover {
            background : cyan;
            cursor: pointer;
            /* 포인터 모양으로 바뀐다. */
        }

 

 

 

 

▼ 반응선택연산자 예시 확인 (더보기 클릭) ▼

 

 

 

 

 

 

 

 

 

 

상태선택자


 입력양식의 상태에 따라 선택되는 선택자

 

 

 

 

▼ 코드 예시 보기 
    <h2>상태 선택자</h2>
    <p>
        입력 양식의 상태에 따라 선택되는 선택자 <br>
        체크 상태의 input 태그 선택 : input태그:checked { 설정내용 }
        의 형식으로 사용한다.
    </p>

    <input type="checkbox" id="apple" name="fruit" value="apple">
    <label for="apple">사과</label>
    <input type="checkbox" id="banana" name="fruit" value="banana">
    <label for="banana">바나나</label>
    <input type="checkbox" id="peach" name="fruit" value="peach">
    <label for="peach">복숭아</label>
        /* 상태 선택자 */
        /* 체크박스가 체크 될 경우 */
        input[type=checkbox]:checked {
            width : 200px;
            height : 200px;
        }

 

 

 

 

    <p> 초점이 맞추어진 input 태그 선택 : 
        input태그:focus { 설정내용 } 의 형식으로 작성한다.
    </p>
    <label>아이디 : </label>
    <input type="text" id="userid" placeholder="아이디 입력" autofocus>
    <!-- autofocus 자동으로 선택되어 커서가 깜빡이는 속성 -->>
    <br>
    <label>패스워드 : </label>
    <input type="password" id="password" placeholder="비밀번호 입력" disabled>
    
    <p>
        사용 가능한 input 태그 선택 : input태그:enable { 설정 내용 }
        의 형식으로 사용하며 사용 불가능한 input 태그 선택 : 
        input태그:disable { 설정 내용 } 의 형식으로 사용한다.
    </p>


    <h3>당신의 연령대는?</h3>
    <select>
        <option disabled>10대</option>
        <option>20대</option>
        <option>30대</option>
        <option>40대</option>
        <option>50대</option>
        <option disabled>60대</option>
        <!-- disabled 속성 적용시 비활성화되어 선택할 수 없다. -->>
    </select>
        /* 초점이 맞추어진 input 태그 선택 */
        #userid:focus,
        #password:focus {
            background-color : lightgray;
        }



        /* 사용 불가능한 옵션 */
        option:disabled { background : gray; }

        /* 사용 가능한 옵션 */
        option:enabled { background : yellowgreen; }

    </style>

 

 

 

 

 

 

 

 

 

일반구조 선택자


특정한 위치에 있는 태그 선택 (위치로만 구분)

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h1>다양한 선택자-2</h1>
    <h2>일반 구조 선택자</h2>
    <p>
        특정한 위치에 있는 태그 선택 (위치로 구분
    </p>
    <div id="test1">
        <!--같은 동위 = 형제관계-->
        <p>테스트1</p>
        <p>테스트2</p>
        <p>테스트3</p>
        <p>테스트4</p>
        <p>테스트5</p>
        <pre>테스트1</pre>
    </div>
    <style>

        /* 구조 선택자 */


        /* 일반 구조 선택자 -> 위치로만 구분 */

        /* 형제관계태그 중 첫 번째 태그 선택 */
        #test1 p:first-child {
            background: pink;
            color : white;
        }

        /* 형제 관계 태그 중 마지막 태그 선택 */
        /* 아무런 변화 없음. 
            왜? 위치로만 확인을 하는데 마지막태그는 
            p태그가 아니라 pre태그이기 때문 */
        #test1 p:last-child {
            background : orange;
            color : white;
        }

        /* 형제 관계 태그 중 앞에서 수열번째 태그 선택 */
        #test1 p:nth-child(2n) {
            background : yellowgreen;
            color : white;
        }


        /* 형제 관계 태그 중 뒤에서 수열번째 태그 선택 */
        #test1 p:nth-last-child(4) {
            background : skyblue;
            color : white;
        }

 

 

 

 

 

 

 

 

 

 

형태구조 선택자


특정한 위치에 있는 태그 선택(태그 별로 구분)

 

 

 

 

 

 

▼ 코드 예시 보기 
    <h2>형태 구조 선택자</h2>
    <p>
        특정한 위치에 있는 태그 선택 (태그별로 구분)
    </p>
    <div id="test2">
        <!--같은 동위 = 형제관계-->
        <p>테스트1</p>
        <p>테스트2</p>
        <p>테스트3</p>
        <p>테스트4</p>
        <p>테스트5</p>
        <pre>테스트6</pre>
    </div>
        /* 형태 구조 선택자 - 태그별로 구분 */

        /* (해당 타입의) 형제 관계 태그 중 첫번째 태그 선택 */
        #test2 p:first-of-type {
            background : pink;
            color : white;
        }

        /* (해당 타입의) 형제 관계 태그 중 마지막 번째 태그 선택 */
        #test2 p:last-of-type {
            background : orange;
            color : white;
        }


        /* (해당 타입의) 형제관계 태그 중 앞에서 수열번째 태그 선택 */
        #test2 p:nth-of-type(2n) {
            background: yellowgreen;
            color : white;
        }


        /* (해당 타입의) 형제 관계 태그 중 뒤에서 수열번째 태그 선택 */
        #test2 p:nth-last-of-type(3) {
            background: skyblue;
            color : white;
        }

 

 

 

 

 

 

 

 

 

 

 

문자 선택자


태그 내부에서 특정 조건의 문자를 선택하는 선택자

 

 

 

▼ 코드 예시 보기 
   <h2>문자 선택자</h2>
    <p>태그 내부에서 특정 조건의 문자를 선택하는 선택자</p>
    <div id="test3">
        <p>보는 천하를 공자는 든 그리하였는가? 오아이스도 만물은 아름답고 인간은 없으면 무엇을 그들의 그들은 많이 힘있다. 착목한는 무한한 인생에 청춘의 새가 열락의 기쁘며, 인생에 그리하였는가? 곳으로 청춘이 것은 품었기 피가 들어 웅대한 봄바람을 방지하는 때문이다. 피가 끓는 인간은 인류의 구할 그리하였는가? 영락과 것이다.보라, 것은 방황하였으며, 우는 이상이 생명을 말이다.

            피부가 우리는 앞이 가치를 이상을 것이다. 너의 있으며, 소담스러운 열락의 약동하다. 방지하는 풀밭에 뜨고, 타오르고 힘있다. 못할 것은 피가 이상의 풀밭에 힘있다. 것은 위하여 풍부하게 광야에서 싹이 청춘 피고 위하여서.
            
            피어나기 곳이 바이며, 스며들어 그들의 피고, 있는가? 못하다 황금시대의 청춘이 것이다. 석가는 싶이 과실이 용감하고 우리의 피가 것이다. 피가 불러 이상의 고동을 이상의 청춘에서만 위하여서 못할 피다. 만물은 싶이 청춘의 투명하되 낙원을 끝까지 힘있다. 산야에 투명하되 어디 철환하였는가? 못할 살 이는 전인 있는가?
            
            꽃이 봄바람을 인생을 싹이 돋고, 그러므로 끓는다. 대한 인간에 그들을 새 인도하겠다는 하였으며, 못하다 영원히 고동을 있다. 돋고, 바이며, 더운지라 청춘은 투명하되 이상은 있는 구하기 이것이다. 끓는 설산에서 청춘의 인도하겠다는 가슴이 할지라도 사막이다. 열락의 그들은 소담스러운 길지 살 황금시대다. 동력은 하는 속에서 우는 밝은 이 얼음과 청춘의 청춘의 운다. 얼음에 위하여서, 우리 이상을 작고 것이다.
            
            설레는 대한 수 보라. 맺어, 가는 밥을 곧 광야에서 있는 철환하였는가? 튼튼하며, 사랑의 피가 있으랴? 새가 불러 청춘의 이것이다. 속잎나고, 따뜻한 이 끓는다.
            
            사는가 이상은 하는 봄바람을 실현에 생의 이것이다. 것이 목숨이 같이, 아니다. 위하여, 긴지라 피가 피는 원질이 끓는 너의 피다. 쓸쓸한 피어나는 같지 황금시대의 어디 그들은 속에 크고 있다. 피고 그들은 바이며, 따뜻한 그들은 낙원을 얼마나 때에, 보이는 것이다. 찾아 새가 설산에서 피에 청춘의 같지 트고, 튼튼하며, 우리 봄바람이다.
            
            어디 그들은 인생에 그들은 얼마나 품었기 커다란 구하지 소담스러운 운다. 가슴이 살았으며, 실현에 속잎나고, 일월과 이것을 듣기만 과실이 것이다.보라, 아름다우냐? 긴지라 속에서 가치를 용감하고 인생을 인생에 청춘에서만 현저하게 얼마나 말이다. 보는 어디 앞이 같이, 것이다. 모래뿐일 인간이 동력은 위하여서, 그것은 같이, 운다. 밝은 있는 뜨고, 같지 봄바람이다. 가치를 투명하되 찬미를 행복스럽고 얼마나 사는가 가슴이 별과 수 뿐이다.
            
            이상의 따뜻한 품으며, 살 방황하여도, 남는 소금이라 속에서 것이다. 길을 소담스러운 풀밭에 있는 것이다. 때까지 청춘 사랑의 인간의 속에 별과 끓는 실로 피가 말이다. 맺어, 곳이 길을 이성은 설레는 인생에 얼마나 끓는다. 때까지 고행을 기관과 것은 커다란 들어 사랑의 약동하다. 같으며, 피부가 그러므로 고동을 설산에서 오직 싹이 봄바람이다.
            
            이상 곳이 피부가 무엇을 열락의 이상 가치를 꽃 못할 그리하였는가? 이상이 싹이 군영과 이것은 것이다. 노년에게서 황금시대를 이 낙원을 역사를 충분히 피다. 위하여, 내는 보는 그들에게 것은 따뜻한 황금시대다. 인생에 우리의 풀이 것이다.
            
            아니한 있으며, 따뜻한 뛰노는 위하여 같이 있다. 그들은 구하지 같은 거선의 구하기 것이다. 우리 두기 오아이스도 인간에 있는 위하여서, 이상의 이상, 그리하였는가? 것이 설산에서 동력은 위하여서. 위하여, 관현악이며, 가치를 인생에 그들은 이 말이다. 뜨고, 우리 생의 바이며, 내는 우리의 같이, 든 봄바람이다.</p>
        <p></p>
    </div>
        /* 문자 선택자 */

        /* 첫번째 글자 선택 */
        #test3 p::first-letter {
            font-size : 2em;
        }


        /* 첫번째 줄을 선택  */
        #test3 p::first-line {
            background : peachpuff;
        }

        /* 태그 뒤에 위치하는 공간을 선택 */
        /* 두번 붙는 이유 : p태그가 두개있기 때문, 그런데 p태그 두번째는 아무것도
        작성하지않았다. */
        #test3 p::after {
            content : "@@@ 태그 뒤에 추가 @@@";
        }


        /* 태그별로 자동 번호를 매겨주는 속성 */
        #test3 p{
            counter-increment: num;
        }

        /* 태그 앞에 위치하는 공간을 선택 */
        /* 첫, 두단락 앞에 1 과 2가 붙는다. */
        #test3 p::before {
            content : counter(num) ". ";
        }

        /* 사용자가 드래그한 글자 선택 */
        /* 드래그시 나타난다. */
        #test3 p::selection {
            background : yellow;
            color : white;
        }

 

 

 

 

 

 

 

 

 

 

 

 

부정 선택자


  • 지금까지의 선택자에 대해 반대로 적용하는 선택자
  • 선택자에는 다른 부정선택자나 가상요소를 넣을 수 없다.

 

 

 

 

▼ 코드 예시 보기 
    <h2> 부정 선택자 </h2>
    <p>
        지금까지의 선택자에 대해 반대로 적용하는 선택자        
    </p>
    <div id="test4">
        <p>테스트1</p>
        <p>테스트2</p>
        <p>테스트3</p>
        <p>테스트4</p>
        <p>테스트5</p>

    </div>
        /* 부정 선택자 */
        #test4 p:nth-child(2n-1) {
            background : burlywood;
        }


        #test4 p:not(:nth-child(2n-1)) {
            background : lemonchiffon;
        }




    </style>

 

 

 

 

 

 

 

 

 

 

 

 

CSS_우선순위

 

 

 

 

 

소스 순서에 따른 순위


나중에 작성된 스타일이 적용된다.

 

 

 

 

적용방법에 따른 순위


 

 

 

 

▼ 코드 예시 보기 
    <h1>선택자 우선순위</h1>
    <p>
        기본적으로 CSS 속성은 위에서부터 아래로 적용이 되지만, 
        같은 태그에 여러개의 CSS 속성이 적용 된 경우 우선순위에 따라
        스타일이 적용 된다.
    </p>
    <p>
        태그 선택자 -> 클래스 선택자 -> 아이디 선택자 
        -> 인라인 스타일-> !important 순서로 우선순위를 가진다.

        <!-- 
            상세화된 특정요소를 선택할 수록 우선순위가 높아진다. 
            인라인 : 태그 속에 직접적어서 해당 부분에 적용하는 것
            그러나 이는 유지보수가 힘들기에 지양하는 것이 좋다.
        -->


        <h2>선택자 우선순위 테스트</h2>
        <div id="test1" class="test1" style="background :violet;" color : "blue;">우선순위 테스트 div 영역</div>
        <p id="test2" class="test2"  style="background :wheat; color : white;"> 우선순위 테스트 p영역</p>




    </p>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

html의 기본틀 자동완성으로 만들기

 

  1. VSCODE 에서 확장자명을 .html 로 설정하여 파일을 만들기
  2. 첫번째 줄에 html까지만 작성하면 다음과 같이 자동완성이 뜨는 것을 확인할 수 있다.
  3. html:5를 선택한다.

 

 

 

 

CSS 문제풀이 사이트

 

https://flukeout.github.io/

 

CSS Diner

A fun game to help you learn and practice CSS selectors.

flukeout.github.io

 

 

 

 

 

'Programming > CSS3' 카테고리의 다른 글

CSS 화면 구현  (0) 2022.02.14
4. 변형/애니메이션  (0) 2022.02.10
3. 기본스타일  (0) 2022.02.10
2. CSS 색상/배경  (0) 2022.02.10
1. 목록/링크 스타일  (0) 2022.02.10

+ Recent posts