본문 바로가기

HTML & CSS/HTML & CSS(2022 version)

HTML & CSS 실습 - 추가 속성 체크 및 실습

728x90
반응형

<목차>

1) CSS 복습

   1-1) CSS 적용 방법

   1-2) element 위치 조절하는 방법

   1-3) 추가 속성 체크

2) 코드 실습

 

 

1) CSS 복습

1-1) CSS 적용 방법

  1. head 영역에 style 태그 추가
  2. inline style
  3. link 태그를 이용해 외부 파일 연결 (>> 대부분의 개발자가 가장 일반적으로 많이 쓰는 방법)

>> 각 방법별 세부사항은 이전 블로그 글( "CSS 기초 - 적용 방법 및 선택자, 주요 속성" ) 참조

 

 

1-2) element 위치 조절하는 방법

  1. display: inline-block;
  2. float 속성: left, right
  3. position 속성: relative, absolute, fixed >> top / right / bottom / left / z-index

>> 각 방법별 세부사항은 이전 블로그 글( "CSS 기초(2) - 위치 조절 방법 및 기타 사항" ) 참조

 

 

1-3) 추가 속성 체크

  • margin: 0 auto;  →  해당 태그 영역을 가운데 정렬해 줌.( 해당 코드는 "margin: 0 auto 0 auto;" 와 동일한 의미 )
  • list-style: none;  →  리스트의 동그라미 부분이 사라짐.
  • width: 100%;  →  block 속성처럼 한 줄을 전부 사용하겠다는 의미.
  • text-decoration: none;  →  <a> 태그를 통해 링크를 걸면 밑줄이 발생하는데 이 CSS 속성을 사용해서 밑줄 제거 가능.
  • color: ○○○;  →  폰트 컬러 변경.
  • font-size: ○○px;  →  폰트 크기 변경.
  • font-weight: bold;  →  폰트 굵기 굵어짐.
  • text-align: ○○;  →  글자 정렬.( left, right, center 등 )
  • opacity: ○○;  →  투명도 주기.( 단점 : 글자까지 투명해짐. 글자가 있을 경우, 다른 방법으로 background에만 투명도를 줘야 함. )
  • min-height: ○○○○px;  →  최소 높이를 지정해 주는 것으로 해당 element에 텍스트가 없어도 기본적으로 지정한 height만큼 영역을 자동으로 차지하며, 이와 더불어 만일 텍스트가 지정한 height를 넘어갈 시 가변적으로 해당 element 영역의 크기를 늘려줌.
  • clear: both;  →  이를 사용하면 상위 element의 속성을 전부 무시함.( 일반적으로 footer 영역에서만 사용함 )
  • background: url(~) ○○px ○○px no-repeat;  →  background 속성에 color 대신 url을 써서 해당 이미지를 가져오거나 지정한 크기 순서대로 width, height 조절 가능하며, 남는 공간에 자동으로 채워지는 이미지들을 반복시키지 않기 위해 "no-repeat" 옵션 또한 사용 가능함.
  • border-radius;  →  일반적으로 a 태그의 사각형 혹은 버튼 높이의 반 값(1/2)만 넣어서 둥글게 깎아줌.
  • border( border-top / border-left / border-right / border-bottom ): ○○px solid(dotted 등) ○○○○(color)  →  테두리를 지정한 조건에 맞게 만들어 줌. (border는 전체를 지칭하고 top / left / right / bottom 방향으로 따로 그리고 세트*로 설정 가능하며, "none" 값으로 테두리를 없앨 수도 있음!! )

* 세트는 border-top & border-left, border-right & border-bottom이 한 쌍이다.

 

 

 

 

2) 코드 실습

 

index.html

<!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>경일게임아카데미</title>
    <link rel="stylesheet" type="text/css" href="./public/css/index.css" />
  </head>
  <body>
    <div id="wrap">
      <!-- start header -->
      <div id="header_wrap">
        <div id="header" class="container">
          <h1>
            <a href="#">
              <img
                src="http://www.kiweb.or.kr/images/main_new/logo_new_2018.png"
                alt="logo"
              />
            </a>
          </h1>
          <div id="gnb">
            <ul>
              <li><a href="#">학교소개</a></li>
              <li><a href="#">교육과정</a></li>
              <li><a href="#">취업정보</a></li>
              <li><a href="#">커뮤니티</a></li>
              <li><a href="#">상담신청</a></li>
            </ul>
          </div>
        </div>
      </div>
      <!-- end header -->

      <!-- start visual -->
      <div id="visual_wrap">
        <img
          src="http://www.kiweb.or.kr/nBoard/upload/file/main/1663647850_20800_1.jpg"
          alt="image"
        />
      </div>
      <!-- end visual -->

      <!-- start contents -->
      <div id="contents_wrap">
        <div id="contents" class="container">
          <div id="left">
            <ul id="lecture">
              <li class="con1">
                <h2>
                  <span>Game Architecture</span>
                  게임 기획
                </h2>
                <p>게임 기획자를 위한 정석 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con2">
                <h2>
                  <span>Game Programming</span>
                  게임 프로그래밍
                </h2>
                <p>게임 프로그래밍을 위한 정석 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con3">
                <h2>
                  <span>Game Artworks</span>
                  게임 원화
                </h2>
                <p>게임 원화를 위한 정석 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con4">
                <h2>
                  <span>Programmer Coaching</span>
                  프로게이머 코칭
                </h2>
                <p>프로게이머 데뷔 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con5">
                <h2>
                  <span>AR/VR</span>
                  AR/VR
                </h2>
                <p>증강현실/가상현실 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con6">
                <h2>
                  <span>Block Chain</span>
                  블록체인
                </h2>
                <p>블록체인 Class</p>
                <a href="#">바로가기</a>
              </li>
              <li class="con7">
                <h3>공지사항</h3>
                <ul>
                  <li class="left_nt">
                    <a href="#">- 블록체인 8기 모집 임박!</a>
                  </li>
                  <li class="right_nt">09-15</li>
                  <li class="left_nt">
                    <a href="#">- 게임프로그래밍 37기 모집</a>
                  </li>
                  <li class="right_nt">09-15</li>
                  <li class="left_nt">
                    <a href="#">- 게임프로그래밍 36기 모집</a>
                  </li>
                  <li class="right_nt">08-30</li>
                  <li class="left_nt">
                    <a href="#">- 블록체인 7기 모집 마감</a>
                  </li>
                  <li class="right_nt">08-30</li>
                </ul>
              </li>
              <li class="con8">
                <h3>상담/문의</h3>
                <p>
                  <img
                    src="http://www.kiweb.or.kr/images/main_new/customer_tel.png"
                    alt="customer_tel"
                  />
                </p>
                <p>
                  <img
                    src="http://www.kiweb.or.kr/images/main_new/customer_kakao.png"
                    alt="kakao_talk"
                  />
                </p>
                <button class="btn_kakao">
                  <a href="#">
                    <img
                      src="http://www.kiweb.or.kr/images/main_new/customer_kakao_btn.png"
                      alt="kakao_button"
                    />
                  </a>
                </button>
              </li>
            </ul>
          </div>
          <div id="right"></div>
        </div>
      </div>
      <!-- end contents -->

      <!-- start footer -->
      <div id="footer_wrap">
        <div id="footer" class="container"></div>
      </div>
      <!-- end footer -->
    </div>
  </body>
</html>

 

index.css

* {
  margin: 0;
  padding: 0;
}

ul,
li {
  list-style: none;
}

#wrap {
  width: 100%;
}

#header_wrap {
  width: 100%;
}

#header {
  height: 100px;
  padding: 20px 0 0 0;
  box-sizing: border-box;
}

#header > h1 {
  float: left;
}

#header > #gnb {
  padding: 20px 0 0 0;
  float: right;
  box-sizing: border-box;
}

#gnb > ul > li {
  float: left;
}

#gnb > ul > li > a {
  display: inline-block;
  width: 180px;
  text-align: center;
  color: #004385;
  font-size: 18px;
  text-decoration: none;
  font-weight: bold;
}

#visual_wrap {
  width: 100%;
  height: 500px;
  background: blue;
}

#contents_wrap {
  width: 100%;
  margin: 30px 0 0 0;
}

/* #contents {
  min-height: 1200px; >> 최소 높이를 지정해서 "left" id를 가진 div 태그 내부의 li element를 쌓은 전체 높이에 맞게 "contents" 영역 높이 설정하기 위해 사용
  >> 위의 min-height 코드 대신 footer 영역에 clear: both; 를 해줘도 출력 결과는 동일함!!
} */

#contents > #left {
  float: left;
  width: 600px;
  border-right: 1px solid #ececec;
  border-bottom: 1px solid #ececec;
}

#left > #lecture > li {
  float: left;
  width: 300px;
  height: 230px;
  padding: 20px;
  box-sizing: border-box;
  border-left: 1px solid #ececec;
  border-top: 1px solid #ececec;
}

#contents > #right {
  float: left;
  width: 600px;
  background: blue;
}

#lecture > li > h2 {
  font-size: 23px;
  color: #2d2d2d;
}

#lecture > li > h2 > span {
  display: block;
  font-size: 12px;
  color: #4689e1;
}

#lecture > li > p {
  width: 50%;
  min-height: 30px;
  font-size: 12px;
  margin: 30px 0 0 0;
}

#lecture > li > a {
  display: inline-block;
  margin: 40px 0 0 0;
  padding: 5px 0 0 0;
  width: 100px;
  height: 30px;
  font-size: 14px;
  background: #81b4f2;
  text-decoration: none;
  color: #ffffff;
  border-radius: 15px; /* a 태그의 사각형 높이의 반 값만 넣어서 둥글게 깎아주는 코드 */
  text-align: center;
  box-sizing: border-box;
}

#footer_wrap {
  width: 100%;
}

#footer {
  clear: both; /* 이를 사용하면 상위 element의 속성을 무시함 */
  height: 200px;
  background: silver;
}

/* etc */
.container {
  width: 1200px;
  margin: 0 auto;
}

.con1 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_01.png")
    174px 94px no-repeat;
}

.con2 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_02.png")
    174px 94px no-repeat;
}

.con3 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_04.png")
    174px 94px no-repeat;
}

.con4 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_05.png")
    174px 94px no-repeat;
}

.con5 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_07.jpg")
    174px 94px no-repeat;
}

.con6 {
  background: url("http://www.kiweb.or.kr/images/main_new/main_con_ic_06.jpg")
    174px 94px no-repeat;
}

.con7 > ul {
  margin: 30px 0 0 0;
}

.con7 > ul > li {
  margin: 6px;
}

.con7 > ul > .left_nt {
  width: 180px;
  height: 20px;
  float: left;
}

.con7 > ul > .left_nt > a {
  text-decoration: none;
  color: black;
  font-size: 14px;
}

.con7 > ul > .right_nt {
  width: 50px;
  height: 20px;
  float: right;
  text-align: center;
  font-size: 14px;
}

.con8 > button {
  margin: 0 0 0 65px;
  border: none;
}

 

header & visual 영역 출력 결과

 

contents 영역 출력 결과

 

footer 영역 출력 결과

 

※ 참고로 p 태그는 display 속성이 block 속성이다!!

※ 위의 출력 결과는 네 부분의 영역( header, visual, contents, footer )에 대한 출력 결과를 나타내며, 이 중 마지막 출력 결과 이미지는 회색 부분이 footer 영역이고, 위의 공지사항과 상담/문의 block은 contents 영역에 해당함!!