Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

나만의 코딩 일지

[HTML/CSS] float, display 본문

HTML

[HTML/CSS] float, display

namgung 2022. 6. 27. 17:56

박스 나열

float

float은 띄우다, 나열하다라는 뜻으로 말 그대로 박스를 나열하고자 할 때 사용하는 속성이다.

float 기본 속성

  • none : 나열하지 않음
  • left : 외쪽으로부터 나열
  • right : 오른쪽으로부터 나열
  • initial : 기본 값으로 설정
  • inherit : 부모 요소로부터 상속
  1. 왼쪽으로 나열
<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{
            font-size : 30px;
            width:200px;
            height:200px;
            border:5px solid #000;
            margin:20px;
            float:left;  
        }

        
    </style>
</head>

<body>
   
    <div>box1</div>
    <div>box2</div>
    <div>box3</div>

</body>

  1. 오른쪽으로 나열
<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 {
            font-size: 30px;
            width: 200px;
            height: 200px;
            border: 5px solid #000;
            margin: 20px;
            float: right;
        }
    </style>
</head>

<body>

    <div>box1</div>
    <div>box2</div>
    <div>box3</div>

</body>

clear

  • "해제한다"라는 의미를 갖는다.
  • float와 함께 사용
  • float을 제거할 때 사용

clear 기본 속성

  • left : 좌측 나열을 제거
  • right : 우측 나열을 제거
  • both : 양쪽 나열을 제거
<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 {
            font-size: 30px;
            width: 200px;
            height: 200px;
            border: 5px solid #000;
            margin: 20px;
            float: left;
        }

        .box {
            clear: left;
            /*box3의 왼쪽 float를 제거*/
        }
    </style>
</head>

<body>

    <div>box1</div>
    <div>box2</div>
    <div class="box">box3</div>

</body>

float의 외쪽으로 나열돼 있던 box3이 clear의 left 속성을 지정해 왼쪽 float이 제거된 것을 알 수 있다.

display

inline과 block의 차이

  • inline : 줄 바꿈 없이 글자와 같이 나열되는 성격, 내용물에 따라 폭이 결정되는 성격 (a, span, i, em)
  • block : 박스와 같이 쌓이는 성격, 화면 전체의 폭을 사용하는 성격 (div, h, table, ul, ol)

**inline과 block의 차이 ** 1.

<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>
        *{
            margin:0;
            padding:0;
        }
        div{
            border:3px solid #000;
        }
        span{
            border:3px solid #000;
        }
        
    </style>
</head>

<body>

    <div>box01</div>
    <div>box01</div>
    <div>box01</div>

    <span>span01</span>
    <span>span02</span>
    <span>span03</span>

</body>

<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>
        *{
            margin:0;
            padding:0;
        }
        div{
            border:3px solid #000;
            width:200px;
            height:50px;
            margin:50px;
        }
        span{
            border:3px solid #000;
            width:200px;
            height:200px;
            margin:50px;
        }
        
    </style>
</head>

<body>

    <div>box01</div>
    <div>box01</div>
    <div>box01</div>

    <span>span01</span>
    <span>span02</span>
    <span>span03</span>

</body>

위에 그림에서 알 수 있듯이 블록은 모든 CSS가 적용되지만 인라인은 폭, width, height, margin-top, margin-bottom등이 적용되지 않는다.

display

  • 요소를 어떤 성격으로 보여줄지 결정하는 속성
  1. block -> inline / inline -> block으로 속성 변경
<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>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            border: 3px solid #000;
            width: 200px;
            height: 50px;
            margin: 50px;
            display: inline;
            /* block -> inline */
        }

        span {
            border: 3px solid #000;
            width: 200px;
            height: 50px;
            margin: 50px;
            display: block;
            /* inline -> block */
        }
    </style>
</head>

<body>

    <div>box01</div>
    <div>box01</div>
    <div>box01</div>

    <span>span01</span>
    <span>span02</span>
    <span>span03</span>

</body>

inline-block

  • 인라인과 블록의 합성 성격
  • 인라인과 같이 한 줄에 표현하면서도 block과 같이 정의가 이루어진 표현 -> margin, width, height 적용 가능
  • inline-block을 지정한 요소는 성격 자체는 인라인(inline) 요소처럼 동작하지만 해당 요소 내부에서는 블록(block) 요소처럼 동작
  • 주로 요소를 나열하는 경우 사용되기도 한다.
<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>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            border: 3px solid #000;
            width: 300px;
            height: 50px;
            margin: 50px;
            display: inline-block;
            text-align: center;
            /*inline 속성의 텍스트 속성을 사용해 글자를 중앙에 배치한 형태*/
        }

        span {
            border: 3px solid #000;
            display: inline-block;
            /*모든 css 속성 사용이 가능하며 inline 속성으로 나열된 형태*/
            width: 200px;
            height: 50px;
            margin: 50px;
        }
    </style>
</head>

<body>

    <div>box01</div>
    <div>box01</div>
    <div>box01</div>

    <span>span01</span>
    <span>span02</span>
    <span>span03</span>

</body>

 

'HTML' 카테고리의 다른 글

[HTML/CSS] 여러 선택자 속성  (0) 2022.06.27
[HTML/CSS] overflow, list  (0) 2022.06.27
[HTML/CSS] 글자 관련 속성, 배경 관련 속성  (0) 2022.06.27
[HTML/CSS] 기본 속성  (0) 2022.06.25
[HTML/CSS] 기본 구조  (0) 2022.06.25