CSS(Cascading Style Sheets)
- html은 데이터를 구분하기 위해 사용 했다면 css는 html을 꾸며주는 역할.
●Style tag
- style tag는 head tag 안에 넣는다.
- width,height,background-clolor,display,font-size,color
●선택자
선택자.
- 엘리먼트 선택.
#header에서 #뿐만 아니라 #header가 선택자.
Class
- 하나의 클래스로 여러 태그에 적용
- class선택자는 .class로 연결
- .header 모든 엘리먼트 중에 클래스가 header를 선택.
Id
- 클래스와 매우 유사하지만 하나의 태그에만 적용하는 것을 권유
- id선택자는 #id로 연결. .# 등을 선택자라고 한다.
id>class
class와 id는 역할은 없지만 이름을 부여. 어느 엘리먼트에든 들어갈 수 있는 속성이다.
전체선택자
- *{}
- 다른 선택자 스타일보다 우선순위가 낮다
태그 선택자
- 태그이름{}
- 특정 태그가 쓰인 모든 요소에 스타일을 적용한다.
선택자{속성명:속성값;}
●디스플레이속성
wrap은 div엘리먼트, header는 span엘리먼트로 설정한 뒤
#wrap{
width: 400px;
height: 400px;
background: blue;
}
#header{
background:red;
}
- display:inline은 block속성을 inline속성으로 변경
inline으로 바뀌었기 때문에 넓이와 높이는 적용되지 않는다.
#wrap{
width:400px;
height:400px;
display:inline;
background:blue
}
- display:block은 inline속성을 block속성으로 변경
block속성으로 변경되기에 넓이와 높이를 입력해줘야한다.
#header{
width:200px;
height:200px;
background:red
}
- display:inline-block은 block 속성을 inline속성으로 변경이다. inline과 차이점은 inline에서 불가능한 width,height,margin,padding을 줄 수 있다.
#wrap{
widht:400px;
height:400px;
display:inline-block;
background:blue
}
#header{
backgroundL:red
}
- none 불필요한 요소를 감춰서 완전히 사용자에게 보일 필요가 없을 때 사용
- block 한 행에 하나의 요소가 위치하며 기본 속성으로는 가로 영역을 다 차지한다.width, height, padding, margin 속성을 사용해 크기와 여백을 설정할 수 있습니다.
- inline HTML 요소의 순서에 따라 왼쪽에서 오른쪽으로 채워지면서 요소가 배치. 요소 안의 콘텐츠 내용만큼 너비 결정.th, height, padding, margin 속성 값을모두 무시
- inline-block inline 속성과 block 속성을 모두 가집니다.
요소에 width, height, padding, margin 속성을 사용해 크기와 여백을 설정할 수 있지만, inline 속성에 따라 왼쪽에서부터 오른쪽으로 요소들이 채워지면서 배치됩니다. float:left or float:right를 통해 속성을 설정
CSS를 적용하는 3가지 방법
1.head안에 style엘리먼트
<html>
<style>
div{ background-color: blue;}
</style>
</head>
<body>
<div>5</div>
</body>
</html>
2.body에 inlline style을 통해사용.
<html>
<head>
</head>
<body>
<div style="background:blue">1</div>
</body>
</html>
3.외부파일 이용 link엘리먼트 제일 많이 사용
<link href="주소" type"text/css" rel="stylesheet" > type과 rel은 고정
주소에는 .을 사용하여 내 기준부터 작성한다. 상대경로:어떤 파일 기준으로-절대경로:처음부터 끝까지 다 적는.
- -inline 스타일이 제일 먼저 실행된다.
<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>Document</title>
<link rel="stylesheet" href="./public/css/index.css" type="text/css">
</head>
<body>
<div id="header">5</div>
</body>
</html>
stylesheet는 css파일을 가져온다는 내용.
type:tetx/css는 네트워크 내용
- 내부스타일: head 태그 안에 style 태그를 적용하여 사용. 문서에 있는 모든 태그의 스타일을 한 번에 관리.
- 외부스타일:css파일과 html파일을 생성한다. css파일을 따로 관리하여 까끔하게 관리.link사용
- 인라인스타일:body 안 쪽의 태그들 안에 바로 적용. 태그들 각기 스타일을 적용할 때 사용.
●pading-위치를 내부적으로 띄울 때
- border 안쪽에서 떨어진.
- 20px 0 0 0. 12시방향 3시방향 6시방향 9시방향을 기준으로 맞춘다.
- 그대로 늘리면 전체적으로 늘어나기에
140px 0 0 0을 맞춰서 조정하려면 100px 20px 20px 0으로 맞춘다.
이를 보완하기 위해 box-sizing:border-box을 사용한다.
Border
Padding
●margin -위치를 외부적으로 띄울 때
- border 기준으로 꼭지점에서 떨어진.
Margin
margin:20px 0 0 0이면 12시 방향으로 20px 떨어지지만
margin:20px 은 모든 방향으로 20px 떨어진다.
- padding은 큰 틀을 만들 때 사용하고
- margin은 작은 것을 만들 때 사용한다.
- h1에는 기본적으로 margin이 들어가 있다.
- ul,li에는 기본적으로 padding이 들어가 있다.
- img는 닫는 태그가 필요 없다.<img src="" />
- #header>h1은 헤더 엘리먼트 안에 h1 안에서만 변화를 주겠다.
- a,b는 a와b 둘 다 실행
- list-style은 리스트 모양
●속성float(속성값은 left와 right)
1.강제로 이동시킨다.
2.inline-block 속성이 들어간다.
3.하위엘리먼트를 강제로 끌어올린다. 블럭이던지 라인이던지
기본값
#header{
border: 1px solid red;
margin: 0;
}
#swap{
border: 1px solid blue;
margin: 0;
}
#header{
border: 1px solid red;
margin: 0;
float: left;
}
#swap{
border: 1px solid blue;
margin: 0;
}
#header{
border: 1px solid red;
margin: 0;
float: left;
}
#swap{
border: 1px solid blue;
margin: 0;
float: left;
}
이미지 파일에서 float:left 활용
- 블럭속성에서 float:left를 적용했으면 바로 다음에서 float:right를 적용해야한다.
- 가운데 정렬은 넓이가 꼭 지정되있어야한다. margin: 0 auto를 넣으면 가운데 정렬
0은 위 아래는 아무것도 하지 않고 auto는 브라우저 기준으로 양옆 자동정렬
가장 중요한 점.
1)머리 속에 코드 결과를 그려보고 결과물 확인하기.
2)div style = "background:red" 같은 코드를 볼 때 style=""은 div안 속성, div는 html 속성, "background:red"는 css문법
=은 html 구분값, :은 css 구분값 이 처럼 하나 하나 의미를 생각하면서 공부 할 것.
'TIL' 카테고리의 다른 글
Day52(PNG vs SVG,<a>태그 밑줄없애기, 색상 변경하기,CSS Unit,translate3d() 메소드) (0) | 2023.03.28 |
---|---|
Day51(HTML,CSS) (0) | 2023.03.27 |
Day49(HTML) (0) | 2023.03.26 |
Day48(프로젝트 발표) (0) | 2023.03.24 |
Day47(프로젝트 마지막 날) (1) | 2023.03.24 |