본문으로 바로가기

placeholder 크로스브라우징

category Code Lab 2015. 11. 26. 17:02

placeholder 속성

placeholder 속성은 힌트(한 단어나 짧은 구)를 나타냅니다. 

이러한 힌트는 사용자가 데이터를 입력하는데 도움을 주는 목적입니다. 이것은 값의 예가 될수도 있고, 기대하는 형태의 짤막한 설명이 될 수도 있습니다.


속성값 : 속성 값은 줄바꿈 문자를 제외한 텍스트입니다.

HTML
<textarea placeholder="비밀번호" title="영문자, 숫자, 특수 기호를 조합한 6자리 이상의 비밀번호를 입력해 주세요."></textarea>



메모

긴 힌트나 조언 텍스트에는 title 속성 이 좀 더 적절합니다.

placeholder 속성을 label 요소 를 대체할 목적으로 사용해서는 안됩니다.

input 요소와 textarea 요소의 placeholder 속성과의 차이는 힌트 텍스트 '길이' 정도입니다.

보통 input 요소의 길이가 textarea 요소보다 짧기 때문입니다. 하지만 명세에서 '길이'에 대한 명확한 안내는 없고, 일반적인 UI 형태를 고려한 것으로 큰 의미는 없다고 보여집니다.


위와 같이 placeholder 는 input 요소와 textarea 요소에서 많이 사용되고 있습니다.

하지만 아쉽게도 IE9 이하에서는 해당 속성이 적용되지 않아 크로스 브라우징에 에로사항이 있습니다.


크로스 브라우징을 위해 IE9 이하에서도 위 속성이 적용될 수 있는 polyfill(대체방안) 을 소개하고자 합니다.



Placeholders.js 소개

위의 홈페이지에서 HTML5 placeholder 속성을 위한 javaScript polyfill 을 제공해 주고 있습니다.

JS 는 모든 브라우저에서 사용이 가능하며 가볍습니다.


홈페이지 : http://jamesallardice.github.io/Placeholders.js/

GitHub : https://github.com/jamesallardice/Placeholders.js/


1. input 요소와 textarea 요소에 적용됩니다.

2. 브라우저의 기본 스타일(native)로 랜더링되며, 스타일을 수정 가능하도록 placeholdersjs 라는 클래스를 사용할 수 있습니다.

3. 기본적으로 placehoder 속성을 지원하는 브라우저에는 영향을 미치지 않습니다.

4. IE6+ 이상에서 작동하고 다른 기타 추가적인 것들이 필요하지 않습니다.

5. IE8 에서는 input 요소의 password 타입의 플레이스홀더가 *** 와 같은 형태로 표현되어 집니다.



Placehoders.js 사용 방법

HTML 에서 사용할 폼 컨트롤을 생성하고, placeholders.js 를 다운로드 받아 body 의 끝 부분에 적절히 로드합니다.

HTML
<input type="text" name="name" placeholder="e.g. John Doe" />
<input type="password" name="password" placeholder="e.g. h4x0rpr00fz" />
<textarea name="message" placeholder="Your message goes here"></textarea>

<script src="placeholders.min.js"></script>



Placeholders.js 옵션

<html> 요소에 data-* 속성 값을 이용하여 추가기능을 설정할 수가 있습니다.


· data-placeholder-focus="false"

 IE 에서는 input 요소에 포커스을 받으면 placeholder 글자가 사라지는데, false 값이 설정되면 포커스를 받아도 사라지지 않고 글자를 입력할 때 사라지게 된다.


· data-placeholder-live="false"

자바스크립트를 통해 변경 또는 로드후에 페이지에 새 요소를 추가할 때 placeholder 를 업데이트 하지 않으려면 false 값을 설정해 줍니다.

페이지를 변경하지 않는다는 것을 인지하고 있다면 이 옵션값을 항상 false 로 설정해야 합니다.



Jaehee's WebClub



[출처] : WEBDIR


'Code Lab' 카테고리의 다른 글

jQuery CSS 메소드 사용자 오버라이딩  (0) 2015.12.29
matchHeight (jQuery)  (0) 2015.11.27
jQuery ellipsis - 반응형 말줄임  (0) 2015.11.25
tab menu UI  (0) 2015.11.20
동영상(유튜브) 탭 구현  (0) 2015.11.10