css 핵 종류

# Work/HTML/CSS 2011. 1. 14. 17:56 |
반응형

CSS hack 은 표준은 아니지만, 브라우져의 CSS 해석 오류를 이용하여 특정 브라우져만을 위한 코드를 넣는 방법이다.
표준으로 CSS 를 작성을 하고 표준을 해석하는 것에 문제가 있는 브라우져 만을 위한 코드를 사용하여 문제를 해결하는 것. 
 

1. 언더스코어(언더바)핵 (_)
div{ _width:300px; }
Win IE 4~6에서만 CSS적용

---------------------------------------------------------------

2. 닷핵 (.)
div{ .width:300px; }
Win IE6~7에만 CSS 적용

---------------------------------------------------------------

3. 해시 핵(#)
div{ #width:300px; }
Win IE 4~7, Mac IE 5, Opera 7, Mozilla계열, Firefox에 CSS적용

---------------------------------------------------------------

4.
스타핵
*html div{ 300px; }
Win IE 4~6, Mac IE4~5에 CSS적용

---------------------------------------------------------------

5. 스타7핵
html*div { width:300px; }
win IE5.5~6, Mac IE5, Safari에 적용

---------------------------------------------------------------
 

6. xmlns핵
html〔xmlns〕 div { width:300px; }
Mozilla, Firefox, Opera, Safari등 속성 선택자를 지원하는 브라우저에 적용

---------------------------------------------------------------

7. IE8 을 포함한 IE버전에만 적용하기
div { width:300px\; }
IE8 에서만 적용

---------------------------------------------------------------

8. root 가상클레스 핵
root div { width:300px; }
Mozilla, Firefox, Mac IE 5, Safari등 가상 클래스를 지원하는 브라우저에 적용

---------------------------------------------------------------

9.
IE 7적용하기
*:first-child+html div{width:300px;}
IE7 에만 적용되고, 이외의 브라우저는 앞에서 기술한 셀렉터의 속성 적용

---------------------------------------------------------------

10.
Netscape4 제외시키기
<link rel="stylesheet" type="text/css" href="/css/style.css" media="all"/>
Netscape는 media속성이 screen이 아닌 경우 외부 스타일시트를 읽지 못하는 버그가 존재함

---------------------------------------------------------------


11.
Win IE 3~4, Mac IE 4~4.5 Netscape4 제외시키기
@import url("/css/style.css")
Win IE 4, Mac IE4는 인용부호가 "가 아니면 읽지 못하는 버그 존재. IE 3과 Netscape 4는 @import 지원하지 않음

---------------------------------------------------------------

12.
Mac IE5 제외시키기
div { /*\*/ width:100px;/**/}

---------------------------------------------------------------

13.
Win IE 4~5 제외시키기
div/**/{width:100px;}

------------------------------------------------------------

14. Win IE 4~5, Mac IE4.5~5 제외시키기
div {width/* */:100px;}
Win용 IE4~5, Mac용 IE4.5~5에서는 적용 제외시키기

---------------------------------------------------------------

15.
Win IE6 제외시키기
div {width/**/:100px;}
Win용 IE6 에서는 적용 제외시키기

---------------------------------------------------------------

16. IE7, IE8
 에 적용하기
html>body div {width:100px;}
IE7,IE8 에서만 적용

---------------------------------------------------------------

17. Opera 9.27 및 하위버전에서만 적용하기
html:first-child div {width:100px;}
Opera 9.27 및 하위버전에서만 적용

---------------------------------------------------------------

18. Win IE6 패스필터

<!--[if IE 6]><link rel="stylesheet" type="text/css" href="/css/styel.css" media="all"/><![endif]-->

---------------------------------------------------------------

19. Win7 패스필터

<!--[if get IE 7]><link rel="stylesheet" type="text/css" href="/css/styel.css" media="all"/><![endif]-->
Opera 9.27 및 하위버전에서만 적용

---------------------------------------------------------------

20. 모던브라우저 패스필터 (Win IE 5.5이하, Mac IE5, Opera8이하, Netscape 4이하 제외)

@import "null?"{";
@import "/css/style.css";
@import "null?"}";


##### 브라우저별 핵

-webkit-, -moz-, -o-

  • webkit : 크롬, 사파리(web kit 기반)
  • moz : 파이어폭스
  • o : 오페라

지원 버전은 FF 3.5+, Safari 4+, Opera 10.0+

 


조건부 주석

 조건의 내용

예제 

 조건에 대한 설명

!

 [If !IE]

 IE가 아닐 경우(부정일 경우)에 참 값을 가진다.

 > IE가 아닐 경우 주석안의 소스 렌더링

lt

 [If lt IE 9]

 버전 값을 항상 필요로 하며 해당 버전 미만의 버전의 IE에서 

 항상 참 값을 가진다. (lt = less than)

 > IE9 미만의 브라우저에서 주석안의 소스 렌더링

lte

 [If lte IE 9]

 버전 값을 항상 필요로 하며 해당 버전 이하의 버전에서  

 항상 참 값을 가진다. (lte = less than or equal)

 > IE9 이하의 브라우저에서 주석안의 소스 렌더링

gt

 [If gt IE 6]

 버전 값을 항상 필요로 하며 해당 버전을 

 초과하는 버전의 IE에서 항상 참 값을 가진다. (gt = greater than)

 > IE6 초과(IE7이상)의 브라우저에서 주석안의 소스 렌더링

gte

[If gte IE 6] 

 버전 값을 항상 필요로 하며 해당 버전 이상의 버전의 

 IE에서 항상 참 값을 가진다. (gte = greater than or equal)

 > IE6 이상의 브라우저에서 주석안의 소스 렌더링

()

[If !(IE 7)] 

  세부적인 표현을 위한 형식이다. 수학의 계산과 프로그래밍과 

 동일하게 괄호 안의 표현식부터 먼저 처리된다.

  > IE7 브라우저가 아닐 경우 주석안의 소스 렌더링

&

 [if (gt IE 5)&(lt IE 7)]

 프로그래밍에서의 &&와 동일하게 "그리고"를 의미한다.

|

 [if (IE 6)|(IE 8)]

 프로그래밍에서의 ||와 동일하게 "또는"을 의미한다.

 > IE6 또는 IE8 브라우저일 경우에 주석안의 소스 렌더링



반응형
호정찐
반응형

skip navigation이란?

반복적인 네비게이션 링크를 뛰어넘어 페이지의 핵심부분으로 직접 이동할 수 있도록 건너뛰기 링크를 제공하는것.
사용자 특히 장애인분들(Tab키/방향키 및 보조기기의 단축키를 이용해야 하는 자)이 해당 페이지의 주요 내용이 위치한 본문으로 이동하기 위해서는 대메뉴-왼쪽메뉴 등.. 매 페이지를 볼 때 마다 반복적으로 제공되는 링크를 모두 거쳐야 하는데 이런 불필요한 행동은 웹 접근성을 저해하는 주요인이 되므로, 원하는 영역 즉, 본문으로 바로 이동할 수 있는 건너뛰기 링크를 반드시 제공해야 한다.

------------------------------------------------------------------------------------------------------------

건너뛰기 링크, 어떻게 구현하는것이 가장 좋을까?

1. 메뉴 건너 뛰기 상시 숨김
항상 보이지 않도록 처리하는 방법 입니다. 시각 장애인에게 유효한 방법 입니다. 단, 시각은 있으나 키보드만을 사용할 수 밖에 없는 지체 장애인 또는 키보드를 선호하는 사용자가 이용할 수 없으므로 권장하지 않습니다.
2. 메뉴 건너 뛰기 상시 보임
항상 보이도록 처리하는 방법 입니다. 시각 장애인, 키보드 사용자에게 모두 유용한 방법이나 시각이 있고 마우스를 주요 제어 수단으로 사용하는 사람에게는 이 링크가 오히려 공해가 될 수 있으므로 적극 권장하지 않습니다.

3. 키보드 접근시에만 보임
메뉴 건너 뛰기 링크를 키보드 접근시에만 보이도록 처리하는 방법 입니다. 키보드에 의존하는 사용자는 편리하게 이용할 수 있고 마우스에 의존하는 정상 시각의 사용자는 불필요한 링크를 키보드로 건너 뛸 필요가 없기 때문에 간결한 화면을 유지할 수 있어서 가장 권장하는 방법 입니다.

키보드 접근시에만 보이는 메뉴 건너뛰기 링크의 구현시 중요한 것은 화면에서 이 링크를 숨길 때 상자의 너비 또는 높이를 0px 으로 지정하면 이 링크를 인식하지 못하는 브라우저(Safari, Chrome, Opera)가 있으므로 반드시 1px 이상의 너비와 높이를 지정해서 브라우저 호환성을 확보해야 합니다.

          HTML

<div id="skipToContent"><a href="#content">메뉴 건너 뛰기</a></div>

          CSS


#skipToContent { position:relative;}
#skipToContent a { display:block; height:1px; width:1px; margin-bottom:-1px; overflow:hidden; text-align:center; color:#000; white-space:nowrap;}
#skipToContent a:focus,
#skipToContent a:active { height:auto; width:100%; padding:5px; margin-bottom:10px;}


# 메뉴건너뛰기 링크 적용 예 => http://naradesign.net/open_content/reference/navigation.html



더 자세한 내용 =>
http://www.jangkunblog.com/wp/skip-navigation-is-not-a-quick-link/



반응형
호정찐

<noscript>란?

# Work/HTML/CSS 2011. 1. 13. 18:25 |
반응형

<noscript>는 스크립트를 실행할 수 없는 브라우저에 대한 대비책으로.. 자바스크립트 실행을 꺼놓거나
스크립트를 실행할 수 없을때 대체페이지로 뜨는 부분.

웹접근성 품질마크를 획득한 사이트를 분석하다가.. 그 사이트의 사용예는 다음과 같았다.

<noscript><p>JavaScript 를 사용할 수 없습니다.<br />일부 콘텐츠가 정상적으로 작동하지 않을 가능성이 있습니다.</p></noscript>

이 <noscript>의 사용 여부에 대한 의견이 많이 분분하던데...
어쨌든 위 처럼 저렇게 단순한 안내 문구 보다는 스크립트를 대체 하여 보여줄 수 있는 콘텐츠를 삽입하는 방향이 좋다.

noscript 사용할때 인라인 요소가 바로 올수 없고 블록요소 (div,p)가 들어가야 한다고한다.
<script type="text/javascript"></script><noscript><p>대체 내용</p></noscript>

흠..
다음 포스트를 참고해보면 좋을 듯.

http://hyeonseok.com/soojung/accessibility/2010/02/27/549.html


/ 그..근데,, 점진적 향상 기법.. 이건 또 멀까? ㅠ,.ㅠ


반응형
호정찐