[Front] CSS 기초
CSS
css는 html을 디자인하는 속성 혹은 문서를 의미한다.
CSS는 Selector, property, value의 형태를 가지고 있다.
CSS 적용 방법
html코드에 CSS를 적용하는 방법은 3가지가 있다.
1.inline : inline방식은 말 그대로 라인에다가 정의하는 방식으로 원하는 태그 내에 style 속성을 사용하여 CSS를 적용하는 것이다.
- 형식 <태그 style=”속성 값”> *속성값이 여러가지인 경우 큰 따옴표 안에 모두 정의하고 속성 값마다 세미콜론(;)으로 구분해야한다.
- selector =태그,id,class, property , value=속성 값
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
<p style="color:red; font-size:20px;">
이곳은 문단입니다.
색은 빨간색이죠.
</p>
</div>
</body>
</html>
이런 식으로 디자인 할 수 있다.
2. internel : 내부에서 정의 하는 방법으로 해당 html파일의 <head>태그 내에 <style>태그로 정의하면 된다.
- 형식 : <style> 변경하고자 하는 태그 or id or class{ 속성 값 }
- selector = 변경하고자 하는 태그, property, value = 속성 값
<!DOCTYPE html>
<html>
<head>
<style>
div {
color:red;
font-size:20px
}
</style>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
<p>
이곳은 문단입니다.
색은 빨간색이죠.
</p>
</div>
</body>
</html>
역시 똑같이 나오는것을 알 수 있다.
3. externel : 외부에서 정의하는 방법으로 해당 html외에 .css로 확장자가 css인 파일을 만들어 적용하고자 하는 html과 연결하여 사용한다.
- 형식 : 형식은 internal <style>태그 내부에 정의 하는 방식과 같다. 다만 css는 style을 위한 파일이기 때문에 style태그를 정의 할 필요 없다.
- 연결 방법 : <link rel=”stylesheet” href=”css파일의 경로” type=”text/css”>태그를 연결 하고자 하는 html의 <head>태그 내에 선언하면 된다.
/* CSS용 주석*/
div {
color:red;
font-size:20px
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css파일이름.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
<p>
이곳은 문단입니다.
색은 빨간색이죠.
</p>
</div>
</body>
</html>
결과 역시 셋다 같다.
4.혼합 : 가장 많이 쓰는 경우로 기본적으로 externel로 정의하고 특별한 부분만 inline이나 internel방식을 사용한다.
<!DOCTYPE html>
<html>
<head>
<style>
p {
color:red;
}
</style>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
<p style="font-family:굴림; font-size:20px;">
이곳은 문단입니다.<br>
글꼴은 굴림 입니다.<br>
색은 빨간색이죠.
</p>
<p>
이곳은 정상입니다.
</p>
</div>
</body>
</html>
위와 같이 코드를 작성하면 아래와 같은 결과를 얻는데 모두 적용됨을 알 수 있다.
id와 class
선언과 적용 방법 :
이처럼 선언하여 아래처럼 적용하면 된다.
/*클래스*/
.red{
color:red;
}
/*아이디*/
#blue{
color:blue;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
<p class="red">
이곳은 클래스의 영역입니다.
</p>
<p id="blue">
이곳은 아이디의 영역입니다.
</p>
<p class="red">
이곳도 클래스의 영역입니다.
</p>
</div>
</body>
</html>
얼핏 둘 다 같은 기능을 하는것 처럼 보이지만 class는 여러번 사용할 수 있다. 하지만 id는 의미처럼 한번 사용할 수 있다. 이는 나중에 JS에서 getElementById()메서드를 통해 지정된 ID를 가진 요소에 엑세스 할 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<h1 id="myId">이것이</h1>
<button onclick="changeDis()">이걸 누르면</button>
<script>
function changeDis(){
document.getElementById("myId").innerHTML = "이걸로 바뀝니다!"
}
</script>
</body>
</html>
CSS의 적용 우선순위
css는 선언할 수 있는 경우의 수가 많고 겹칠 수 있기 때문에 우선순위를 잘 알고 사용해야한다.
1. inline>internel>externel : 같은 속성의 제어라면 inline의 영향을 받는다.
2. 태그 이름으로 속성을 정했다면 세부설정이 더 깊은 쪽으로 영향을 받는다. 이는 이해하기 어려울 것이므로 예를 통해 알아보자.
div{
font-size:10px;
color:red;
}
/*div영역 내에 p태그를 의미한다.*/
div > p {
font-family:바탕체;
color:blue;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>CSS</title>
</head>
<body>
<div>
이곳은 div영역입니다.
</div>
<div>
<p>
이곳은 div영역이면서 p영역입니다.
</p>
나는 div영역 입니다.
</div>
<p>
나는 그냥 p 영역입니다.
</p>
</body>
</html>
이와 같이 작성하면 div안에 있는 p영역 또한 div의 영역이므로 div의 영향을 받지만 div > p 의 보다 세부적인 selector때문에 같은 속성을 가지는 색에 대해서 blue가 나온것을 알 수 있다.
3. id>class>element : id와 class의 영향을 동시에 받는다면 id를 우선적으로 받는다.
'FRONT > CSS' 카테고리의 다른 글
[Front] CSS Layout (0) | 2020.06.12 |
---|