CSS
Cascading Style Sheet
( 선행 조건 : html에 대한 기본적인 지식 )
목적 : 보기 좋은 webpage 형태를 만들자!
( 방식 1 : HTML )
- <font color=’색상’> ~ </font>
<h1><a href="index.html" WEB </a></h1>
<ol>
<li><a href='1.html'><font color='red'>HTML</font></a></li>
<li><a href='2.html'><font color='red'>CSS</font></a></li>
<li><a href='3.html'><font color='red'>JS</font></a></li>
</ol>
- 1억 개의 <li> 태그에 전부 다 font를 붙여야하나…? NO! use CSS!
( 방식 2 : CSS )
<style> ~ </style> 태그
-
웹브라우저로 하여금 “html 문법”이 아닌
“css 문법”으로 해석하라고 알려주는 내용
-
모든 a 태그에 대해서 빨간색으로 변경해줘!
<style>
a {
color:red;
}
</style>
<h1><a href="index.html" WEB </a></h1>
<ol>
<li><a href='1.html'>HTML</a></li>
<li><a href='2.html'>CSS</a></li>
<li><a href='3.html'>JS</a></li>
</ol>
태그 내에서 css 문법을 사용하고 싶을 경우
<li><a href='2.html' style='color:red'>CSS</a></li>
밑줄을 없애고 싶은 경우
<style>
a {
color:red;
text-decoration : none;
}
</style>
용어 정리
<style>
a {
color:red;
}
</style>
- a : selector
- { ~ } : Declaration
- color : property
- red : value
Heading의 글씨크기/가운데 정렬
<style>
h1 {
font-size:45px;
text-align : center;
}
</style>
Class 사용하기
<style>
a {
color:black;
}
.saw{
color:gray;
}
.active {
color:red;
}
</style>
<h1><a href="index.html" WEB </a></h1>
<ol>
<li><a href='1.html' class='saw'>HTML</a></li>
<li><a href='2.html' class='saw active'>CSS</a></li>
<li><a href='3.html'>JS</a></li>
</ol>
Class & ID 사용하기
-
우선 적용 순위 : #id > .class > tag
( + 가장 마지막에 적용된 선택자가 가장 우선순위 높음 )
<style>
a {
color:black;
}
.saw{
color:gray;
}
#active {
color:red;
}
</style>
<h1><a href="index.html" WEB </a></h1>
<ol>
<li><a href='1.html' class='saw'>HTML</a></li>
<li><a href='2.html' class='saw' id='active'>CSS</a></li>
<li><a href='3.html'>JS</a></li>
</ol>
박스 모델
- h1 태그 : 화면 전체를 박스로 사용 ( = Block level element )
- a 태그 : 자기 자신의 컨텐츠의 크기만큼을 사용 ( = Inline element )
<style>
h1 {
border-width:5px;
border-color:red;
border-style:solid;
}
a {
border-width:5px;
border-color:red;
border-style:solid;
}
</style>
h1태그도 자기 자신의 부피만큼만을 사용하고 싶은 경우 ( inline 으로)
a태그도, 전체만큼을 사용하고 싶은 경우 ( block level 으로 )
h1 {
border-width:5px;
border-color:red;
border-style:solid;
display:inline;
}
a {
border-width:5px;
border-color:red;
border-style:solid;
display:block;
}
(h1 & a의) 중복 제거하기!
h1,a {
border-width:5px;
border-color:red;
border-style:solid;
}
h1내에 있는 중복을 더 제거하려면 ( = “border” 중복 제거 )
( + padding / margin 추가하기 )
h1{
border:5px solid red;
padding:20px;
margin:20px;
display:block;
width:100px;
}
아래쪽에만 테두리를 하고 싶을 경우?
h1{
font-size:45px;
text-align:center;
border-bottom:1px solid gray;
margin=0;
padding:20px
}
세로 줄을 그리고 싶으면?
ol {
border-right:1px solid gray;
width:100px;
margin:0;
}
Grid (격자) 사용하기
-
( just for 디자인 ) 아무 의미 없는 태그 : <div>
- 기본적으로 **block level element**
( just for 디자인 ) 아무 의미 없는 태그 : <span>
- 기본적으로 inline element
- NAVIGATION은 150px만큼 : 150px
- ARTICLE은 나머지 공간 모두 차지 : 1fr
<style>
#grid{
border:5px solid pink;
display:grid;
grid-template-columns:150px 1fr;
}
div{
border:5px solid gray;
}
</style>
<body>
<div id='grid'>
<div>NAVIGATION</div>
<div>ARTICLE</div>
</div>
</body>
미디어 쿼리 :
- for 반응형 (Responsive) 디자인
Q. 화면의 크기에 따라, 특정 html 요소가 보이도록/안보이도록 하기
- 화면의 크기가 800px보다 커지면, 해당 효과 동작하기!
<!DOCTYPE html>
<html>
<head>
<meta charst='utf-8'>
<title></title>
<style>
div{
border:10px solid green;
font-size:60px;
}
@media(min-width:800px){
div{
display:none;
}
}
</style>
</head>
<body>
<div>
Responsive
</div>
</body>
</html>