Cascading Style Sheets
-모듈별로 각자의 버전잉을 하고있다.
Cascading : 위에서 아래로 흐르듯 스타일링을 만든다는 의미
-CSS는 룰 기반(Rule-based)의 언어이다.(여러개의 규칙이 나열된 것)
-CSS를 통해 요소, 혹은 특정 요소들의 집합의 스타일 규칙을 정의할 수 있다
h1 -> selector (선택자) :어떤 요소를 선택할지 명시, 태그일 수도있고 여러가지 요소들을 선택할 수 있다
{} -> 선언부(선언블럭) : 중괄호 여러개의 선언이 들어갈 수 있다 (속성 : 값) ;
주석 :
헤드 내에 작성하는 스타일
딱 하나의 스타일을 적용하고 싶을 때
될수있으면 사용하지 않는게 좋다
해당 파일 내에 css 코드를 작성하면된다
🚨 MDN을 활용하는 법 🚨
MDN + 명칭
일괄적으로 선택 및 보통 얘네끼리 상단에 모아둠
h2{color : purple ;}
#welcome-title { color: red;}
.blue { color: blue;}
<a href="http://example/org" target="_blink"> Example Link(org/http) </a> <a href="http://examplse.com"> Example Link(org/http) </a>
1) 단순히 해당 속성만 적용할 때
a[target]{ color : pink;}
2) a[attr = value]
: 주로 input 에서 type 으로 거르는 경우가 많다
a[href="https://example.org"]
{
color: green;
}
3) a[href^="http://"]
: value 가 http:// 로 시작하는 애들 골라준다
a[href^="http://"]
{
font-style: italic;
}
4) a[attr$=value]
:value 로 값이 끝나는 애들 골라줌
a[href$=".com"] {
color: silver;
}
5) a[href*="example"]
:적어도 value 가 어디든 포함되어있다면 출력
a[href*="example"] {
color: sienna;
}
가상 클래스 선택자는 어떤 상태를 지정하는데 id,class 처럼 html문서 상에 있는 것이 아니기 때문에 가상 선택자라고 불린다
1) :first - child
형제들 중에서 첫 번째 태그 요소 선택
2) :last-child
형제들 중에서 마지막 태그 요소 선택
3) :nth - child(n)
n 번째 태그 요소 선택
4) :nth -last -child(n)
끝에서 부터 n번째 태그 요소 선택
5) :first-of-type
적용한 타입 중에 첫번 째 요소 선택
6) :last-of-type
적용한 타입 중에 마지막 요소 선택
7) :nth-of-type(n)
적용한 타입 중의 n 번째 요소 선택
8) :not()
:공통적으로 스타일을 적용하고 싶지 않을 때 사용하는 선택자
<form>
<input type = "text" placeholder="name">
<input type = "email" placeholder="email">
<input type = "password" type ="password" placeholder="password">
<input type = "submit">
</form>
<--! input 들을 고르는데 type 이 password 이 애만 제외 -->
input:not([type="password"]) {
background-color: indianred;
}
9) link , visited 하이퍼 링크데 적용할수있는 것
링크를 user가 한번도 방문한 적 x -> 파란색
방문을 했다가 다시 돌아가면 보라색
앵클 태그는 하나지만 두가지의 형태가 적용되어있다 (기본적으로 브라우저에 )
기본적으로 a 태그 걸었을 시 -> 방문한적 없을 때 적용
a:link {
color: tomato;
}
방문한 적있다면 적용
a:visited {
color: yellow;
}
10) hover , active, focus
사용자가 마우스를 올릴 수 있을거 같을 때 적용해주는 요소
(공통 적용됐을 때 순서 link ->visied ->hover ->active)
hover
마우스를 올렸을 때
input [type="button"] :hover {
background-color: teal;
color: white;
}
active
마우스 눌렀다가 땠을 때는 시점이 활성화
input[type="button"]:active {
background-color: red;
}
focus
어떤 특정 요소에 포커싱이 되었을 때
(tab 키를 사용해서 요소 선택하는거라고 보면된다)
input[type="button"]:focus {
background-color: royalblue;
}
11.enabled , disabled , checked
enabled
활성화되어있는 요소에만 적용하고 싶을 때
input[type="button"]:enabled {
background-color: royalblue;
}
disabled
input[type="button"]:disabled {
background-color: silver;
}
checked
요소를 클릭하는 순간에는 checked 상태가 되는것이다
input[type=radio]{
outline: 3px solid red;
}
->Selector :: _ 붙여서 사용한다 콜론을 하나만 붙여도 동작을 하긴한다
하지만 CSS3 명세에 맞춰서 같이 하는게 좋다
가상 클래스 선택자는 상태에 따라서 실제로 존재하지 않은 상태에 이름을 붙여준거지만 가상 요소 선택자는 실제로 존재하지 않는 요소를 만들거나 범위를 만들어서 적용하는 것이다
1) before, after
가상 요소 부분을 드래그 되지 않는다 실제 텍스트 컨텐츠가 아니라 스타일적인 요소취급을 한다
뱃지나, 구분선, 구분자로 많이 쓰인다
.movie :: before{
content : 'MOVIE'; -> CSS로 만들어낸 가상의요소
color : red;
}
/*after 도 마찬가지로 쓰인다 */
2) first - letter ,first-line , selection
first - letter
첫번째 글자에만 적용되는 스타일링
lorem::first-letter{
color:red;
}
first-line
첫번째 줄에 대한 스타일링
lorem::first-line{
color:red;
}
selection
선택 영역에 대한 스타일링
lorem::selection{
background - color:blue;
color:white;
}
하위 선택자
스페이싱을 사용해서 구분하면
스페이싱 앞쪽의 요소들로 범위가 좁혀진다 !
ul li: last-of-type{
color:red;
}
자식 선택자
'>' 를 사용해서 작성하면
앞쪽에 있는 선택자의 바로 하위에서 선택한다
list > li: last-of-type{
color:red;
}
일반 형제 선택자 결합(~)
같은 라인이면서 형제일 때
code ~ selector {
color : read;
}
🚨selector 뒤에는 code 태그 아래 있는 애들만 결합 될수 있다 (선행 관계과 확실히 되어야함)
인접 형제 선택자 결합 (+)
말 그대로 인접한 애들만 선택할 수 있다
두가지가 바로 마주하고 있어야한다 앞 뒤 순서가 중요하다
code + p {
color : blue;
}
그룹화
여러개를 한꺼번에 적용하고 싶을 떄 ,을 사용해서 작성하면된다
p , span{
color : purple;
}(8) 범용선택자(Universal Selector)
전체 선택자는 주의해서 사용하고 맨 최상단에 작성하는게 좋다
- {
color : red;
}
전체 선택자 중에 *.red 인애 이런식으로 class 를 지정할수도 있다
인접 형제와 결합해서 쓸수도 있음
p + * {
color: red;
}
이렇게되면 p뒤에있는 전체를 다 적용해 주는 것이다
initial
상속을 받지 않겠다는 의미
이렇게 적용해주면 상속된 color 적용이 제외된다
.child2{
color :initial ;
}
적용했던 모든 CSS 적인 부분을 무시하고 기본값으로 출력할 수 있다
.child2 {
all: initial ;
}
inherit
initial과 완전 반대로 동작
무조건 상속을 받아라 할 때 적용할 수 있음
무조건 부모의 값을 따라간다
.parent2 {
all: inherit ;
}
unset*
1.부모로부터 상속받을 값이 있을 때 :inherit
2.부모로부터 상속받을 값이 없을 때 :initial
1) 스타일의 우선순위
![](https://velog.velcdn.com/images%2Fakk0504%2Fpost%2Fad6eb073-f216-4289-ab40-b1f8060135ac%2Fimage.png)
적용되는 우선순위
!important (CSS에서 가장 강력한 애 얘 넣으면 뭐든 다 무시당함)
inline style >
id > class /arttribute /pseudo class
Type(tag) >
inherited (상속)
!important 사용하는 방법
div{
color : purple !importent
}
🚨하지만 얘는 불가피한 상황이 아니라면 쓰지말자