하위 태스크 1

CSS 선택자 학습

태그, 클래스, ID, 그룹 선택자의 사용법과 차이 이해

  • 태그: 태그는 마크업 안에서 요소의 시작과 끝을 구분짓는 구문이다. 태그 선택자는 문서에서 지정된 태그를 사용한 모든 요소를 선택한다.
  • 클래스: 클래스는 요소의 class 특성에 부여되는 이름이다. 클래스 선택자는 지정된 클래스가 있는 요소를 모두 선택한다.
  • ID: ID는 요소의 id 특성에 부여되는 이름이다. ID 선택자는 동일한 id를 가진 요소를 선택한다.
  • 그룹 선택자: 동일한 스타일을 사용하는 선택자를 한 번에 선택할 수 있다. 쉼표로 구분해 여러 선택자를 열거한다.
/* 태그 선택자 */
p {
	font-size: 14px;
}
 
/* 클래스 선택자 */
.bold-text {
	font-weight: 700;
}
 
/* ID 선택자 */
#title {
	font-size: 20px;
	font-weight: 900;
}
 
/* 그룹 선택자 */
h2, p {
	margin-top: 20px;
}

하위 태스크 2

캐스케이딩 원칙 이해

상속, 우선순위, 명시도의 개념과 적용 방법 학습

  • 상속: 자식 요소에서 스타일을 설정하지 않으면, 부모 요소의 스타일이 상속된다.
  • 우선순위: 부모 요소에서 상속된 스타일과 자식 요소에서 정의된 스타일이 충돌하면 중요도, 명시도, 소스 순서에 따라 우선 순위가 결정된다.
  • 명시도: 선택자의 구체적인 정도를 수치로 나타낸 값이다. 명시도가 높을수록 스타일 적용 우선 순위가 높다.
<!doctype html>
<html>
  <head>
    <style>
      /* 상속 예시: color 속성은 자식에게 상속된다. 따라서 body 요소의 자식인 h1,
      h2, p의 텍스트 색상은 brown으로 렌더링된다.*/
      body {
        color: brown;
      }
 
      /* 명시도 및 우선 순위 예시: p 선택자의 명시도는 (0, 0, 1)로 body 선택자와
      같다. 명시도가 같을 경우 나중에 선언한 스타일의 우선 순위가 높다. 따라서 
      <p> 태그로 감싼 내용의 텍스트 색상은 coral이 된다. */
      p {
        color: coral;
      }
    </style>
  </head>
  <body>
    <h1>하위 태스크 2</h1>
    <h2>상속</h2>
    <p>부모 요소의 일부 스타일 속성은 자식 요소에게 상속됩니다.</p>
    <h3>우선 순위</h3>
    <p>
      요소에 적용되는 스타일은 우선 순위에 의해 결정됩니다. 우선 순위는 중요도,
      명시도, 소스 순서에 영향을 받습니다.
    </p>
    <h2>명시도</h2>
    <p>선택자의 구체적인 정도가 높을수록 명시도가 높습니다.</p>
  </body>
</html>

하위 태스크 3

CSS 적용 방법 비교

인라인, 내부, 외부 스타일시트의 차이와 장단점 이해

인라인 스타일: 스타일을 적용할 요소의 style 특성에 스타일을 정의한다.

<p style="color: red">...</p>

내부 스타일시트: CSS 스타일을 HTML 문서에 정의한다.

<!doctype html>
<html>
	<head>
		<style>
			body {
				color: blue;
			}
		</style>
	</head>
	<body></body>
</html>

외부 스타일시트: 여러 HTML 문서에서 사용할 스타일을 별도의 파일로 저장한다. 이후 필요할 때마다 파일을 불러와서 사용한다.

/* style.css */
 
body {
	background-color: yellow;
}
<!-- index.html -->
 
<!doctype html>
<html>
	<head>
		<link rel="stylesheet" href="style.css" />
	</head>
	<body></body>
</html>

하위 태스크 4 ~ 5

글꼴 속성 적용

font-family , font-size , font-weight 등 글꼴 속성 사용

웹 폰트 적용

Google Fonts 등 웹 폰트 서비스를 활용한 폰트 적용

<!doctype html>
<html>
    <head>
        <style>
            @import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap");
            p {
                font-family: Jost;
                font-size: 3rem;
                font-style: italic;
                font-weight: 700;
            }
        </style>
    </head>
    <body>
        <p>Jost is awesome font.</p>
    </body>
</html>

하위 태스크 6

텍스트 스타일 적용

text-align , text-decoration , line-height 등 텍스트 스타일 사용

<!doctype html>
<html>
    <head>
        <style>
            .loose-lh {
                line-height: 0.6;
            }
 
            .dense-lh {
                line-height: 2;
            }
 
            .right-ta {
                text-align: right;
            }
 
            .left-ta {
                text-align: left;
            }
 
            .center-ta {
                text-align: center;
            }
 
            .underline-td {
                text-decoration: underline;
            }
        </style>
    </head>
    <body>
        <p>
            유구한 역사와 전통에 빛나는 우리 대한국민은 3ㆍ1운동으로 건립된
            대한민국임시정부의 법통과 불의에 항거한 4ㆍ19민주이념을 계승하고,
        </p>
        <p class="right-ta">
            조국의 민주개혁과 평화적 통일의 사명에 입각하여 정의ㆍ인도와
            동포애로써 민족의 단결을 공고히 하고,
        </p>
        <p class="center-ta">모든 사회적 폐습과 불의를 타파하며,</p>
        <p class="left-ta">
            자율과 조화를 바탕으로 자유민주적 기본질서를 더욱 확고히 하여
            정치ㆍ경제ㆍ사회ㆍ문화의 모든 영역에 있어서 각인의 기회를 균등히
            하고, 능력을 최고도로 발휘하게 하며,
        </p>
        <p class="underline-td">
            자유와 권리에 따르는 책임과 의무를 완수하게 하여,
        </p>
        <p class="loose-lh">
            안으로는 국민생활의 균등한 향상을 기하고 밖으로는 항구적인
            세계평화와 인류공영에 이바지함으로써 우리들과 우리들의 자손의 안전과
            자유와 행복을 영원히 확보할 것을 다짐하면서
        </p>
        <p class="dense-lh">
            1948년 7월 12일에 제정되고 8차에 걸쳐 개정된 헌법을 이제 국회의
            의결을 거쳐 국민투표에 의하여 개정한다.
        </p>
    </body>
</html>
 

하위 태스크 7

색상 표현 방법 학습

키워드, HEX, RGB, RGBA 등 색상 표현 방법 이해

  • 키워드: 웹 안전 색상의 이름으로 색상을 지정한다. 웹 안전 색상은 기본 색상 16가지를 포함해 모두 216가지가 있다.
  • HEX: # 기호와 함께 6자리의 16진수로 색상을 지정한다.
  • RGB: rgb(152, 94, 2)와 같이 적색, 녹색, 청색의 수치로 색상을 지정한다.
  • RGBA: RGB 표기법에 투명도를 조절하는 알파 값을 추가하여 색상을 지정한다. rgba(152, 94, 2, 0.4)와 같다.
<!doctype html>
<html>
  <head>
    <style>
      .color-name-notation {
        color: blueviolet;
      }
      .hex-notation {
        color: #d67272;
      }
      .rgb-notation {
        color: rgb(0, 255, 0);
      }
      .rgba-notation {
        color: rgba(201, 237, 4, 0.6);
      }
    </style>
  </head>
  <body>
    <p class="color-name-notation">색상 이름 표기법</p>
    <p class="hex-notation">16진수 표기법</p>
    <p class="rgb-notation">RGB 표기법</p>
    <p class="rgba-notation">RGBA 표기법</p>
  </body>
</html>

하위 태스크 8

배경 속성 적용

background-color , background-image , background-position 등 배경 속성 사용

<!doctype html>
<html>
  <head>
    <style>
      .wallpapaer {
        background-image: url("./images/bottom-bg.jpg");
        background-repeat: no-repeat;
        background-position: left -110px;
      }
      .p1 {
        background-color: antiquewhite;
      }
      .p2 {
        background-color: aqua;
      }
      .p3 {
        background-color: blueviolet;
      }
    </style>
  </head>
  <body>
    <main class="wallpapaer">
      <p class="p1">antiquewhite</p>
      <p class="p2">aqua</p>
      <p class="p3">blueviolet</p>
    </main>
  </body>
</html>

하위 태스크 9

그라디언트 적용

linear-gradient , radial-gradient 를 사용한 배경 효과 구현

<!doctype html>
<html>
  <head>
    <style>
      p {
        height: 200px;
      }
      .gradient-1 {
        background: linear-gradient(0deg, #cfffcd, #ffffff);
      }
      .gradient-2 {
        background: radial-gradient(#e2ff93, #cfffcd, #ffffff);
      }
    </style>
  </head>
  <body>
    <main class="wallpapaer">
      <p class="gradient-1">선형 그라디언트</p>
      <p class="gradient-2">방사형 그라디언트</p>
    </main>
  </body>
</html>

하위 태스크 10

박스 모델 이해

콘텐츠, 패딩, 테두리, 여백의 구조와 역할 이해

  • 콘텐츠: 콘텐츠가 표시되는 영역으로 widthheight 속성으로 크기를 변경할 수 있다.
  • 패딩: 콘텐츠 주변을 둘러싼 공백이다. padding과 관련된 속성으로 크기를 변경할 수 있다.
  • 테두리: 콘텐츠와 패딩을 포함한 영역을 둘러싸는 테두리 선이다. 테두리 선은 border와 관련된 속성으로 제어할 수 있다.
  • 여백: 콘텐츠, 패딩, 테두리를 포함한 영역을 둘러싼 공백이다. margin과 관련된 속성으로 크기를 변경할 수 있다.

하위 태스크 11

패딩과 마진 적용

padding , margin 속성을 사용하여 요소 간격 조정

<!doctype html>
<html>
  <head>
    <style>
      p {
        background-color: aquamarine;
        border: 1px solid blue;
      }
      .large-padding {
        padding: 100px;
      }
      .small-padding {
        padding: 10px;
      }
      .large-margin {
        margin: 100px;
      }
      .small-margin {
        margin: 20px;
      }
    </style>
  </head>
  <body>
    <p class="large-padding">패딩 박스가 100px입니다.</p>
    <p class="small-padding">패딩 박스가 10px입니다.</p>
    <p class="large-margin">마진 박스가 100px입니다.</p>
    <p class="small-margin">마진 박스가 20px입니다.</p>
  </body>
</html>

하위 태스크 12

테두리 스타일 적용

border 속성을 사용하여 테두리 스타일 지정

<!doctype html>
<html>
  <head>
    <style>
      .awesome-border {
        border-style: groove;
        border-width: 10px;
        border-color: darkcyan;
        border-radius: 4px;
      }
    </style>
  </head>
  <body>
    <p class="awesome-border">아주 멋진 테두리입니다!</p>
  </body>
</html>