<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>제목 없음</title>
    <style type="text/css">
        div.fileinputs {
 position: relative;
}

div.fakefile {
 position: absolute;
 top: 0px;
 left: 0px;
 z-index: 1;
}

input.file {
 position: relative;
 text-align: right;
 -moz-opacity:0 ;
 filter:alpha(opacity: 0);
 opacity: 0;
 z-index: 2;
}

    </style>
    <script language="javascript">
        var W3CDOM = (document.createElement && document.getElementsByTagName);

function initFileUploads() {
 if (!W3CDOM) return;
 var fakeFileUpload = document.createElement('div');
 fakeFileUpload.className = 'fakefile';
 fakeFileUpload.appendChild(document.createElement('input'));
 var image = document.createElement('img');
 image.src='pix/button_select.gif';
 fakeFileUpload.appendChild(image);
 var x = document.getElementsByTagName('input');
 for (var i=0;i<x.length;i++) {
  if (x[i].type != 'file') continue;
  if (x[i].parentNode.className != 'fileinputs') continue;
  x[i].className = 'file hidden';
  var clone = fakeFileUpload.cloneNode(true);
  x[i].parentNode.appendChild(clone);
  x[i].relatedElement = clone.getElementsByTagName('input')[0];
  x[i].onchange = x[i].onmouseout = function () {
   this.relatedElement.value = this.value;
  }
 }
}

    </script>
</head>
<body>   
    <div class="fileinputs">
     <input type="file" class="file" />
     <div class="fakefile">
      <input />
      <img src="images/btnImgSearch.gif" />
     </div>
    </div>

</body>
</html>

출처 : 아마도 www.quirksmode.org -ㅗ-);

Posted by zany2974
,

<table cellpadding="0" cellspacing="0" summary="테이블 정보">
 <caption>테이블 타이틀, 목적</caption>

<colgroup>
<col  />
<col  />
<col  />
</colgroup>

    <thead>
      <tr>
         <th scope="col" abbr="테이블관련">테이블 관련1</th>
         <th scope="col" abbr="테이블관련">테이블 관련2</th>
         <th scope="col" abbr="테이블관련">테이블 관련3</th>
      </tr>
   </thead>
    <tbody>
      <tr>
         <td scope="row">테이블 관련1-1번 내용</td>
         <td>테이블 관련1-2번 내용</td>
         <td>테이블 관련1-3번 내용</td>
      </tr>
   </tbody>
    <tfoot>
      <tr>
         <td scope="row">테이블 관련1-4번 내용</td>
         <td>테이블 관련1-5번 내용</td>
         <td>테이블 관련1-6번 내용</td>
      </tr>
   </tfoot>
</table>


thead, tbody, tfoot

여러개의 행을 하나의 그룹으로 묶어주는 엘리먼트 입니다.
테이블 안에서 이 3개의 태그는 사용이 제한이 있는데 thead와 tfoot는 한 테이블에서 하나만 작성을 할 수가 있습니다. 하지만 tbody의 경우는 여러번 사용해도 무방합니다.

header 의th 태그를 적용하면 글자가 bold체로 굵게 표시되고 가운데 정렬을 하게 됩니다.

summary

표의 목적이나, 음성, 점자등 보이지 않는 메디아 표현의 구조를 제공합니다.
해당 테이블의 내용이 뭔지를 축약적으로 나타낼 수 있습니다. 이미지 태그의 alt 속성과 같다고 할 수 있습니다.

caption 

** 닫는 태그 필요

테이블의 열이나 행 앞에 header나 caption을 넣어 줄때 사용합니다.
caption태그는 반드시 table태그 블록에 포함 되어야 합니다.
default 정렬방식은 중앙정렬 입니다.

▶ 속성

① align = top | left | right | bottom
              top : 행의 상단에 배치
              left : 문자열을 왼쪽에 정렬
              right : 문자열을 오른쪽에 정렬
              bottom : 행의 하단에 배치

② class : css의 class 선택자를 지정합니다.

③ id : css의 id 선택자를 지정합니다

④ style : css스타일을 지정합니다.

colgroup  

** 닫는 태그 선택적

표의 세로줄 그룹을 만들때 사용합니다. table요소내에서 caption뒤 thead 앞에 위치 해야 합니다.

▶ 속성

① class : css의 class 선택자를 지정 합니다.

② id : css의 id 선택자를 지정합니다.

③ style : css 스타일을 지정합니다.
             (적용할 수 있는 스타일은 border, background, width 입니다.)

④ span : 그룹화할 세로줄의 개수를 지정합니다.

⑤ width : 세로줄 그룹의 너비를 지정합니다.

⑥  align = top | left | right | bottom | center 
               (ie에서만 적용됩니다. 구글이나 파이어폭스에서 적용안됨)

col

** 닫는 태그 없음

표의 세로줄을 지정할때 사용합니다. table요소내에서 caption뒤 thead 앞에 위치 해야 합니다.
colgroup과 달리 col은 세로줄을 구조적으로 그룹핑하지 않으며 단순히 하나 이상 세로줄에 공통적인 속성을
정의 합니다.
col요소는 table요소 안에 바로 포함되거나 colgroup 안에 포함될 수 있습니다.
col요소가 colgroup안에 있을때 col속성은 colgroup속성보다 우선합니다.

▶ 속성

① class : css의 class 선택자를 지정 합니다.

② id : css의 id 선택자를 지정합니다.

③ style : css 스타일을 지정합니다.
              (적용할 수 있는 스타일은 border, background, width 입니다.)
  
④ width : 디폴트 값은 픽셀입니다. %로도 사용이 가능합니다.

     구문 : <col width="10" />,  <col width="10%" />


⑤ span : 그룹화할 가로줄의 개수를 지정합니다.

scope

데이터의 header 정보를 제공합니다.

col : 그 열의 header의 정보를 제공합니다.
row : 그 행의 header의 정보를 제공합니다.

위의 테이블에서 보시다시피 겉으로는 scope 속성이 적용되었는지 알 수 없습니다.
하지만 scope속성을 적용함으로써
'테이블 관련1' 에 해당하는 데이터는 '테이블관련1-1번내용', '테이블관련1-4번내용' 이고
'테이블관련 1-1' 에 해당하는 데이터는 '테이블관련1-2번내용', '테이블관련1-3번내용'이라는
정보를 브라우저에게 알려주게 되는 것입니다.

abbr (헤더의 요약)

스크린리더가 테이블의 내용을 읽어 내려갈때 테이블의 내용(td) 보다는 상단header(th)부분부터 읽게 될 것입
니다. 만약 이때 헤더(th) 내용이 길게 들어가면 스크린리더가 행을 읽을때마다 헤더의 내용을 계속 반복해서
읽게 될 것입니다.
abbr속성은 이렇게 길게 들어가 있는 헤더의 내용을 단축해서 표현해주는 역활을 합니다.

 

 

출처 : http://yumtang.tistory.com/14

Posted by zany2974
,

웹사이트 및 사이트를 만든 회사의 정보를 제공하는 footer의 위치는 대부분 맨 아래쪽에 위치합니다.
사이트별 차이라면, 컨텐츠가 끝나는 부분에 위치하느냐 아니면 브라우저의 길이에 상관없이 항상 브라우저 하단에 위치하느냐 일 것입니다.

한게임재팬에서 제작하고 있는 A프로젝트의 경우, div 레이아웃이면서 footer는 항상 브라우저 하단에 위치하도록 결정되었습니다.
또한 header와 footer는 width 100% 이면서 백그라운드 색상이 있고, 컨텐츠 영역은 width 값이 고정되어 있습니다.

지금부터 브라우저 길이에 상관없이 footer를 항상 브라우저 하단에 위치시키는 방법에 대해 알아보도록 하겠습니다.

높이를 100%로 한다는 것의 % 의 기준은 상위 엘리먼트의 높이 값입니다.
그러므로 레이아웃 div 박스의 높이가 100%가 되려면, 상위 엘리먼트인 body 태그와 body의 상위 엘리먼트인 html 태그 역시 높이가 100%로 지정되어야 합니다.

html, body { height: 100%; margin: 0; padding: 0; } 
#header { height: 100px; background: #ddd; position: relative; z-index: 1; }
#content-box { min-height: 100%; margin: -100px 0 -50px; }
*html #content-box { height: 100%; }
#content { padding: 100px 0 50px; } #footer { height: 50px; background: #ddd; }
<div> header (height 100pixel) </div>
<div>
<div>
<p>contents</p>
<p>contents</p>
<p>contents</p>
</div>
</div>
<div> footer (height 50pixel) </div>

위 소스를 도식적으로 나타내면 다음과 같습니다.(그림 상의 색상은 표현을 위한 것으로 CSS 소스와는 관련없음)


content-box에는 컨텐츠 길이에 따라 height 값이 조절되도록 [min-height:100%] 속성을 부여합니다. 단, IE에서는 min-height 속성이 구현되지 않으나 height가 min-height 역할을 하므로 IE용 핵을 사용하여 height:100% 속성을 부여합니다.

header와 footer 은 width가 100% 이어야 하므로 content-box 안에 포함되지 않아야 하나 content-box에 height를 100%로 적용하였으므로, 브라우저의 높이는

  content-box 높이 100% + header 높이 100px + footer 높이 50px

를 더한 값이 되므로 브라우저 높이 100%에 150px 이 더해져 원치 않는 스크롤이 생기게 됩니다.
따라서, content-box 에는 [margin:-100px 0 -50px 0] 를, content 에는 [padding:100px 0 50px 0] 를, header에는 [position: relative; z-index: 1;] 값을 부여하여, header 는 content 위에 나타나고, 실제 컨텐츠는 header 아래쪽에서 시작되도록 합니다.
그리고, content 박스는 아래쪽에 50px 의 패딩값을 가지므로, 길이가 길어져 스크롤이 생기더라도 footer가 컨텐츠 내용을 덮는 경우는 없을 것입니다.

위 소스는 IE5.0 이상 7.0 이하 및 Firefox, opera 최신 버전에서 잘 동작합니다.

참고사이트 : 실전 웹 표준 가이드 (2005)

 

출처 : http://html.nhndesign.com/634

'웹표준' 카테고리의 다른 글

파일필드 버튼 이미지 대처(크로스브라우징)  (0) 2011.01.18
웹표준 테이블 관련 설명  (0) 2011.01.18
Posted by zany2974
,