css
는 Cascading Style Sheets의 약자로 웹페이지의 외관과 레이아웃을 꾸미는 역할을 한다.
각각의 HTML 요소 위한 스타일이다.
스타일을 적용하고 싶은 요소의 태그에 작성한다.
적용하고자 하는 속성이 2개 이상인 경우, 각 선언 끝에 ;
를 적어야 한다.
html 파일의 <head>
태그 안에 <style> … </style>
형식의 스타일 태그를 넣는다.
html 파일 외부의 .css file에 스타일 정의를 작성한다.
이 방법의 경우 스타일을 적용할 html 파일에서 head
안에 <link>
요소를 추가해야 한다.
이 방식은 하나의 외부 css파일을 사용해서 한 사이트의 여러 웹페이지에 같은 스타일을 적용할 수 있다는 장점이 있다. 즉, 각 페이지가 아닌 사이트에 걸쳐서, css파일만 수정하면 연결시킨 모든 html파일에 적용된다.
external, internal, inline 방식으로, 한 element에 각가 다른 스타일을 적용시키면 어떤 스타일이 적용될까?
다음의 룰을 따라, 모든 style sheets가 한 가상의 스타일로 합쳐진다.
1순위. inlien style sheet
2순위. internal style sheet stored in head section
3순위. External style sheet
4순위. web browser default value
공통적으로 적용되는 스타일은 <body>
의 스타일에 정의하는 것이 편리하다.
css 문법은 다음과 같이 세 부분으로 구성된다.
selector(선택자): 스타일을 적용시키고 싶은 html 요소를 나타낸다.
property(특성): css 스타일의 이름
value(값): css 스타일의 값
위와 같은 스타일을 적용시키면, 페이지 안에 있는 모든 <p>
태그에 적용된다.
결론적으로 selector는 css는 html요소를 찾기 위해
사용된다.
html 요소의 태그 이름으로 선택한다.
h1{color: blue;}
<!DOCTYPE html>
<html>
<head>
<link rel stylesheet " href ="mystyle.css>
</head>
<body>
<h1> This is a headline. </h1>
<p> This is fist paragraph. </p>
<p> This is second paragraph. </p>
</body>
</html>
페이지 안에 있는 모든 요소를 선택한다.
*{color: blue;}
한 요소의 특정 부분에만 스타일을 적용시키고 싶을 때 사용한다.
selector::pseudo-element{
property: value;
}
::first-line
-> 텍스트의 첫 줄만 스타일 적용
::first-letter
-> 텍스트의 첫 글자만 스타일 적용
선택자의 특정 state
를 정의한다.
selector:pseudo-class{
property: value;
}
:link
-> 방문되기 전의 링크에 적용한다.
:visited
-> 방문된 후의 링크에 적용한다.
:hover
-> 마우스 포인터가 요소 위에 있는 동안에 적용한다.
:active
-> 왼쪽 마우스 버튼를 누르는 동안에 적용한다.
특정 속성을 가진 요소를 선택한다.
[type]{color: blue:}
[attr = val]
-> 특정 속성과 값을 가진 요소
[attr |= val]
-> 특정 값으로 시작하는 특정 속성을 가진 요소
[attr ~= val]
-> 특정 단어를 포함하는 속성값을 가진 요소
[attr ^= val]
-> 특정값으로 시작하는 속성값을 가진 요소
[attr $= val]
-> 특정값으로 끝나는 속성값을 가진 요소
[attr *= val]
-> 특정값을 포함하는 속성값을 가진 요소
id 속성을 사용해서 특정 html 요소를 선택한다.
#basic{color: blue;}
<!DOCTYPE html>
<html>
<head>
<link rel stylesheet " href ="mystyle.css>
</head>
<body>
<h1 id="basic"> This is a headline. </h1>
<p> This is fist paragraph. </p>
<p> This is second paragraph. </p>
</body>
</html>
class 속성을 사용해서 html 요소를 선택한다.
#basic{color: blue;}
<!DOCTYPE html>
<html>
<head>
<link rel stylesheet " href ="mystyle.css>
</head>
<body>
<h1 class="basic"> This is a headline. </h1>
<p class="basic"> This is fist paragraph. </p>
<p> This is second paragraph. </p>
</body>
</html>
모든 자손 요소에 적용한다.
div p{color: blue;}
<!DOCTYPE html>
<html>
<head>
<link rel stylesheet " href ="mystyle.css>
</head>
<body>
<div> <p> Descendant relationship </p>
<span> <p> Child relationship </p ></span>
</div >
</body>
</html>
div
태그 하위에 있는 모든 p
태그에 적용한다.
직속 자식 요소만 적용한다.
div > p{color: blue;}
<!DOCTYPE html>
<html>
<head>
<link rel stylesheet " href ="mystyle.css>
</head>
<body>
<div> <p> Descendant relationship </p>
<span> <p> Child relationship </p ></span>
</div >
</body>
</html>
인접한 형제 요소만 적용한다.
div + p{color: blue;}
div
태그 바로 다음에 오는 형제 요소 p
태그에 적용한다.
모든 형제 요소를 적용적용한다.
div ~ p{color: blue;}
div
태그 후에 있고, 형제 관계에 있는 모든 p
태그에 적용한다.
여러 선택자를 나타낼 때는 ,
로 구분한다.