---
title: "CSS 정리 02"
date: "2019-01-30"
tags: ["CSS"]
status: archived
verified: false
---

---

## CSS 속성 - 정렬

* **수평정렬 text-align**
     * **left, right, center** 가능

```css
text-align:left;
```

* **수직정렬 vertical-align**
   * **top, middle, bottom** 가능
   * 행의 높이가 존재할때만 적용됨
  
```css
vertical-align:top;
```

* **객체(테이블, div)**
     * **정렬이 없어서 margin을 이용한다.**

```css
margin:0px auto;
```

```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>정렬</title>
<style type="text/css">
     #div_text {
          width:600px;
          height:200px;
          border:1px solid #333;
          text-align:center;
     }
</style>
</head>
<body>
     <div id="div_text">
          <strong>문자열 수평 정렬</strong>
          <br/>
          안뇽!
     </div>
</body>
</html>
```

![01](/md/legacy-assets/Web/CSS/02/01.webp)

* **vertical-align은 padding(행의 높이)이 존재하는 tag에서 사용**
     * div같은 경우 vertical-align을 적용해도 padding이 없기 때문에 적용이 안됨

![02](/md/legacy-assets/Web/CSS/02/02.webp)

```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>정렬</title>
<style type="text/css">
     #left { text-align: left }
     #center { text-align: center }
     #right { text-align: right }
     #top { vertical-align: top }
     #middle { vertical-align: middle }
     #bottom { vertical-align: bottom }
</style>
</head>
<body>
     <table border="1">
          <tr height="100">
              <td id="left" width="80">왼쪽</td>
              <td id="center" width="80">가운데</td>
              <td id="right" width="80">오른쪽</td>
          </tr>
          <tr height="100">
              <td id="top" width="80">위</td>
              <td id="middle" width="80">가운데</td>
              <td id="bottom" width="80">아래</td>
          </tr>
     </table>
</body>
</html>
```

![03](/md/legacy-assets/Web/CSS/02/03.webp)

![04](/md/legacy-assets/Web/CSS/02/04.webp)


* table의 **td태그의 경우 padding이 존재하므로 vertical-align이 적용된다.**
* 객체 태그를 가운데로 정렬할 땐 margin으로 한다.

```css
table { margin:0px auto }
```

![05](/md/legacy-assets/Web/CSS/02/05.webp)

## CSS 속성 - 이미지

* **이미지는 모든 태그 바닥에 설정할 수 있다.**
* **background**
     * 한번에 배경관련 여러 속성을 입력할 때 쓰는 속성
     * 반복여부를 생략하면 바둑판형식이 기본
     * 반복여부
          * **repeat-x** : x좌표 반복
          * **repeat-y** : y좌표 반복
          * **no-repeat** : 반복X

```
background:바닥색 url('이미지URL') 반복여부
```

* url로 이미지만 넣고싶으면 **background-url**을 쓰면 됨

```css
background-image : url('이미지URL')
```

```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>이미지 사용</title>
<style type="text/css">
     body { background: #FFFFFF url(../common/line.png)  repeat-x;}
</style>
</head>
<body>
</body>
</html>
```

![06](/md/legacy-assets/Web/CSS/02/06.webp)

* **모든 태그에 이미지를 배경으로 설정할 수 있다.**

```html
<style type="text/css">
     form,table { background: #FFFFFF url("../common/sist_logo.jpg");}
</style>
</head>
<body>
     <div></div>
     <form>
          <label>이름</label><input type="text"/><br/>
          <label>나이</label><input type="text"/><br/>
          <label>주소</label><input type="text"/><br/>
     </form>
     <table border="1">
          <tr height="30">
              <td width="100"></td>
              <td width="100"></td>
              <td width="100"></td>
          </tr>
          <tr height="30">
              <td width="100"></td>
              <td width="100"></td>
              <td width="100"></td>
          </tr>
          <tr height="30">
              <td width="100"></td>
              <td width="100"></td>
              <td width="100"></td>
          </tr>
     </table>
</body>
```

![07](/md/legacy-assets/Web/CSS/02/07.webp)

## CSS 속성 - 넓이, 높이, 배경색, 테두리

* **넓이**
     * **안쪽 데이터가 넓이 이상 넘어가면 줄이 변경된다.**
     * width가 설정되어있지 않으면 브라우저 크기에 따라 데이터가 이동한다.
          * width가 설정되면 브라우저의 크기가 변경되더라도 안에 데이터가 이동하지 않는다.

```css
width: 00px
```

* **높이**

```css
height: 00px
```

* **바닥 색** 

```css
background-color:RGB
```


* **테두리**
     * **테두리면을 명시하지 않으면 모든 면에 설정된다.**
     * 테두리를 없앨 땐 두께를 0px을 주면 된다.
     * **선종류 4가지**
          * **solid** : 실선
          * **dotted** : 점선
          * **dashed** : 긴 점선
          * **double** : 이중선
               * 이중선은 두께가 3px부터 나타남

```
border: 테두리선두께px 선종류 선색;
```

* **테두리 특정 방향선을 변경가능**
  * **border-left, border-right, border-top, border-bottom**

```
border-left: 선두께px 선종류 선색;
border-right: 선두께px 선종류 선색;
border-top: 선두께px 선종류 선색;
border-bottom: 선두께px 선종류 선색;
```

```html
<style type="text/css">
     div { background-color: #FFCC66 }
     .width { width: 500px }
     .height { margin-top:10px; height: 40px }
     .background { margin-top:10px; background-color: #339966 }
     .border { margin-top:10px; border: 3px dotted #6699FF }
</style>
</head>
<body>
     <div class="width">넓이</div>
     <div class="height">높이</div>
     <div class="background">바닥색</div>
     <div class="border">테두리선</div>
</body>
</html>
```

![08](/md/legacy-assets/Web/CSS/02/08.webp)


* **CSS에서 ipnut태그의 크기를 변경할 땐 input의 size속성 말고 css width, height를 지정해주면 된다.**

```css
input { background-color: #FF0000; width:100px;  height:60px }
```

![09](/md/legacy-assets/Web/CSS/02/09.webp)

```css
#left { margin-top:10px; border-left:3px solid #FF0000 }
#top { margin-top:10px; border-top:3px solid #00FF00 }
#bottom { margin-top:10px; border-bottom:3px solid  #0000FF }
#right { margin-top:10px; border-right:3px solid #FF00FF  }
```

![10](/md/legacy-assets/Web/CSS/02/10.webp)

* **테이블에 border를 주면 테두리만 나오게 된다.**

```css
/* css */
table { border:2px solid #333 }
```

```html
<table>
<tr>
     <th>번호</th>
     <th>이름</th>
     <th>좋아하는 것들</th>
</tr>
<tr>
     <td>1</td>
     <td>공선의</td>
     <td>돈</td>
</tr>
<tr>
     <td>2</td>
     <td>이재현</td>
     <td>게임</td>
</tr>
<tr>
     <td>3</td>
     <td>김정윤</td>
     <td>철권</td>
</tr>
</table>
```

![11](/md/legacy-assets/Web/CSS/02/11.webp)

```css
/* css */
table { border:2px solid #333 }
th { border:1px solid red }
td { border:1px solid blue }
```

![12](/md/legacy-assets/Web/CSS/02/12.webp)


* HTML에서 셀간 간격을 조절하던 **cellspacing**은 CSS엔 없음
     * **border-spacing을 사용하여 조절**
     * **table의 border와 th, td의 border는 각각의 테두리를 갖는다.**

```css
/* css */
table { border:0px solid #333; border-spacing:0px;}
```

![13](/md/legacy-assets/Web/CSS/02/13.webp)

## CSS 속성 - cursor

* **마우스 커서 올렸을때 커서모양으로 바꾸기**
     * cursor 속성값으로 **crosshair, pointer, progress, move** 등을 줄 수 있다.

```css
cursor:pointer;
```

## CSS 속성 - Design(float, position)

* **float 속성**
  * **table, div 태그를 왼쪽 또는 오른쪽으로 배치할 때 사용**
  * 설정된 속성이 하위로 전달되는 경우가 발생
  	* 설정 속성을 하위로 전달하지 않으려면 "clear:both"를 사용한다.
  * float의 속성이 아래 속성으로 내려오는 경우가 발생하기 때문에 **"clear:both"**를 사용해서 막아준다.

```html
<style type="text/css">
     #kim { background-color: #CC6666; width:300px;  float:left}
     #choi { background-color: #6699FF; width:300px;  float:right; clear:both; }
</style>
</head>
<body>
<div id="kim">김정윤</div>
<div id="choi">최지우</div>
</body>
```

![14](/md/legacy-assets/Web/CSS/02/14.webp)

```html
<style type="text/css">
     #wrap { width:600px; margin:0px auto;}
     #header { background-color: #333333; height:100px }
     #kim { border:1px solid #333; background-color:  #CC6666; width:298px; float:left; height:200px }
     #choi { border:1px solid #333; background-color:  #6699FF; width:298px; float:right; height:200px }
     #footer { clear:both; background-color: #99CC66;  width:600px; height:100px; float:left;}
</style>
</head>
<body>
<div id="wrap">
     <div id="header"></div>
          <div id="kim">김정윤</div>
          <div id="choi">최지우</div>
     <div id="footer"></div>
</div>
</body>
</html>
```

![15](/md/legacy-assets/Web/CSS/02/15.webp)


* **position 속성**
  * **원하는 위치로 배치할 때 사용**
     * 좌표를 사용
  * **모든 태그에 사용할 수 있다.**
  * **position 속성 값 세가지**
     * **absoulte, relative, fixed**
  * **top : y좌표, left : x좌표** 등의 좌표를 사용하는 속성과 같이 사용
  * **relative**
     * **absolute의 시작좌표를 변경할 때 사용**
  * **absoulte**
    *  **절대 좌표**
       * 웹브라우저 좌상단의 구석에서부터 좌표가 시작
          * **absolute가 relative안에 들어있을 때에만 좌표에 영향을 받는다.**
            * relative에 의해서 시작좌표가 변경됨
       * 스크롤바를 움직여도 좌표가 변경되지 않는다.
  * **fixed**
     * **고정 좌표**
       * 스크롤바를 움직이면 좌표를 수정하여 재설정한다.
            * **relative에 영향을 받지 않는다.**

```html
<style type="text/css">
     #abs_1 {
          position:absolute;
          top:100px; left:100px;
          width:300px; height:100px;
          background-color:#FF0000
     }
     /* absolute가 relative 안에 들어있을 때에만 좌표에  영향을 받는다. */
     #abs_2 {
          position:absolute;
          top:0px; left:0px;
          width:300px; height:100px;
          background-color:#FF00FF
     }
     #abs_3 {
          position:absolute;
          top:0px; left:0px;
          width:300px; height:100px;
          background-color:#00FFFF
     }
</style>
</head>
<body>
<div>A</div>
<div>B</div>
<div>C</div>
<div id="abs_1">absolute</div>
<div style="position:relative;">
     <div id="abs_2">D absolute</div>
</div>
<div id="abs_3">Test</div>
</body>
</html>
```

![16](/md/legacy-assets/Web/CSS/02/16.webp)


* **fixed를 사용하면 설정한 좌표에서 스크롤바를 이동해도 계속 그 자리에 위치한다.**
     * **fixed는 relative의 영향을 안받는다.**

```css
/* css */
#fix_2 {
     position:fixed;
     top:100px; left:400px;
     width:200px;
}
```

```html
<div style="position:relative;">
     <div id="abs_2">D absolute</div>
     <div id="fix_2"><img  src="../common/images/img1_1.png"/></div>
</div>
```

![17](/md/legacy-assets/Web/CSS/02/17.webp)
