HTML

[HTML] CSS 스타일속성 2

sian han 2022. 4. 20. 16:44

※ 위치속성

  - 절대적 위치 좌표 : x, y좌표를 설정해 절대적 위치를 지정

  - 상대적 위치 좌표 : 요소를 입력한 순서대로 상대적으로 위치를 지정

 

 

 

▶ CSS에서 위치와 관련된 Positioning 방식

  1. normal flow : (default) 사용자가 기본적으로 가지고 있는 positioning

  2. absolute positioning : absolute/relative

  3. float

 

   ▷ top, bottom, left, right

        - 위치지정 속성들은 절대, 상대 위치 지정과 함께 사용

 

 

 

 position 관련 style 속성

           ㄴ element 의 위치 지정방식, 흐름의 종류를 정함

 

   ▷ static

      - default

      - 엘리먼트가 본래 가지고 있는 흐름을 가짐

      - 태그가 위에서 아래로 순서대로 배치

 

   ▷ relative

      - 기본값인 static일 때의 위치를 기준으로 이동한 위치값을 가지게 됨

      - 원래 위치를 기준으로 위치값을 가짐

      - 이동했을때 원래의 위치자리가 없어지지 않고 남아있음

 

   ▷ absolute

      - 엘리먼트의 순서에 따른 흐름을 무시하고 절대적인 위치를 가짐

      - 부모 엘리먼트를 기준으로 위치값을 가짐

          ㄴ 부모가 absolute나 relative여야 부모 기준으로 움직임

              부모가 static이면 부모 무시하고, body기준으로 움직임 ▽

.box1{background:pink; position:absolute; top:100px;left:100px; }
.box2{background:skyblue; left:40px;top:20px; width:80px;height:50px;
        position:absolute;
}

 

 

자손의 position 속성에 absolute 키워드를 적용하려면 지켜야할것

1) 자손의 position 속성을 absolute 키워드로 적용하면 부모에게 height 속성을 입력해야함

2) 자손의 position을 absolute 로 적용하면 부모의 position을 relative 로 적용해야함

 

 

[relative/absolute 비교]

  · relative : 엘리먼트의 원래 위치를 기준으로 위치 이동 , 엘리먼트의 원래의 높이와 넓이 값이 적용

  · absolute : 부모 엘리먼트를 기준으로 위치가 이동 , 원래 영역이 사라짐

 

 

 

   ▷ z-index

      - 레이어의 수직 위치를 지정

      - 정수 및 음수값을 가지게 되며, 숫자가 커질수록 위에 보여짐

          ( = z-index 값이 작을수록 아래에 쌓이고, z-index 값이 크면 z-index 값이 작은 요소보다 위에 쌓이게 됨 )

<style>
    .box { 
        width: 100px; height: 100px; 
        position: fixed;
}
	.box:nth-child(1) {
        background-color: red;
        left: 10px; top: 10px;
        z-index: 100;
}
    .box:nth-child(2) {
        background-color: green;
        left: 50px; top: 50px;
        z-index: 10;
}
    .box:nth-child(3) { 
        background-color: blue;
        left: 90px; top: 90px;
        z-index: 1;
}
</style>

  = > z-index 속성이 큰 태그가 앞으로 올라옴

 

 

 

   ▷ overflow 속성

       - 내부의 요소가 부모의 범위를 벗어날 때 어떻게 처리할지 지정하는 속성

 

     visible : 기본값, 내용이 영역을 바깥으로 벗어나 보이게 됨

     auto : 초과되는 내용이 있을 때만 스크롤을 보여줌

     hidden : 영역을 벗어나는 부분을 보이지 않게 만든다

     scroll : 영역을 벗어나는 부분을 스크롤로 만든다

body > div {
    width: 400px; height: 100px;
    border: 3px solid black;
    position: relative; 
    overflow: hidden; // ☆
}

 

 


 

 

※ float 속성

  - 요소를 왼쪽이나 오른쪽에 배치

  - float로 띄운 박스는 문서의 일반 흐름을 타지 않음

         => 다른 블록 엘리먼트들은 float가 적용된 박스가 없는 것처럼 동작

  - float 한번 사용하고 나면 그 다음에 넣는 다른 요소들에도 똑같은 속성이 전달됨

 

 

▷ left 

  - 태그를 왼쪽에 붙인다. (문서의 왼쪽으로 배치)

 

right

  - 태그를 오른쪽에 붙인다.

 

none (기본값)

 

 

 

▶ float 속성을 사용한 수평 정렬

<style>
    .box {
        width: 100px; height: 100px;
        background-color: red;
        margin: 10px; padding: 10px;
        /* 태그를 왼쪽으로 붙입니다. */
        float: left;
    }
</style>

left

right

 

 

▶ box1이 float : right 된 경우 

<style type="text/css">
    *{margin:0;}
    div{ width:150px;height:50px;text-align:center; }
    .box1{background:pink; float:right; } // ☆
    .box2{background:skyblue; }
    .box3{background:yellow; }
</style>

 

 

세 개의 박스를 float : left 한 경우

   - 부모 element 의 가로폭이 충분하지 않으면 밑으로 내려가지만

     그렇지 않을경우 left 부터 차례대로 배치됨

 

 

float 속성을 사용한 레이아웃 구성

  - 부모 element 의 넓이가 충분하지 못하다면 float 된 element 가 밑으로 떨어지기 때문에

    이것들을 감싸주는 element 인 container 나 wrapper 가 필요하다

                                               ㄴ 안쪽 element 의 합보다 커야 함

 

  - 자손에 float 속성을 적용하면 부모의 overflow 속성에 hidden 키워드를 적용함

: 레이아웃을 구성할 때 가장 많이 사용하는 공식이니까 그냥 외우자 서현아 ~ 

 

 

화면 레이아웃

  · float layout : (일반적) float 과 clear 속성을 활용하여 엘리먼트의 상대적 위치를 조절하여 화면 레이아웃을 잡아줌

  · position layout : position값과 top, left, right, bottom 값들을 활용하여 엘리먼트의 위치를 조절하여

                           화면 레이아웃을 잡아줌

 

  = > 이렇게 2가지 방법으로 화면의 레이아웃을 구성할 수 있다 ! 

 

 

▷ 초기화

   - 엘리먼트의 기본 스타일값은 브라우저의 종류나 버전별로 미묘한 차이가 있기 때문에

     제대로 된 화면출력을 하기 위해서는 반드시 초기화가 필요함 

   - 공통 선택자(*)를 사용하여 처리하기도 함

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,input,textarea,p,blockquote,th,td { 
        margin:0;
        padding:0;
}

 

 


 

※ clear 속성

          - float 속성 무효로 만들기

clear : 속성값;

 

 

 

 ▶ 속성값 

 

     left : 왼쪽으로 떠있지 않도록 함

     right : 오른쪽으로 떠있지 않도록 함

     both : 어디에도 떠있지 않도록 함

     none : (default)왼쪽 오른쪽 모두에 뜰 수 있음

 

<style type="text/css">
    *{margin:0;}
    div{width:150px;height:50px;text-align:center}
    .box1{background:pink;float:left;} 
    .box2{background:skyblue;float:left;} // 여기까지 float left
    .box3{background:yellow;clear:both;} // clear
    .box4{background:green;} // box3 에서 clear 되었기 때문에 float left 의 영향받지않음
</style>

 

 

 

 

 

 

'HTML' 카테고리의 다른 글

[Thymeleaf] 프로젝트에 사용한 타임리프 문법 정리  (0) 2022.08.19
[HTML] CSS 스타일속성 1  (0) 2022.04.20
[HTML] CSS, 선택자  (0) 2022.04.19
[HTML] 태그  (0) 2022.04.19