
CSS 2.1은 놀라운 능력을 아주 많이 갖추고 있다. Psyked는 이 것을 응용하여 좌측의 그림에 보이는 것처럼 a[href^=”http:”]와 같은 셀렉터(selector)로 'a'태그의 'hfef' 링크 속성을 분석하여 특정한 아이콘을 자동으로 추가하는 방법을 소개했다. 이 것은 매우 유용하다. 'http:' 문자열에 '$' 오퍼레이터(operator)를 추가로 사용하면 파일의 확장자 까지도 분석할 수 있게 되는 것이다. 아래의 CSS 예제를 보자. 서버단 코드나 HTML, 자바스크립트의 도움없이 처리 할 수 있다는 관점에서 효율성이 뛰어나지만, IE6은 CSS2.1을 지원하지 않기 때문에 치명적이다.
/* external link */
a[href^="http:"] {
display : inline-block;
padding-right : 14px;
background : transparent url(/Images/link_icon.gif) center right no-repeat;
}
/* external link */
a[href^="mailto:"] {
display : inline-block;
padding-left : 20px;
line-height : 18px;
background : transparent url(/Images/mail_icon.gif) center left no-repeat;
}
/* pdf file link */
a[href$='.pdf'] {
display : inline-block;
padding-left : 20px;
line-height : 18px;
background : transparent url(Images/pdf_Icon.gif) center left no-repeat;
}
/* document file link */
a[href$='.doc'], a[href$='.rtf'], a[href$='.txt'], a[href$='.wps'] {
display : inline-block;
padding-left : 20px;
line-height : 18px;
background : transparent url(/Images/doc_icon.gif) center left no-repeat;
}
/* compressed file link */
a[href$='.zip'], a[href$='.gzip'], a[href$='.rar'] {
display : inline-block;
padding-left : 20px;
line-height : 18px;
background : transparent url(/Images/zip_Icon.gif) center left no-repeat;
}
Comments
Got something to add? You can just leave a comment.
css 앞으로 스크립트 언어로 전향할듯하군요.. ㅋㅋ 자바스크립 vs CSS
reply edit
스타일링과 관련된 것은 CSS가 들고 있는 것이 옳은 방향인 것 같습니다.
reply edit
아쉽습니다. ie6에서는 css2.1을 지원못하다니.. 으...;;;
reply edit
그러게 말입니다. IE6은 항상 걸림돌이지요.
reply edit
요즘 뭐 새로운거 하려고 하면 IE6이 발목 잡는 경우가 많네요. 점유율 1위인 브라우저니 무시할수도 없고...
reply edit
맞아요. 맞아요. 골치아픈 녀석이에요.
reply edit
흐미 머리야..
reply edit
왠지 CSS 에 포함되는게 맞는가 하는 생각이 드는 기능이네요
reply edit
최소한의 코드로 최대의 효과를 누리려다보니 정규식 비슷한 코드를 수용하게 된 듯 합니다. CSS가 지능화 되어 가는 것 또한 이미 예정된 일이 아니었을까요...
reply edit
왠지 제목 보고.. IE6에서 안될거라고 예상했다고나 할까.. ㅎㅎ;;; 진짜 IE때문에 못하는게 너무 많다는게 아쉽습니다. 다들 강제로 IE7로 업그레이드 시킬 방법은 없을까요? ㅠㅠ
reply edit
글쎄요... MS로부터 IE6의 지원이 끊어지기까지 기다리는 수 밖에는 없지 않을까요.
reply edit
오우.. 좋군요.
reply edit
네.. 멋지죠~
reply edit
Your Reaction Time!