오늘은 CSS 기초에 대해서 배웠습니다. 혼자 인강 보면서 하긴 했지만 CSS는 파고 들수록 그 끝이 없는 거 같습니다. 운도님도 말씀하셨지만 CSS 실력을 올리기 위해서는 개인적으로 웹 사이트를 만들어보면서 학습하는 수 밖에 없다고 생각합니다.
그리고 오늘 코드스테이츠에서 제공해준 셀렉터 게임 했는데... 웰케 복잡한 게 많은지 ㅎㅎ 그래도 이런 기초를 잘 다지는 것이 나중에 라이브러리 이용할 때 좋고 또 새로운 라이브러리가 나왔을 때 그것을 익히기 쉽다고 하셨습니다. 셀렉터도 다시 한번 보고 영화 소개하는 사이트 등 개인적인 사이트도 한번 만들어야겠습니닷
비가 오늘도 계속 와서 러닝을 못했지만 내일은 안 오기를 기대하면서^^ 내일도 화이팅~! (정처기 하러 가야지...😇)
text-align: center;
를 이용해 가운데 정렬을 할 수 있다.color: red;
를 이용해 폰트 색을 지정할 수 있다.background-color
는 배경 색만 지정할 수 있지만 background
는 옵션들을 지정해 사용할 수 있다./* 백그라운드의 경우 다양한 백그라운드 옵션을 띄어쓰기로 구분해서 한번에 줄 수 있다. */
background: #color url("image url") no-repeat;
/* background-color은 단순히 배경색 옵션만 부여할 수 있다. */
background-color: #color;
---
background-color
background-image
background-repeat -> background
background-attachment (shorthand property)
background-position
em
단위는 상위 요소 크기의 몇 배인지로 크기를 정한다.rem
단위는 문서의 최상위 요소, 즉 html 요소의 크기의 몇 배인지로 크기를 정한다.<link rel="stylesheet" href="index.css" />
<link>
요소는 HTML 파일과 다른 파일을 연결하는 목적으로 사용한다.<link>
요소의 rel
은 연결하고자 하는 파일의 역할이나 특징을 나타낸다.h4 {
color: red;
}
id로 이름 붙여서 스타일링 적용하기
#
을 사용한다.<h4 id="navigation-title">This is the navigation section.</h4>
#navigation-title {
color: red;
}
class로 스타일을 분류하여 적용하기
#
이 아닌 .
을 이용한다.<!-- 바른 예제 -->
<ul>
<li class="menu-item">Home</li>
<li class="menu-item">Mac</li>
<li class="menu-item">iPhone</li>
<li class="menu-item">iPad</li>
</ul>
.menu-item {
text-decoration: underline;
}
여러 개의 class를 하나의 엘리먼트에 적용하기
<li class="menu-item selected">Home</li>
.selected {
font-weight: bold;
color: #009999;
}
id | class |
---|---|
👉🏻 # 👈🏻으로 선택 | 👉🏻 . 👈🏻으로 선택 |
한 문서에 단 하나의 요소에만 적용 | 동일한 값을 갖는 요소 많음 |
특정 요소에 이름을 붙이는 데 사용 | 스타일의 분류(classification)에 사용 |
color
속성을 사용하며 속성값은 HEX 또는 주요 색상의 이름을 사용할 수 있다..red {
color: #ff0000;
}
.box {
color: #155724; /* 글자 색상 */
background-color: #d4edda; /* 배경 색상 */
border-color: #c3e6cb; /* 테두리 색상 */
}
font-family
이다..emphasize {
font-family: "SF Pro KR", "MalgunGothic", "Verdana";
}
font-size
속성을 사용한다..title {
font-size: 24px;
}
font-weight
text-decoration
letter-spacing
line-height
text-align
을 사용한다. 유효한 값으로 left
, right
, center
, justify
(양쪽 정렬)가 있다.vertical-align
<center>
<font>
는 HTML에서 사용하지 않는다.px
, pt
등%
,em
,rem
,ch
,vw
,vh
등기기나 브라우저 사이즈 등의 환경에 영향을 받지 않는 절대적인 크기로 정하는 경우
px
을 사용한다. 그러나 픽셀은 크기가 고정된 절대 단위이기에 사용자 접근성이 불리하다.일반적인 경우
rem
을 추천한다. 사용자가 설정한 기본 글꼴 크기를 따르므로, 접근성에 유리하다. 반응형 웹(responsive web)에서 기준점을 만들 때
px
로 정한다.화면 너비나 높이에 따른 상대적인 크기가 중요한 경우
vw
, vh
를 사용한다.<body>
태그에서의 %
는 스크롤 했을 때 보이는 영역까지 포함했을 때 비율이다.<div>
, <p>
<span>
block | inline-block | inline | |
---|---|---|---|
줄바꿈 여부 | 줄바꿈이 일어남 | 줄바꿈이 일어나지 않음 | 줄바꿈이 일어나지 않음 |
기본적으로 갖는 너비(width) | 100% | 글자가 차지하는 만큼 | 글자가 차지하는 만큼 |
width, height 사용 가능 여부 | 가능 | 가능 | 불가능 |
p {
border: 1px solid red;
}
p {
margin: 10px 20px 30px 40px;
}
p {
margin: 10px 20px;
}
p {
margin: 10px;
}
p {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
}
p {
margin-top: -2rem;
}
p {
padding: 10px 20px 30px 40px;
}
p {
padding: 10px 20px 30px 40px;
border: 1px solid red;
background-color: lightyellow;
}
overflow
속성을 이용한다. 이때 overflow: auto;
값은 스크롤을 자동 생성overflow: hidden;
값은 넘치는 콘텐츠를 감춘다.overflow-x
, overflow-y
속성은 auto
, hidden
, scroll
값을 이용해 가로 방향이나 세로 방향으로 스크롤을 지정할 수 있다.p {
height: 40px;
overflow: auto;
}
content-box
는 박스의 크기를 측정하는 기본값이다. 그러나 대부분의 레이아웃 디자인에서 여백과 테두리를 포함하는 박스 크기 계산법인 border-box
를 권장한다.*
에 box-sizing
속성을 추가하고, border-box
라는 값을 추가하면 디자인이 훨씬 더 쉽다.* {
box-sizing: border-box;
}
* { }
h1 { }
div { }
section, h1 { }
#id
로 입력하여 선택한다.#only { }
.class
로 입력하여 선택한다. .widget { }
.center { }
a[href] { }
p[id="only"] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { }
<p>
태그라도 <span>
요소의 자식인 <p>
요소는 선택되지 않는다.header > p { }
<header>
<p> <!-- 선택 -->
<span>
<p></p>
</span>
</p>
<p> <!-- 선택 -->
<span>
<p></p>
</span>
</p>
</header>
<header>
요소의 자식의 자식인 <p>
요소까지 모두 선택된다.header p {}
<header>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
</header>
<section>
요소 뒤에 있는 세 개의 <p>
요소를 모두 선택한다.section ~ p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
</header>
section + p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p>
<p></p>
</header>
a:link { } /*사용자가 방문하지 않은 <a>요소를 선택합니다.*/
a:visited { } /*사용자가 방문한 <a>요소를 선택합니다. */
a:hover { } /* 마우스를 요소 위에 올렸을 때 선택합니다. */
a:active { } /* 활성화 된(클릭된) 상태일 때 선택합니다. */
a:focus { } /* 포커스가 들어와 있을 때 선택합니다. */
input:checked + span { } /*체크 상태일 때 선택합니다. */
input:enabled + span { } /*사용 가능한 상태일 때 선택합니다. */
input:disabled + span { } /*사용 불가능한 상태일 때 선택합니다. */
구조 가상 클래스 셀렉터
p:first-child { }
ul > li:last-child { }
ul > li:nth-child(2n) { }
section > p:nth-child(2n+1) { }
ul > li:first-child { }
li:last-child { }
div > div:nth-child(4) { }
div:nth-last-child(2) { }
section > p:nth-last-child(2n + 1) { }
p:first-of-type { }
div:last-of-type { }
ul:nth-of-type(2) { }
p:nth-last-of-type(1) { }
input:not([type="password"]) { }
div:not(:nth-of-type(2)) { }
input[type="text"]:valid { }
input[type="text"]:invalid { }