CONTENTS
CSS Game&Review
Section2 박스 속성
1.박스모델
2.테두리 속성
3.박스 속성
참고사이트) Box Shadow CSS Generator
-----------------------------------------------------------------------------
CSS Game&Review
문제풀기
CSS Diner
https://flukeout.github.io/
정답 1. plate 2. bento 3. #fancy 4. plate apple 5. #fancy pickle 6. .small or apple.small 7. orange.small 8. bento orange.small 9. plate, bento 10. * 11. plate* 12. plate+apple 13. bento~pickle 인접형제 14. plate>apple 일반형제 *공백:후손 15. orange: +first-child 16. plate: only-child 17. .small: last-child 18. plate: nth-child(3) 19. bento: nth-last-child(3) <-뒤에서부터 20. apple: first-of-type 21. plate: nth-of-type(even) or (2n) 22. plate: nth-of-type(2n+3) 짝 시작점 23. apple: only-of-type 24. .small: last-of-type 25. bento: empty 26. :not(.small, plate) 27. [for] 28. plate[for] 29. [for="Vitaly"] 30. [for^="Sa"] 31. [for$="ato"] 32. [for*="obb"] |
-----------------------------------------------------------------------
Section2 박스속성
1. 박스모델
◎ 박스모델
-웹 문서에 텍스트, 이미지, 테이블 등의 요소를 배치하기 위해 사용
-웹 문서의 전체 레이아웃을 정의
-각종 요소들을 원하는 위치에 배치
◎박스의 속성
-content: 실제 내용이 표현되는 곳
-padding: 콘텐츠와 테두리 사이의 여백(내부)
-border: 박스의 테두리 두께
-margin: 테두리와 박스의 최종 경계 사이의 여백(외부)
박스 모델 이해하기
<head>
<style>
div {
background-color: yellow;
width: 300px;
padding: 25px;
border: 15px solid navy;
margin: 25px;
}
</style>
</head>
<body>
<p>CSS3 박스 모델은 content, padding, border, margin으로 구성되어 있다.</p>
<div>박스 모델의 padidng, border, margin 속성의 기본 값은 0이며, 상하좌우 네 가지 방향을 top, bottom, left, right를 이용하여 지정할 수 있습니다.</div>
</body>
◎Content
-실제 내용이 표현되는 곳
-속성: width(너비 지정), height(높이 지정)
<width과 height에 사용되는 속성값>
속성 |
설명 |
value |
실제로 측정한 데이터 값 |
min, max |
데이터가 인식하는 최솟값과 최댓값, 기본값 0~1 |
low, hight |
허용되는 범위의 최솟값과 최댓값, low~high 값은 항상 min~max 값 범위 내 |
박스의 내용 영역 크기 지정하기
<head>
<style>
p {
background-color: yellow;
color: red;
font-weight: bold;
font-size: 16pt;
}
p.c1 {
width: 700px;
height: 80px;
color: green;
}
p.c2 {
width: 50%;
height: 150%;
color: purple;
}
p.c3 {
width: 10cm;
height: 3cm;
color: blue;
}
</style>
</head>
<body>
<p>박스 모델의 내용 영역 크기 지정</p>
<p class="c1">(1) 박스 모델의 크기를 픽셀(px) 단위로 지정</p>
<p class="c2">(2) 박스 모델의 크기를 퍼센트(%) 단위로 지정</p>
<p class="c3">(3) 박스 모델의 크기를 센티미터(cm) 단위로 지정</p>
</body>
* px: 고정크기
%: 부모 요소에 영향
◎padding, margin
-padding: 박스의 안쪽 여백 설정
-margin: 박스의 바깥쪽 여백 설정
<padding과 margin에 사용되는 속성값>
속성값 |
설명 |
수치 |
여백을 픽셀(px), 포인트(pt), 센티미터(cm) 같은 수치 단위로 지정 |
백분율 |
여백을 부모 요소를 기준으로 하여 백분율(%)로 지정 |
auto |
여백을 웹 브라우저가 자동으로 지정, 기본값 ex) margin: 0 auto; 가운데 정렬 |
박스의 안쪽 여백과 바깥쪽 여백 지정하기
<head>
<style>
/* * {
margin: 0px;
padding: 0px;
} */
p {
background-color: yellow;
color: red;
font-weight: bold;
font-size: 16pt;
}
p.pad {
color: purple;
padding: 20px;
}
p.mar {
color: green;
margin: 30px;
}
p.mp {
color: blue;
padding: 5%;
margin: 5%;
}
</style>
</head>
<body>
<p>박스의 안쪽 여백과 바깥쪽 여백 지정</p>
<p class="pad">(1) 안쪽 여백 지정 - padding 20px</p>
<p class="mar">(2) 바깥쪽 여백 지정 - margin 30px</p>
<p class="mp">(3) 안쪽, 바깥쪽 여백 지정 - padding 5%, margin 5%</p>
</body>
◎네 방향 여백 크기 설정
형식 |
설명 |
padding-top: 속성값; |
위쪽 패딩 |
padding-bottom: 속성값; |
아래쪽 패딩 |
padding-right: 속성값; |
오른쪽 패딩 |
padding-left: 속성값; |
왼쪽 패딩 |
margin-top: 속성값; |
위쪽 마진 |
margin-bottom: 속성값; |
아래쪽 마진 |
margin-right: 속성값; |
오른쪽 마진 |
margin-left: 속성값; |
왼쪽 마진 |
◎속성값의 개수에 따라 적용되는 위치
h1 { margin: 5px 10px 5px 10px; } |
↓ ↓ ↓ ↓
top right bottom left
h1 { margin: 5px 10px 5px; } |
↓ ↓ ↓
top right& left bottom
↓ ↓
top&bottom right&left
↓
top&right&bottom&left
cf)시계방향으로 생각할 것
박스의 여백을 네 방향으로 지정하기
<head>
<style>
/* *{
margin: 0px;
padding: 0px;
} */
body {
font-weight: bold;
font-size: 16pt;
}
.mp1 {
background-color: aqua;
color: red;
margin-bottom: 40px;
padding-left: 50px;
}
.mp2 {
background-color: silver;
color: green;
margin: 20px;
padding: 10px 20px;
}
.mp3 {
background-color: gray;
color: purple;
margin: 50px 15px 20px;
padding: 20px;
}
</style>
</head>
<body style="background-color: lightyellow;">
<p>박스 모델의 네 방향 여백 지정</p>
<p class="mp1">mp1</p>
<p class="mp2">mp2</p>
<p class="mp3">mp3</p>
</body>
2. 테두리 속성
◎border-width
-테두리 두께 설정
-Top, bottom, left, right를 이용하여 네 방향으로 설정 가능
속성값 |
설명 |
수치 |
테두리의 두께를 픽셀(px), 포인트(pt), 센티미터(cm) 같은 단위로 지정 |
thin |
얇은(1px) 두께의 테두리를 지정 |
medium |
중간(3px) 두께의 테두리를 지정, 기본값 |
thick |
굵은(5px) 두께의 테두리를 지정 |
◎border-color
-테두리 색상 지정
-CSS3 기본 색상 표현 방법: 색상 이름, 16진수 값(#000000), 10진수 값(0, 0, 0)(RGB값)
◎border-style
-테두리 스타일 지정
< border-style에 사용되는 속성값>
속성값 |
설명 |
속성값 |
설명 |
none |
테두리가 나타나지 않음, 기본값 |
double |
테두리를 이중선으로 지정 |
hidden |
테두리를 감춤 |
groove |
테두리를 오목한 선으로(홈이 파인 듯 입체적으로) 지정 |
dotted |
테두리를 점선으로 지정 |
ridge |
테두리를 볼록한 선으로(튀어나온 듯 입체적으로) 지정 |
dashed |
테루리를 파선으로 지정 |
inset |
테두리의 안쪽이 오목한 선으로 지정 |
solid |
테두리를 실선으로 지정 |
outset |
테두리의 안쪽이 볼록한 선으로 지정 |
테두리 스타일 지정하기
<head>
<style>
body { font-family: consolas; }
h3.none { border-style: none;}
h3.hidden { border-style: hidden; }
h3.dotted { border-style: dotted; }
h3.dashed { border-style: dashed; }
h3.solid { border-style: solid; }
h3.double {border-style: double; }
h3.groove { border-style: groove; }
h3.ridge { border-style: ridge; }
h3.inset { border-style: inset; }
h3.outset { border-style: outset; }
h3.mix { border-style: dotted dashed solid double; }
</style>
</head>
<body>
<h3 class="none">no border</h3>
<h3 class="hidden">hidden border</h3>
<h3 class="dotted">dotted border</h3>
<h3 class="dashed">dashed border</h3>
<h3 class="solid">solid border</h3>
<h3 class="double">double border</h3>
<h3 class="groove">groove border</h3>
<h3 class="ridge">ridge border</h3>
<h3 class="inset">inset border</h3>
<h3 class="outset">outset border</h3>
<h3 class="mix">mix border</h3>
</body>
테두리의 네 방향에 각각 다른 속성 지정하기
<head>
<style>
body {
font-weight: bold;
font-size: 12pt;
font-family: consolas;
}
.bt1 {
background-color: aqua;
color: red;
margin-bottom: 15px;
padding-left: 50px;
border-style: dotted;
border-width: thick;
border-color: green;
}
.bt2 {
background-color: silver;
color: green;
margin: 20px;
padding: 5px 10px;
border-style: solid;
border-width: 1px 3px 5px 3px;
border-color: navy red fuchsia black;
}
.bt3 {
background-color: gray;
color: purple;
margin: 50px 15px 20px;
padding: 20px;
border-style: dashed double;
border-width: 5px 0px;
border-color: red;
}
.bt4 {
border-top: 5px solid red;
border-bottom: 5px solid red;
}
</style>
</head>
<body>
<p class="bt1">박스 테두리 지정 - 1</p>
<p class="bt2">박스 테두리 지정 - 2</p>
<p class="bt3">박스 테두리 지정 - 3</p>
<p class="bt4">박스의 상하좌우 테두리는 border-top, boder-right, border-bottom, border-left라는 속성을 이용해 지정할 수 있습니다.</p>
</body>
*테두리 순서: 두께->스타일>컬러
3.박스 속성
◎border-radius
-테두리의 모서리를 둥글게 설정
<둥근 모서리 설정>
형식 |
설명 |
border-radius: 속성값; |
네 개의 모서리를 모두 둥글게 함 |
border-top-left-radius: 속성값; |
상단 왼쪽 모서리를 둥글게 함 |
border-top-right-radius: 속성값; |
상단 오른쪽 모서리를 둥글게 함 |
border-bottom-right-radius: 속성값; |
하단 오른쪽 모서리를 둥글게 함 |
border-bottom-left-radius: 속성값; |
하단 왼쪽 모서리를 둥글게 함 |
cf) overflow: hidden; 숨김/ (width, height) 같게 만들면 원
박스에 둥근 모서리 적용하기
<head>
<style>
body {
font-weight: bold;
font-size: 12pt;
}
.br1 {
background-color: lime;
color: red;
border-style: solid;
border-width: thick;
border-color: green;
border-radius: 30%;
}
.br2 {
background-color: maroon;
color: yellow;
border-style: dotted;
border-width: 2px;
border-color: white;
border-radius: 15px 35px;
}
.br3 {
background-color: teal;
color: aqua;
border-style: dashed;
border-width: 5px;
border-color: red;
border-radius: 5px 15px 25px 35px;
}
.br4 {
border: 3px solid red;
border-top-left-radius: 30px;
}
</style>
</head>
<body>
<h1 class="br1">둥근 모서리 스타일링 예제1</h1>
<h1 class="br2">둥근 모서리 스타일링 예제2</h1>
<h1 class="br3">둥근 모서리 스타일링 예제3</h1>
<h1 class="br4">둥근 모서리 스타일링 예제4</h1>
</body>
◎box-shadow
-박스에 그림자 효과 적용
{ box-shadow: 수평 그림자(필수) | 수직 그림자(필수) | 그림자 흐림 | 그림자 번짐 | 그림자 색상 | 삽입 효과; } |
-수평 그림자(h-shadow): 그림자의 수평 거리 지정(x축 위치)
-수직 그림자(v-shadow): 그림자의 수직 거리 지정(y축 위치)
-그림자 흐림(blur): 그림자의 흐림 정도 지정 ex)'0'px 완전 진함
-그림자 번짐(spread): 그림자의 번짐 정도 지정
-그림자 색상(color): 그림자의 색상 지정
-삽입 효과(inset): 박스 외부로 표현되는 그림자를 박스 안쪽으로 표현하는 효과
박스에 그림자 효과 주기
1)
<head>
<style>
body {
font-weight: bold;
font-size: 12pt;
}
.boxshadow1 {
background-color: yellow;
border: 5px solid blue;
box-shadow: 10px 10px 0px teal;
}
.boxshadow2 {
background-color: orange;
border: 5px solid red;
box-shadow: 20px 20px 50px red;
}
.boxshadow3 {
background-color:silver;
border: 5px solid black;
box-shadow: 20px 20px 30px -20px maroon;
}
.boxshadow4 {
background-color:lime;
border: 5px solid olive;
box-shadow: 10px 10px 0px 10px fuchsia inset;
}
</style>
</head>
<body>
<h1 class="boxshadow1">박스 그림자 스타일링 예제 1</h1>
<h1 class="boxshadow2">박스 그림자 스타일링 예제 2</h1>
<h1 class="boxshadow3">박스 그림자 스타일링 예제 3</h1>
<h1 class="boxshadow4">박스 그림자 스타일링 예제 4</h1>
</body>
2)
<head>
<style>
div {
width: 200px;
height: 50px;
padding: 10px;
margin: 30px;
}
#bs1 {
border: 1px solid rgba(102, 186, 255, 0.4);
box-shadow: 0px 0px 20px 10px rgba(102, 186, 255, 0.4);
}
#bs2 {
border: 1px solid black;
box-shadow: 10px 10px #BCE55C, 20px 20px #CEF279, 30px 30px #E4F7BA;
}
</style>
</head>
<body>
<div id="bs1">
<h3>박스 그림자 특수 효과1</h3>
</div>
<div id="bs2">
<h3>박스 그림자 특수 효과2</h3>
</div>
</body>
3)
<head>
<style>
img {
padding: 20px;
margin: 20px;
}
.shadow1 { /* Bottom right coner */
box-shadow: 5px 5px 10px #000;
}
.shadow2 { /* Up tight coner */
box-shadow: 5px -5px 10px #000;
}
</style>
</head>
<body>
<img src="penguin.jpg" class="shadow1" width="100px" height="100px">
<img src="flower.jpg" class="shadow2" width="100px" height="100px">
</body>
cf) 양수 아래쪽, 음수 위쪽
참고사이트)
<박스 그림자 효과>
Box Shadow CSS Generator
https://cssgenerator.org/box-shadow-css-generator.html