본문 바로가기

CSS

CSS 레이아웃

배경 스타일


■ display

   display는 설정된 곳 안의 요소들이 어떻게 표현되는지, 어떻게 나열되는지를 결정해주는 속성이다.


   값

    none : 보이지 않음(영역이 없어짐)

    inline : 같은 라인에 연결되어 끊기지 않고 표현됨(width, higth 속성은 무시됨)

    block : 단어 당, 블록 당 끊어줌

    list-item : 리스트처럼 보여주게 됨

    run-in : 표현 되는 곳 안의 환경에 따라 끊거나 이어줌.

    compact : 위와 같음

    table : 테이블처럼 표현이 됨

    inline-table : 테이블처럼 표현이 되며 끊기지 않고 연결함

    table-row-group : 테이블의 열처럼 보이게 됨

    table-header-group : 여러 개의 열이 모여서 보이게 됨

    table-footer-group : 여러 개의 열이 모여서 보이게 됨

    table-row : 테이블의 열처럼 보이게 됨

    table-column-group : 여러 줄의 행처럼 보이게 됨

    table-column : 테이블의 행 처럼 보이게됨

    table-cell : 테이블의 한 cell, 칸처럼 보임

    table-caption : 테이블의 한 caption 처럼 보임

    inline-block : block 속성을 가진 태그에 외부 태그와의 상효작용은 inline 으로 동작하도록 함.  즉, div 에 이 속성을 걸면 width 등을 정하면서도 표시되는 건 inline 처럼 작동함.



■ block-level과 inline-level

  HTML element 를 크게 2가지로 구분해보면 head element 처럼 화면에 표시되지 않은 element가 있고 div, p, table...과 같은 element 처럼 화면에 표시되는 element로 나눌 수 있다.

  그리고 화면에 표시되는 element를 다시 두 가지로 분류하면 block-level과 inline-level로 구분할 수 있다.


  1.화면에 표시되지 않는 element 

  2.화면에 표시되는 element 

1).block-level 

      inline-level 


  - block-level과 inline-level의 구분

    1. block-level과 inline-level을 가장 쉽게 구분할 수 있는 방법은 한 라인에 복수로 올 수 있나의 여부이다.

    2. block-level element는 한 라인에 하나만 위치할 수 있다. 반대로 inline-level element는 한 라인에 2개 이상 올 수가 있다.

    3. div(block-level element)와 span(inline-level element) element를 사용해 보면 이 차이를 확실하게 느낄 수 있다.

        <div style="border:1px gray solid;">block-level element</div>

        <div style="border:1px gray solid;">block-level element</div> 

        <span style="border:1px gray solid;">inline-level element</span>

        <span style="border:1px gray solid;">inline-level element</span> 

    4. block-level element인 div element를 연속으로 2개를 넣으면 각각 한라인을 차지하게 된다. 반면 inline-level element는 한줄에 옆으로 여러개가 위치할 수 있다.

    5. block-level element가 한줄을 다 차지한다고 하더라도 자신을 포함한 element가 허용하는 한도내에서 차지한다. 만일 테이블의 셀안에 넣어버리면 그 셀의 크기가 허용하는 범위내에서 width를 차지하게 된다.


- inline과 block의 차이점을 요약

    1. inline으로 설정하면 줄바꿈이 되지 않지만, block으로 설정하면 줄바꿈 된다.

    2. inline으로 설정하면 width, height 속성을 사용할 수 없지만, block으로 설정하면 width, height 속성을 사용할 수 있다.

    3. inline으로 설정하면 상/하 margin과 padding 속성을 사용할 수 없지만, block으로 설정하면 상/하 margin과 padding 속성을 사용할 수 있다.

    4. block-level element는 inline-level element를 포함할 수 있지만 반대의 경우는 불가능하다.



■ width : 길이 | 백분율 | auto

   폭(width)을 지정한다. 음수는 허용되지 않는다. 이미지 폭 지정에 많이 사용하는데 다른 block 에서도 사용 된다.

   절대크기 : in, cm, mm, pt, pc(1pc=12pt), px

   상대크기 : em, ex

   Scripting : object.style.width [ = sWidth ]



■  height : 길이 | auto

   높이(height)를 지정한다.

   절대크기 : in, cm, mm, pt, pc(1pc=12pt), px

   상대크기 : em, ex

   Scripting : object.style.height [ = sHeight ]



■ min-height : 길이(IE 8 이상)

   최소 높이(height)를 지정한다.

   절대크기 : in, cm, mm, pt, pc(1pc=12pt), px

   상대크기 : em, ex



■ float : left | right | none

    html에서 <align=left>와 같은 기능이며 이미지에 많이 쓰인다.(초기 값 : 0) 일반적으로 텍스트 이미지에 사용하나 다른 엘레멘트에도 사용 할 수 있다.

   Scripting : object.style.float [ = sFloat ]

 


■ clear : none | left | right | both

    텍스트나 이미지가 왼쪽이나 오른쪽에 나타나지 못하도록 할 경우에 사용한다. 만약 left 값이 지정되면 왼쪽 영역에 텍스트나 이미지가 못 오고 아래로 나려간다. html에서 <br clear=left/right/all/none>과 비슷



■ 주의

    한글은 자동으로 줄바꿈처리가되는데 숫자나 영어는 자동줄바꿈이안되고 한줄로 길게 늘어져서 div길이를 넘어가면 잘려나오는 현상이있다. 그럴때는 최상위 div태그에

    style="word-break:break-all;"

  


■ clip

   Positioning 된 4각형 Block Box를 지정하는 수치만큼 가려서 안 보이도록 해 주는 Property. clip 되는 Box는 반드시 { position : absolute }로 지정되어 있어야 함.


   값

     auto:초기 값으로서 clip이 되어서 가려지는 부분이 없이 몽땅 보여주고, 4면을 모두 auto로 지정할 때는 auto 한 번만 지정해 주면 됨

   shape

     rect(top right bottom left) 로 지정. rect는 rectangular의 약자로 4각형이라는 뜻. 그런데 여기서 지정하는 값이 약간 헷갈리므로 주의해야 됨.

     top : 지정한 길이만큼 위에서 아래로 가려서 안 보임.

     right : 지정한 길이만큼 왼쪽에서 오른쪽으로 보여 줌.

     bottom : 지정한 길이만큼 위에서 아래로 보여 줌.

     left : 지정한 길이 만큼 왼쪽에서 오른쪽으로 가려 줌.


   Scripting : object.style.clip [ = sClip ] 



■ position

   출력 위치를 어떤 방식으로 위치 될 것인지를 정하게 된다.


   값

    static : 그냥 있는 그대로 위치되는 것이다. top bottom 등의 값을 정하지 않는다.(default)

         - top, left 같은 속성이 무시된다. 즉, x, y 좌표를 설정할 수 없다. 

         - element를 기본 display 속성에 따라 배치한다. 즉, display가  block 이면 한줄을 다 차지하고, inline 이면 컨텐츠의 너비만큼만 차지하는 등 각 속성에 따른다.

        - 최초 좌표시점을 부모 element 의 좌표를 따라간다.

        - 부모자식간의 관계에서는 부모의 시작점이 자식의 시작점이 된다.

    relative : 자신을 담고 있는 것 안에서 비례해서 위치(현재 위치에서 부터의 좌표)

         - relative 의 속성은 기본적으로 위의 static과 거의 동일하다.  하지만 static에서 무시되었던 top, left 가 적용 가능해진다.

    absolute : 화면의 좌측 상단 에서 부터의 좌표

        - 부모로부터는 상대적이나 ( 부모의 left, top 이 자식의 left - 0, top - 0 지점이다. ), 형제끼리는 서로 간섭을 받지 않음.

        - inline, block 속성이 무시된다.

        - 기본적으로 서로 겹치게 되며, z-index 가 높은 순서로 사용자에게 보이게 된다. 

    fixed : scroll이 일어나도 항상 화면상의 지정된 위치에 고정. Netscape에서만 가능

        - 부모자식간의 노드에 영향을 받지 않고 화면의 좌측 상단으로부터 left, top  이 셋팅된다. 

        - 화면의 좌측 상단이란 말은 , 스크롤에도 영향을 받지 않고 항시 같은자리에 있다는 뜻이다.

    inherit : inherit 은 부모 엘리먼트의 속성을 물려받는다.



■  z-index

   화면으로 볼 때 앞, 뒤, 그 뒤 등을 정할 수 있는 속성으로 position 값이 정해져있는 것 한에서 사용 된다.

   형식 : {position:속성 ; z-index:번호순서}

   번호순서

     음수, 0, 양의 정수, auto

   Scripting : object.style.zIndex [ = sIndex ] 



■  visibility

   객체형태 보이게 / 안보이게 조정(영역은 그대로 있음)

   형식 : {visibility: inherit | visible | hidden}

   초기 값 : inherit



■  overflow

    스타일로 넘치는 부분 표시

    형식 : {overflow : visible | hidden | scroll | auto}


    값

       visible : 크기에 무관 모두 보여줌

       hidden : 할당된 공간만 보여줌. 나머지 자름.

       scroll : 항상 스크롤 바.

       auto : 넘칠 때 스크롤 바.

   형식 예

      p {overflow:속성값}

      p {overflow-x:속성값}

      p {overflow-y:속성값}



■ 스크롤 바(IE)

   형식

    {scrollbar-face-color: 컬러_값;

      scrollbar-shadow-color: 컬러_값;

      scrollbar-highlight-color: 컬러_값;

      scrollbar-3dlight-color: 컬러_값;

      scrollbar-darkshadow-color: 컬러_값;

      scrollbar-track-color: 컬러_값;

      scrollbar-arrow-color: 컬러_값;}

  속성 값

    scrollbar-face-color : 스크롤막대기 색

    scrollbar-shadow-color : 스크롤막대기 그늘 색

    scrollbar-highlight-color : 스크롤막대기 밝은 쪽 색

    scrollbar-3dlight-color : 스크롤막대기 밝은 쪽 3차원 색

    scrollbar-darkshadow-color : 스크롤막대기 뒷 쪽 색

    scrollbar-track-color:green : 스크롤막대기 이동레일 색

    scrollbar-arrow-color : 화살표 색



■ 스크롤 바(Webkit : Safari, Chrome)

  - 가상 요소 종류

    ::-webkit-scrollbar  → 스크롤 바 영역 전체

    ::-webkit-scrollbar-button → 상하, 좌우 화살표가 포함된 부분

    ::-webkit-scrollbar-track → 화살표를 제외한 몸통 부분

    ::-webkit-scrollbar-track-piece → 몸통 부분에서 실제 움직이는 부분을 제외한 나머지 길

    ::-webkit-scrollbar-thumb → 몸통 부분에서 실제 움직이는 부분

    ::-webkit-scrollbar-corner → 상하/ 좌우 스크롤 바가 만날 때 오른쪽 아래 공간

    ::-webkit-resizer → corner 공간으로 크기를 변경할 수 있음


  - 가상 선택자 종류

    :horizontal → 좌우 스크롤 바의 모든 요소에 적용

    :vertical → 상하 스크롤 바의 모든 요소에 적용

    :decrement → 스크롤 바에서 윗쪽, 왼쪽 방향 button, track 요소에 적용

    :increment → 스크롤 바에서 아래쪽, 오른쪽 방향 button, track 요소에 적용

    :start → thumb 이전에 위치한 button, track 요소에 적용

    :end → thumb 이후에 위치한 button, track 요소에 적용

    :double-button → 상하 화살표가 붙어 두 개가 한꺼번에 표시된 요소에 적용 (좌우도 같음)

    :single-button → 상하 화살표가 아래 위 따로 나뉘어 표시된 요소에 적용 (좌우도 같음)

    :no-button → 화살표 button이 없는 요소에 적용

    :corner-present → 스크롤 바 corner가 있는 요소에 적용

    :window-inactive → 지금 활성화된 창의 스크롤 바에 적용



■ 커서

   커서 모양 변경

  형식 : {cursor:커서모양;}

  커서모양

    auto : 커서모양이 자동으로 바꿈.

    nw-resize : 커서의 화살표 방향이 북서쪽을 향함.

    ne-resize : 커서의 화살표 방향이 북동쪽을 향함.

    sw-resize : 커서의 화살표 방향이 남서쪽을 향함.

    se-resize : 커서의 화살표 방향이 남동쪽을 향함.

    help : 커서의 모양을 ?(물음표)로 바꿈.

    move : 커서의 모양을 이동 모양으로 바꿈. 

    e-resize : 커서의 모양을 동쪽 방향으로 향하게 함.

    n-resize : 커서의 모양을 북쪽 방향으로 향하게 함.

    s-resize : 커서의 모양을 남쪽 방향으로 향하게 함.

    w-resize : 커서의 모양을 서쪽 방향으로 향하게 함.

    text : 커서의 모양을 텍스트 입력상태로 바꿈.

    crosshair : 커서의 모양을 십자가 모양으로 바꿈.

    wait : 커서의 모양을 모래시계(대기 상태 의미)로 바꿈.

    pointer(hand) : 커서의 모양을 손(클릭할 곳 의미)모양으로 바꿈.



■ max-height, min-height

  의미 : max-height 은 최대 길이 라는 뜻하며, max-height: 300px; 로 되어있다면 300px 이상으로 늘어나지 않는다. 반대로, min-height:300px; 이라면 최소길이가 300px 이기 때문에 아무리 높이길이가 준다고 해도 300px 이하로 내려가지 않는다.


'CSS' 카테고리의 다른 글

CSS 이미지 관련  (0) 2013.06.24
CSS List  (0) 2013.06.24
CSS 배경 스타일  (0) 2013.06.24
CSS Box 스타일  (0) 2013.06.23
CSS Font 및 문단 모양  (0) 2013.06.23