오봉이와 함께하는 개발 블로그
CSS 속성 본문
728x90
FrontEnd_day2 정리 (2021.12.03 금요일)
CSS속성
- 텍스트속성
- 배경 색상 / 이미지 관련 속성
- 테두리 속성
- 여백 속성
- display 속성 : inline / block / inline-block
- float 속성
- 목록 관련 속성
- 위치 관련 속성
- 겹침 (레이어)
- overflow
- visibility / opacity
- 그림자
텍스트 속성
- font-family : "굴림", "맑은 고딕"; /* 1순위 2순위, ... */
- font-size : 40px;
- color : blue; /* 글자색 */
- font-style : italic;
- font-weight : bold; /* 굵게 */
- text-decoration : underline;
- letter-spacing : 3px; /* 글자 사이 간격 */
- word-spacing : 5px; /” 단어 사이 간격 */
- line-height:10px; /* 줄 간격 */
- text-align : center;
- text-shadow : 2px 2px 2px black; /*(가로 세로 크기 색상) */
배경 색
- background-color : #00ff00;
- background-color : #333;
- background-color : rgb(0,255,0);
- background-color : green;
배경 이미지 / 반복
- background-image : url(back.png);
- background-repeat : repeat;
- background-repeat : no-repeat;
- background-repeat : repeat-x;
- background-repeat : repeat-y;
테두리 속성
- border:solid 1px red;
- border-style : solid;
- border-width : 3px; /* thin medium thick */
- border-left : dotted;
- border-right : double;
- border-bottom : dashed;
- border-top : solid;
- border-color : red:;
- border-radius : 10px; /* 모서리 둥글게 */
- border-bottom-right-radius : 50px;
여백 속성
display 속성
- display 속성이 없으면 block이 기본 값이 된다.
- block
- 행으로 배치
- 옆으로 나란히 배치 안 됨
- 여백 있음
- inline
- 옆으로 나란히 배치
- 여백 없이 내용물 만큼만 공간 차지
- 옆으로 나란히 배치
- inline-block
- 인라인, 블록의 성격 모두 포함
- 옆으로 나란히 배치되면서 여백도 있음
<!DOCTYPE html>
<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>
<style>
.greenbox {
/* display속성이 없으면 block이 디폴트(행으로 배치, 여백 있음) */
/* display: block; 디폴트 */
/* display: inline; 옆으로 배치, 내용만큼만 공간 차지 */
display: inline-block; /* 옆으로 배치, 여백 있음 */
width: 150px;
height: 75px;
margin: 10px;
border: solid 3px #73AD21;
}
</style>
</head>
<body>
<h2>dispaly 속성 (block/inline/inline-block)</h2>
<div class="greenbox">박스 1</div>
<div class="greenbox">박스 2</div>
<div class="greenbox">박스 3</div>
<div class="greenbox">박스 4</div>
</body>
</html>
float 속성
- 해당 요소를 떠 있게 만든 속성
- 기본 레이아웃 흐름에서 벗어나 왼쪽이나, 오른쪽으로 이동하는 것을 의미
- left : 왼쪽에 배치
- right : 오른쪽에 배치
<style>
.greenbox {
/* display속성이 없으면 block이 디폴트(행으로 배치, 여백 있음) */
/* display: block; 디폴트 */
/* display: inline; 옆으로 배치, 내용만큼만 공간 차지 */
/* display: inline-block; 옆으로 배치, 여백 있음 */
float: right;
width: 150px;
height: 75px;
margin: 10px;
border: solid 3px #73AD21;
}
</style>
목록 관련 속성
/*
...
*/
<style type="text/css">
/* ul{list-style-type: none;} */
ul li {display: inline;}
</style>
</head>
<body>
<ul>
<li>봄</li>
<li>여름</li>
<li>가을</li>
<li>겨울</li>
</ul>
</body>
</html>
위치 관련 속성
position 속성
static
- 디폴트
- 다른 요소와 겹치지 않게 배치
- 위치를 지정하지 않으면 static 적용
relative
- static의 원래 위치를 기준으로 위치 계산
absolute
- 가장 가까운 상위 요소(부모)를 기준으로 배치
- 상위 요소가 static인 경우에는 브라우저 화면 기준
- 상위 요소가 static이 아닌 경우 부모를 기준으로
- 정리
- div를 parent내에 위치시키기 위해서는 parent의 position을 설정(absolute or relative 상관 없음)
- absolute과 relative의 차이는 약간의 여백
- 문서 전체에서 margin을 0px로 설정하면 여백이 사라짐.
- body{margin:0;} 또는 {margin:0;}
- 문서 전체에서 margin을 0px로 설정하면 여백이 사라짐.
<!DOCTYPE html>
<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>
<style type="text/css">
#parent {
/* 위치 지정하지 않음 */
position: absolute;
top: 0px;
left: 0px;
width: 200px;
height: 300px;
border: solid 5px #000000;
}
#boxA, #boxB, #boxC {
width: 80px;
height: 80px;
}
#boxA {background-color: #ff0000;}
#boxB {background-color: #00ff00;}
#boxC {background-color: #fff000;}
#boxB {
/* relative : static에 해당되는 원래 위치를 기준으로
20, 30 만큼 이동 */
/* position: relative; */
/* absolute : 상위 요소 위치 지정 안했기 때문에 브라우저 기준으로 20, 30만큼 이동 */
position: absolute;
top: 20px;
left:30px;
}
</style>
</head>
<body>
<div id="parent">
<div id="boxA">A</div>
<div id="boxB">B</div>
<div id="boxC">C</div>
</div>
</body>
</html>
- fixed
- 브라우저 화면을 기준으로 고정 위치에 배치
- 스크롤 시에도 고정되어 있음.
<!DOCTYPE html>
<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>
<style type="text/css">
#fixedBox {
position: fixed;
width: 50px;
height: 50px;
background-color: blue;
top: 50px;
left: 50px;
}
</style>
</head>
<body>
<div id="fixedBox"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
문서 끝
</body>
</html>
겹침(레이어) 표현 속성
- z-index 속성
- 요소들이 겹칠 때 순서 지정
- 나중에 배치하는 것이 위에 놓임
- z-index 값이 클수록 위에 놓임
<!DOCTYPE html>
<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>
<style type="text/css">
#outBox {
margin: 0 auto; /* 브라우저 화면의 가운데 정렬 */
width: 1020px;
position: relative;/* absolute인 경우 가운데 정렬 안 됨 */
}
#box1{
position: absolute; /* 부모 박스 기준으로 배치 */
left: 25px;
top: 181px;
z-index: 1;
}
#box2{
position: absolute; /* 부모 박스 기준으로 배치 */
left: 187px;
top: 155px;
z-index: 2;
}
#box3{
position: absolute; /* 부모 박스 기준으로 배치 */
left: 369px;
top: 129px;
z-index: 3;
}
#box4{
position: absolute; /* 부모 박스 기준으로 배치 */
left: 603px;
top: 155px;
z-index: 4;
}
#box5{
position: absolute; /* 부모 박스 기준으로 배치 */
left: 795px;
top: 181px;
z-index: 5;
}
</style>
</head>
<body>
<div id="outBox">
<div id="box1"><img src="image/img1.png"></div>
<div id="box2"><img src="image/img2.png"></div>
<div id="box3"><img src="image/img3.png"></div>
<div id="box4"><img src="image/img4.png"></div>
<div id="box5"><img src="image/img5.png"></div>
</div>
</body>
</html>
Overflow
- 자식 요소가 부모 요소의 범위를 벗어났을 때
- 어떻게 처리할 것인지 지정
- hidden : 부모 영역을 벗어나는 부분은 보이지 않게 처리
- scroll : 스크롤바 표시 (가로 / 세로)
- auto : 자동으로 필요한 부분에만 스크롤바 표시
<!DOCTYPE html>
<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>
<style type="text/css">
div {
width: 200px;
height: 175px;
border: 1px black;
/* overflow: hidden;
overflow: scroll;
overflow: auto; */
}
</style>
</head>
<body>
<div>
<img src="image/fashion1.png">
<img src="image/fashion2.png">
<img src="image/fashion3.png">
</div>
</body>
</html>
투명도 / 가시성
- 투명도
- opacity
- 0 ~ 1 사이의 값 지정
- 0 = 투명
- 1 = 불투명
- 0.5 = 반투명
- opacity
- 가시성
- visibility
- hidden = 숨김
- visible = 보임
- visibility
<!DOCTYPE html>
<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>
<style>
/* 마우스 올렸을 때 */
#f1:hover {opacity: 0.5;}
/* 마우스 클릭했을 때 */
#f1:active {opacity: 1;}
/* 마우스 클릭했을 때 */
#f2:active {visibility: hidden;}
</style>
</head>
<body>
<img id="f1" src="image/fashion1.png">
<img id="f2" src="image/fashion2.png">
</body>
</html>
그림자 효과
- box-shadow
- none : 그림자 없음
- x-position : 가로 위치에 그림자 표시(양수-오른쪽, 음수-왼쪽)
- y-position : 세로 위치에 그림자 표시(양수-아래쪽, 음수-위쪽)
- blur : 흐릿하게 표시 값이 클수록 더 흐림
- color : 그림자 색상
- inset : 그림자를 요소의 안쪽에 표시
<!DOCTYPE html>
<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>
<style>
div.polaroid {
width: 300px;
height: 300px;
background: white;
box-shadow: 10px 4px 8px 0 rgba(0, 0, 0, 0.3);
margin-bottom: 15px;
}
div.container {
text-align: center;
padding: 5px 5px;
}
img {
width: 100%;
height: 230px;
}
</style>
</head>
<body>
<div class="polaroid">
<img src="image/pic1.jpg">
<div class="container">
<p>카드놀이 하는 사람들</p>
</div>
</div>
<div class="polaroid">
<img src="image/pic2.jpg">
<div class="container">
<p>길가의 집</p>
</div>
</div>
</body>
</html>
728x90
'FE > CSS' 카테고리의 다른 글
CSS - 반응형 웹 (0) | 2021.12.06 |
---|---|
CSS 예제 (0) | 2021.12.06 |
외부 CSS 파일 HTML에 적용 (0) | 2021.12.03 |
CSS 선택자 (0) | 2021.12.03 |
CSS 개요 (0) | 2021.12.03 |
Comments