프로그래밍/자바(java) 융합개발자 2차

[자바 기초] 17일차 일지 - Ch7. CSS3 속성

aSpring 2021. 1. 7. 16:32
728x90
728x90

 

Chapter 07 CSS3 속성

01 박스 모델 : 디자인

02 테두리 속성 : border

03 박스 속성

04 레이아웃 속성 : 위치, 배치에 대한 속성

05 표 속성 : 표를 꾸미는 데 들어가는 디테일, 셀의 여백, 윤곽선 등

 

학습목표

박스 모델의 개념을 이해하고, 박스 크기를 원하는 대로 설정할 수 있다.

테두리 속성의 종류를 알고 활용할 수 있다.

웹 문서 내 원하는 위치에 요소를 배치할 수 있다.

표와 관련된 속성을 알고 활용할 수 있다.


Chapter 07 CSS3 속성

01 박스 모델

1. 박스 모델의 개념

박스 모델

  • 웹 문서에 텍스트, 이미지, 테이블 등의 요소를 배치하기 위해 사용
  • 웹 문서의 전체 레이아웃을 정의
  • 각종 요소들을 원하는 위치에 배치

박스의 속성

  • content : 실제 내용이 표현되는 곳
  • padding : 콘텐츠와 테두리 사이의 여백
  • border : 박스의 테두리 두께
  • margin : 테두리와 박스의 최종 경계 사이의 여백

박스의 속성

예제 7-1 박스 모델 이해하기 ch07/01_BoxModel.html

<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>박스 모델의 padding, border, margin 속성의 기본 값은 0이며, 상하좌우 네 가지 방향을 top, bottom, left,     right를 이용하여 지정할 수 있습니다.</div>
</body>

- 윤곽선을 기준으로 안쪽이 패딩, 마깥쪽이 마진

2. 박스의 크기 설정

Content

  • 실제 내용이 표현되는 곳
  • 속성: width(너비 지정), height(높이 지정)

예제 7-2 박스의 내용 영역 크기 지정하기 ch07/02_BoxModelSize.html

<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>

 

웹에서 가장 많이 쓰는 기본 단위는 pixel

- 모니터 크기는 모두 다르지만 픽셀 수는 동일하다.

 

%는 상대적

프로그램에서는 상대적인것보다 절대적인 것이 더 훌륭하다!

 

cm는 그냥 이런게 있다 정도만 알기 -> 쓸 수는 있으나 다른 나라는 inch를 쓰는 등 다르니까

 

 

padding, margin

  • padding : 박스의 안쪽 여백 설정 : 나를 기준으로 안 여백
  • Margin : 박스의 바깥쪽 여백 설정 : 나를 기준으로 바깥쪽 여백

auto : 아무 것도 안해줘도 자기 알아서 해줌

 

예제 7-3 박스의 안쪽 여백과 바깥쪽 여백 지정하기 ch07/02_BoxModelSize.html

<head>
    <style>
        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>

 

방향 여백 크기 설정

속성값의 개수에 따라 적용되는 위치

순서 : 시계방향

 

예제 7-4 박스의 여백을 네 방향으로 지정하기 ch07/04_Boxmp.html

<head>
    <style>
        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>

 

 

02 테두리 속성

1. 테두리 두께

border-width

  • 테두리 두께 설정
  • Top, bottom, left, right를 이용하여 네 방향으로 설정 가능

 

2. 테두리 색상

border-color

  • 테두리 색상 지정

CSS3 기본 색상 표현 방법

 

 

 

3. 테두리 스타일

border-style

  • 테두리 스타일 설정

3. 테두리 스타일

예제 7-5 테두리 스타일 지정하기 ch07/05_BorderStyle.html

<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>

 

예제 7-6 테두리의 네 방향에 각각 다른 속성 지정하기 ch07/06_BorderColor.html

 

<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, 
    border-right, border-bottom, border-left라는 속성을     이용해 지정할 수 있습니다.</p>
</body>

-- 순서 : 픽셀, 선종류, 선색상

 

03 박스 속성

1. 둥근 모서리

border-radius

  • 테두리의 모서를 둥글게 설정

예제 7-7 박스에 둥근 모서리 적용하기 ch07/07_BorderRadius.html

<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>

 

2. 박스 그림자

box-shadow

  • 박스에 그림자 효과 적용

  • 수평 그림자(h-shadow): 그림자의 수평 거리 지정
  • 수직 그림자(v-shadow): 그림자의 수직 거리 지정
  • 그림자 흐림(blur): 그림자의 흐림 정도 지정
  • 그림자 번짐(spread): 그림자의 번짐 정도 지정
  • 그림자 색상(color): 그림자의 색상 지정
  • 삽입 효과(inset): 박스 외부로 표현되는 그림자를 박스 안쪽으로 표현하는 효과

예제 7-8 박스에 그림자 효과 주기 ch07/08_BoxShadow1.htm

<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. 박스 그림자

ch07/08_BoxShadow2.html

<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;
            		/* 그림자1           , 그림자2          , 그림자3           */
        }
    </style>
</head>
<body>
    <div id="bs1">
        <h3>박스 그림자 특수 효과1</h3>
    </div>
    <div id="bs2">
        <h3>박스 그림자 특수 효과2</h3>
    </div>
</body>

ch07/08_BoxShadow3.html

<head>
    <style>
        img { 
            padding: 20px; 
            margin: 20px; 
        }
        .shadow1 {    /* Bottom right coner */
            box-shadow: 5px 5px 10px #000;
        }
        .shadow2 {    /* Up right coner */
            box-shadow: 5px -5px 10px #000;
        }
    </style>
</head>
<body>
    <img src="pic1.jpg" class="shadow1">
    <img src="pic2.jpg" class="shadow2">
</body>

04 레이아웃 속성

1. position 속성

position -> 위치 설정 : 4가지 방식 존재(position 속성에 속성값은 4가지 static, relative, absolute, fixed)

  • 텍스트, 이미지, 표 등의 요소를 웹 문서에 배치할 때 사용하는 속성
    •  absolute;는 보통 가장 바깥쪽에 올때 쓰긴 하는데 절대적인 위치를 정하는거라서 배제

절대 위치 : 무조건 그 위치에 딱 때려박는건

고정 위치 : 스크롤을 아무리 움직여도 계속 그자리에 표시됨

 

정적 위치 설정

  • 텍스트, 이미지, 표 등을 웹 문서의 흐름에 따라 배치하는 방법
  • 블록 요소는 위에서 아래로 쌓이고, 인라인 요소는 같은 줄에 순서대로 배치

예제 7-9 정적 위치 설정으로 요소 배치하기 ch07/09_StaticPosition.html

<head>
    <style>
        body {
            font-weight: bold; 
            font-size: 12pt;
        }
        .sp1 {
            position: static;  /* 안써줘도 됨, 기본, 순서대로 쌓인다, 줄바꿈 */
            top: 100px;    /* 적용되지 않음 */
            background-color: cyan;
            width: 400px; 
            height: 50px;
        }
        .sp2 {
            position: static;
            left: 30px;    /* 적용되지 않음 */
            background-color: orange;
            width: 400px; 
            height: 50px;
        }
         .sp3 {
            background-color: lightgreen;
            width: 400px; 
            height: 50px;
        }
    </style>
</head>
<body>
    <h1>positioning style1</h1> 
    <p class="sp1">정적 위치 설정 적용1</p>
    <div class="sp2">정적 위치 설정 적용2</div>
    <p class="sp3">기본 위치 설정</p>
</body>

 

 

상대 위치 설정

  • 각종 요소가 웹 문서의 정적 위칫값에서 상대적으로 얼마나 떨어져 있는지 표시하여 배치하는 방법

 

예제 7-10 상대 위치 설정으로 요소 배치하기 ch10/10_RelativePosition.html

<head>
    <style>
        body {
            font-weight: bold; 
            font-size: 12pt;
        }
        .sp {
            position: static;
            left: 30px;    /* 적용되지 않음 */
            background-color: cyan;
            width: 400px; 
            height: 50px;
        }
        .rp1 {
            position: relative; /* 상대 -> 기준 : 부모인 body */
            left: 30px;
            top: -10px;
            background-color: orange;
            width: 400px; 
            height: 50px;
        }
        .rp2 {
            position: relative;
            left: 60px;
            top: 20px;
            background-color: lightgreen;
            width: 400px; 
            height: 50px;
        }
    </style>
</head>
<body>
    <h1>positioning style2</h1> 
    <p class="sp">정적 위치 설정 적용</p>
    <div class="rp1">상대 위치 설정 적용 - left 30px, top -10px</div>
    <p class="rp2">상대 위치 설정 적용 - left 60px, top 20px</p>
</body>

relative : 내 부모인 body를 기준으로 얼마나 떨어진다. 이런 상대위치 적어줌

 

 

 

절대 위치 설정

  • 웹 문서의 흐름과는 상관없이 전체 페이지를 기준으로 top, right, bottom, left의 속성을 이용하여 원하는 위치에 배치시키는 방법

예제 7-11 절대 위치 설정으로 요소 배치하기 ch07/11_AbsolutePosition.html

<head>
    <style>
        body {
            font-weight: bold; 
            font-size: 12pt;
        }
        .ap1 {
            position : absolute; /* 확실, 절대적 -> left 30, top 70에서 시작 */
            left: 30px;
            top: 70px;
            background-color: yellow;
            width: 400px; 
            height: 50px;
        }
        .ap2 {
            position: absolute;
            left: 40px;
            top: 90px;
            background-color: lightgreen;
            width: 400px; 
            height: 50px;
        }
        .rp {
            position: relative;
            left: 50px;
            top: 80px;
            background-color: cyan;
            width: 400px; 
            height: 50px;
        }
    </style>
</head>
<body>
    <h1>positioning style3</h1> 
    <div class="ap1">절대 위치 설정 적용 - left 30px, top 70px</div>
    <div class="ap2">절대 위치 설정 적용 - left 40px, top 90px</div>
    <div class="rp">상대 위치 설정 적용 - left 50px, top 80px</div>
</body>

absolute -> left, top, width, height가 필요

절대 위치 : document 기준 - 상대위치랑 서로 영향 안 줌

상대위치 : 부모 body 기준으로 위치를 잡는데 body 안에 <h1>positioning style3</h1>가 이미 높이를 차지하고 있어서 알아서 기준점이 밀린다 -> 높이가 h1을 기준으로 (0, 0) 지점이 된다.

-> 상대 위치는 높이의 영향을 받는다.

 

고정 위치 설정

  • 창의 스크롤을 움직여도 사라지지 않고 고정된 위치에 그대로 있음

예제 7-12 고정 위치 설정으로 요소 배치하기 ch07/12_FixedPosition.htmlsition.html

<head>
  <style>
      body {
          font-weight: bold; 
          font-size: 12pt;
      }
      .p {
          background-color: yellow;
          width: 300px; 
          height: 50px;
      }
      .fp {
          position: fixed;
          right: 5px;
          top: 5px;
          background-color: lightgreen;
          width: 300px; 
          height: 50px;
      }
  </style>
</head>
<body>
    <h1>positioning style4</h1> 
    <p class="p">기본 위치 설정 박스1</p>
    <p class="p">기본 위치 설정 박스2</p>
    <p class="p">기본 위치 설정 박스3</p>
    <p class="p">기본 위치 설정 박스4</p>
    <p class="p">기본 위치 설정 박스5</p>
    <p class="fp">고정 위치 설정 박스 : 오른쪽 스크롤     위아래로 이동해보기</p>
</body>

 

스크롤 올렸다 내려도 고정위치 설정 박스는 항상 같은 자리에 있음

 

2. float 속성

float

화면을 구성하는 요소 간의 관계를 고려하여 각 요소를 배치하는 방법

예제 7-13 float 속성 사용하기 ch07/13_FloatPosition.html

<head>
    <style>
        img {
            float: right;
            margin: 0 0 10px 10px;
        }
    </style>
</head>
<body>
    <p>float 속성은 웹 문서의 레이아웃을 설계하는 과정에서 많이 사용하는 속성입니다.</p>
    <p><img src="pic1.jpg" alt="image" width="140" height="140">
    float 속성은 특정 요소를 떠 있게 해줍니다. 여기서 '떠 있다'라는 말의 의미는 특정 요소가 기본 레이아웃에서 벗어나     웹 문서의 왼쪽이나 오른쪽에 이동하는 것을 말합니다. float 속성은 복잡한 형태의 레이아웃을 구성하는 데 필요한 핵    심 속성으로, 특정 요소가 주변 요소와 자연스럽게 어울리도록 해줍니다. 주의할 점은 float 속성을 사용할 때 요소의    위치가 고정되면 안 되기 때문에 position 속성의 absolute를 사용하면 안 됩니다.</p>
</body>

 

clear

float 속성이 적용되지 않도록 할 때 사용

 

예제 7-14 clears 속성 사용하기 ch07/14_UsingClear.html

<head>
    <style>
        .div1 {
            float: left;
            width: 100px;
            height: 50px;
            margin: 10px;
            border: 3px solid #73AD21;
        }
        .div2 {
            border: 1px solid red;
        }
        .div3 {
            float: left;
            width: 100px;
            height: 50px;
            margin: 10px;
            border: 3px solid #73AD21;
        }
        .div4 {
            border: 1px solid red;
            clear: left;
        }
    </style>
</head>
<body>
    <h2>float 속성 사용</h2>
    <div class="div1">div1</div>
    <div class="div2">div2 - float 속성을 사용하여 대상 요소를 웹 문서에 배치하면 그 다음 요소에도 똑같은 속성이 적    용됩니다. 하지만 float 속성이 사용되는 것을 원하지 않을 때도 있습니다. 이때 clear 속성을 사용합니다. 다양한 레이    아웃 설계할 때에는 float 속성과 clear 속성을 적절히 잘 사용해야 합니다.</div>
    <h2>clear 속성 사용</h2>
    <div class="div3">div3</div>
    <div class="div4">div4 - clear 속성은 float 속성이 적용되는 것을 원하지 않는 요소에 사용하여 float 속성을 초기화    시킵니다. float: left;를 사용했다면 clear: left;로, float: right;를 사용했다면 clear: right;로 초기화합니다.     float 속성 값이 left 인지 right 인지 상관없이 무조건 초기화하고 싶다면 clear: both;를 사용합니다. 보통 clear:     both;를 많이 사용합니다.</div>
</body>

 

 

더보기

<style>에서 .div4에 clear: left; 속성을 주기 전에는 div4에도 float 속성이 적용되어 다음과 같이 나타난다.

 

div1, div3이 플로팅되어있어서 플로팅된 건 그 크기, 위치 그대로 있고 밑에 글씨가 움직이는데

div3에서 clear를 해버려서 플로팅X

 

overflow

auto로 설정하면 이미지가 박스 영역을 벗어나는 현상을 해결할 수 있음

 

예제 7-15 overflow 속성 사용하기 ch07/15_UsingOverflow.html

<head>
    <style>
        div {
            border: 3px solid #73AD21;
        }
        .img1 {
            float: right;
        }
        .fix {
            overflow: auto;
        }
        .img2 {
            float: right;
        }
    </style>
</head>
<body>
    <p>이미지가 박스 영역을 벗어남</p>
    <div><img class="img1" src="pic2.jpg" alt="image" width="140" height="140">
    이미지가 오른쪽 정렬로 되어 있는데, 박스 영역을 벗어났습니다.</div>
    <p style="clear:right">overflow: auto; 속성을 사용하여 해결</p>
    <div class="fix"><img class="img2" src="pic2.jpg" alt="img" width="140" height="140">
    이미지가 박스 영역을 벗어날 경우에는 overflow 속성을 auto로 설정하여 해결합니다.</div>
</body>

 

 

시맨틱 문서 구조에서 float 속성의 사용

-> 코드 쓰는 순서에 상관 없이 알아서 위치 설정됨.

aside가 오른쪽으로 올 수 있도록 하려면 aside { float: right; } 해주어야 함

 

 

예제 7-16 시맨틱 문서 구조에 float 속성 사용하기 ch07/16_FloatLayout.html

<head>
    <style>
        div { border: 3px solid blue; }
        .fix { overflow: auto; }
        nav { float: left; width: 200px; border: 3px solid #73AD21; }
        section { margin-left: 206px; border: 3px solid red; }
    </style>
</head>
<body>
    <div class="fix">
        <nav>
            <span>목차</span>
            <ul>
                <li><a target="_blank" href="http://www.google.com">Google</a></li>
                <li><a target="_blank" href="http://www.apple.com">Apple</a></li>
                <li><a target="_blank" href="http://www.w3.org">W3C</a></li>
                <li><a target="_blank" href="http://www.oracle.com">Oracle</a></li>         
                <li><a target="_blank" href="http://www.adobe.com">Adobe</a></li>
                <li><a target="_blank" href="http://www.amazon.com">Amazon</a></li>
                <li><a target="_blank" href="http://www.Mysql.com">Mysql</a></li>
            </ul>
        </nav>
        <section>
            <span>section 1</span>
            <p>float 속성은 시맨틱 문서 구조에 유용하게 사용할 수 있습니다. 예를 들면 nav나 aside에 float 속성을 추가하면 떠다니            는 내비게이션 또는 사이드 바를 만들 수 있습니다.</p>
        </section>
        <section>
            <span>section 2</span>
            <p>시맨틱 문서 구조에 float 속성을 적용할 때는 footer 부분에 적용되지 않도록 해야 합니다.</p>
        </section>
    </div>
</body>

 

 

3. z-index 속성

z-index

  • 요소 위에 다른 요소를 쌓을 때 사용
  • z-index 속성값이 작을수록 아래에 쌓임

 

데카르트 좌표계, 카르티잔 좌표계에서 수직 : y축, 수평 : x축, 3차원 표시할 때 z축(앞, 뒤)(0, 0) 기준으로 오른쪽으로 가면 x 값이 늘어남,                    아래쪽으록 가면 y 값이 늘어남,                    내 눈에 보이는 건 z값이 젤 큰 것(이게 가장 위에 올라온다)

 

 

 

예제 7-17 z-index 속성값에 따라 요소들이 쌓이는 순서 확인하기 ch07/17_z-index.html

<head>
    <style>
        #box1 {
            position: absolute;
            top: 0px; 
            left: 0px;
            width: 100px; 
            height: 100px;
            background: blue;
            z-index: 3;
        }
        #box2 {
            position: absolute;
            top: 30px; 
            left: 30px;
            width: 100px; 
            height: 100px;
            background: yellow;
            z-index: 2;
        }
        #box3 {
            position: absolute;
            top: 60px; 
            left: 60px;
            width: 100px; 
            height: 100px;
            background: green;
            z-index: 1;
        }
    </style>
</head>
<body>
    <div id="box1">box #1</div>
    <div id="box2">box #2</div>
    <div id="box3">box #3</div>
</body>

absolute는 zindex와 세트다

 

05 표 속성

1. 표 레이아웃

table-layout

  • 셀 안 내용의 양에 따라 셀 너비를 조절

fixed를 가장 많이 씀

 

예제 7-18 표의 레이아웃 설정하기 ch07/18_TableLayout.html

<head>
    <style>
        td, th {
            border: 1px solid black;
        }
        #tb1 {
            border: 2px solid red;
            table-layout: auto; /* 생략가능 */
        }
        #tb2 {
            border: 3px dotted teal;
            background-color: yellow;
            table-layout: fixed;
        }
    </style>
</head>
<body>
    <h2>table layout auto 예제</h2> 
    <table id="tb1">
        <tr>
            <th>table layout auto</th>
            <td>내용 분량에 따라서 자동으로 조절</td>
        </tr>
    </table>
<h2>table layout fixed 예제</h2>
    <table id="tb2" width="250px">
        <tr>
            <th>table layout fixed</th>
            <td>내용 분량과 상관 없이 고정</td>
        </tr>
    </table>
</body>

 

2. 표 테두리

예제 7-19 셀 테두리 출력하기 ch07/19_TableCollapse.html

<head>
    <style>
        td, th {
            border: 2px solid black;
        }
        #tb1 {
            border: 3px solid red;
            background-color: yellow;
            border-collapse: separate;  /* 붕괴 : 분리, 구분 -> 기본(표 외곽선 두줄로나옴)*/
            table-layout: auto;
        }
        #tb2 {
            border: 3px solid red;
            background-color: yellow;
            border-collapse: collapse;
            table-layout: auto;
        }
    </style>
</head>
<body>
    <table style id="tb1" width="350px">
        <tr>
            <th>table border-collapse</th> 
            <td>separate 적용</td>
        </tr>
    </table>
<p></p>
    <table style id="tb2" width="350px">
        <tr>
            <th>table border-collapse</th> 
            <td>collapse 적용</td>
        </tr>
    </table>    
</body>

예제 7-20 바깥 테두리와 셀 테두리 사이 간격 조정하기 ch07/ 20_TableSpacing.html

<head>
    <style>
        td, th {
            border: 1px solid red;
        }
        #tb1 {
            border: 2px solid green;
            border-spacing: 10px;    /* 상하좌우 */
        }
        #tb2 {
            border: 3px solid maroon;
            background-color: aqua;
            border-spacing: 20px 40px;    /* 첫번째 값: 좌우, 두번째 값: 상하 */
        }
    </style>
</head>
<body>
    <table style id="tb1" width="350px">
        <tr>
            <th>table border-spacing</th> 
            <td>10px</td>
        </tr>
    </table>
    <p></p>
    <table style id="tb2" width="350px">
        <tr>
            <th>table border-spacing</th> 
            <td>20px 40px</td>
        </tr>
    </table>
</body>

가장 바깥쪽 윤곽선과 셀의 윤곽선 사이의 공간 -> border-spacing

 

표는 왼쪽부터 시작해서 시계방향 순

 

 

3. 내용 정렬, 빈 셀 처리, 캡션 위치

예제 7-21 빈 셀을 보이게 하거나 숨기기 ch07/21_TableEmpty.htmlg.html

<head>
    <style>
        td, th {
            border: 1px solid blue;
        }
        #tb1 {                              /* 클래스로 쓸 줄도 알아야 함 */
            border-collapse: separate;
            empty-cells: hide;             /* 빈 셀은 숨겨라 */
        }
        #tb2 {
            border-collapse: separate;
            empty-cells: show;             /* 빈 셀도 표시해라 */
        }
    </style>
</head>
<body>
    <table id="tb1" border="1" width="300px">
        <tr>
            <td>국어</td>
            <td>영어</td>
            <td></td>                      /* 빈 셀 */
        </tr>
        <tr>
            <td>수학</td>
            <td></td>
        </tr>
    </table>
    <p></p>
    <table id="tb2" border="1" width="300px">
        <tr>
            <td>국어</td>
            <td>영어</td>
            <td></td>
        </tr>
        <tr>
            <td>수학</td>
            <td></td>
        </tr>
    </table>
</body>

 


예제
7-22 캡션 삽입하기 ch07/22_TableCaption.html

<head>
    <style>
        td, th {
            border: 2px solid black;
        }
        #c1 {
            border: 3px solid blue;
            caption-side: top;
            border-collapse: collapse;  
        }
        #c2 {
            border: 3px solid red;
            caption-side: bottom;
            border-collapse: collapse;  
        }
    </style>
</head>
<body>
    <table id="c1" border="1" width="300px">
        <caption>[table 1-1] Korea University</caption>
        <tr>
            <th>University</th>
            <th>Contact</th>
            <th>Country</th>
        </tr>
        <tr>
            <td>서울대학교</td>
            <td>홍현성</td>
            <td>KOREA</td>
        </tr>
    </table>
    <p></p>
    <table id="c2" border="1" width="300px">
        <caption>[table 1-2] USA University</caption>
        <tr>
            <th>University</th>
            <th>Contact</th>
            <th>Country</th>
        </tr>
        <tr>
            <td>Havard</td>
            <td>Jackie</td>
            <td>USA</td>
        </tr>
    </table>
</body>

 

728x90
728x90