Post

원본소스 : http://html.nhndesign.com/uio_factory/ui_pattern/etc/11

NULI UIO팩토리에 있는 진행상태바 소스를 가져다가 메뉴용으로 사용하려고 보니 가변폭 지원이 안돼있더군욤..
그래서 각 단계별 가로폭이 유동적이게 되도록 소스를 약간 수정해봤습니다.
샘플로 쓰인 배경이미지(선택시)가 가로300px이라 각 단계별 가로폭이 300px이 넘어갈 경우에는 이미지 가로크기를 충분히 더 늘려서 사용해야 된답니다~

참고로 IE6이하 버전은 지원하지 않아요~ 모바일웹에 사용할꺼라 IE6이하는 깔끔하게 무시했습니닷-
이렇게 속편할 수가 ㅋㅋ

 

기본 배경이미지 : http://static.naver.com/groupware/2010/bg_progress.gif
선택시 배경이미지 : http://static.naver.com/groupware/2010/bg_progress_item.gif


<style type=text/css>
/*진행상태바*/
.prog{float:left;list-style:none;width:100%;height:25px;margin:0;padding:0;color:#666;overflow:hidden;background:url(http://static.naver.com/groupware/2010/bg_progress.gif);border-right:1px solid #e3e3e3;font-family:'돋움',dotum;font-size:11px;line-height:15px;letter-spacing:-1px}
.prog li,
.prog li a{background:url(http://static.naver.com/groupware/2010/bg_progress_item.gif) no-repeat;font-size:11px;white-space:nowrap;color:#666;}
.prog li{float:left;width:25%;margin:0 0 0 -13px;padding:0 0 0 13px;text-align:center;background-position:-287px 0}
.prog li a{display:block;height:20px;padding:5px 28px 0 13px;background-position:100% top;text-decoration:none;}
.prog li.last a{background:none;padding-right:15px;}
.prog li:hover,
.prog li:active,
.prog li:focus,
.prog li.on{position:relative;z-index:10;background-position:0 100%;color:#fff}
.prog li:hover a,
.prog li:active a,
.prog li:focus a,
.prog li.on a{background:url(http://static.naver.com/groupware/2010/bg_progress_item.gif) no-repeat 100% 100%;color:#fff}
.prog li.last:hover a,
.prog li.last:active a,
.prog li.last:focus a,
.prog li.last.on a{background-position:50% 100%;}
</style>

<ol class="prog">
    <li class="on"><a href="#">단계 1</a></li>
    <li><a href="#">단계 2</a></li>
    <li><a href="#">단계 3</a></li>
    <li class="last"><a href="#">완료</a></li>
</ol>

Post

다른 퍼블리셔가 제작한 사이트를 막바지에 넘겨받았는데, css를 보다보니 이런 문구가 있었습니다..

/* @charset 크롬,사파리에서 인식안하므로 사용안함 */

엥...? 이건 또 무슨소리...
브라우저에서 일반적으로 페이지를 확인하는 데에는 큰 문제가 없었지만
개발자도구로 소스보기 등을 하면 한글이 깨져서 나와 은근히 불편하더군요 -ㅅ-;;

(나중에 알고보니 한글이 깨지는 이유는 다른 데 있었지만요;;
css파일 저장방식이 utf-8인데 html은 euc-kr로 작성돼서 저장도 euc-kr로... -ㅅ-;;
css파일마다 인코딩방식도 다 제각각이고.. ㅋ 갈수록 태산
당연히 그런것쯤은 다 제대로 맞춰져 있겠지 하고 확인도 안했던 부분인데..쩝)


암튼 전 여태껏 css에 인코딩을 다 지정해주고도 크로스브라우징에 전혀 문제가 없었기에 이게 무슨 소린가 싶어 검색한 결과...

ㅋㅋ 그저 웃음만..

http://highca.com/109

내용인즉슨, 인코딩을 css 맨 첫줄에 작성하지 않을 경우 그 아랫줄이 무시된다는 것.. ㅋㅋ

난 어딘가에서 얼핏 인코딩을 첫줄에 쓰는게 좋다고 본것 같아 별생각없이 항상 그렇게 해왔었는데..
그것도 그렇지만 이 프로젝트 css 작성자는 무슨 자신감으로 일케 써놓은건지..;;
그래도 덕분에 뭐 하나 정확히 짚고 가게 돼서 오히려 다행인가요 ㅋ


(넋두리...)
하아.. 정말 이 프로젝트, 마크업은 말할것도 없고 css는 아주 가관입니당..
일케 해놓고 도망가버리고 뒷수습은 왜 전혀 상관도 없는 내가 해야 하는거냐구..!!
이러구나서 나중에 문제들 발견되면 나한테 다 뒤집어씌울 기세..
크로스브라우징 전혀 안됨, 그러면서 각종 핵이란 핵은 왕창 끌어다 썼음, 덕분에 여기저기서 스타일 꼬여서 개발 붙고 나니까 완전 엉망이 돼버렸음 ㅋㅋ
아~~~!! 억울하고 분통하고 속터지고 짜증나고 정말 미치겠음-
클라이언트는 이제와서 문제점들 잡아내서 수정해달라고 난리고
나는 프로젝트 내용파악 할 새도 없이, 소스 분석 할 새도 없이 닥치는대로 수정만 반복하고 있을 뿐이고 ㅠㅅㅠ
어디다 얘기할 데도 없고.. 애꿎은 블로그에 와서 투덜투덜..

Post


http://monoeyes.com/394

css 두 줄 추가만으로 정말 간단하게 해결 >ㅅ<
다른 브라우저 다 필요없고 IE만 맞추면 되는 프로젝트라 맘놓고 써서 문제 해결됐네요 ㅋ

Post


난 기본 줄간격값을 미리 지정해줘서 브라우저별로 통일을 시켜주는게 좋다고 생각하는데..
왜 내 주변엔 이걸 안해주는 사람이 일케 많은거지 ㅠㅅㅠ 내가 터치 안해도 되는 프로젝트라면 상관없지만 -ㅅ-;;
아 진짜 이것땜에,, 내가 만든것도 아닌데 유지보수하거나 마무리짓는 나는 맨날 핵써가면서 일일이 맞춰주느라 시간 다 보내고..!!! 그렇다고 전체페이지 이미 다 나온 상태인데 이제와서 기본줄간격 통일시켜줬다가 틀어지는 부분들 생기면..
에효.. 나만 더 고생하는건 안봐도 뻔한..;;

다른사람이 다 작업해놓고 마무리만 갑자기 휙 떠넘겨받았는데, 이게 크로스브라우징도 엉망이고 표준,접근성은 안봐도 뻔한데다가 수정거리도 한가득이어서..
그냥 혼자 열이 좀 받아있던터라 주저리주저리 떠들어봤어욤 ㅠㅅㅠ

http://doctype.kr/136

검색하다가 발견한 글인데, (귀차니즘 때문에 직접 실험해보는건 맨날 미루고 있던차에..)
이 분 정말 꼼꼼하게 실험을 잘 해놓으셔서 한번 읽고 지나가기엔 아까워 포스팅으로 남겨둡니당 ㅎ 


Post


http://mashable.com/2010/06/04/awesome-css3-techniques/?utm_source=TweetMeme&utm_medium=widget&utm_campaign=retweetbutton&utm_test=erwerwer

CSS3를 이용해서 구현할 수 있는 7가지의 놀라운 기술들이랍니다~
그러나 현실의 나에겐 그림의 떡 ㅋㅋ


사이트로 링크타고 가시면 글 중간중간에 해당 테크닉들에 대한 상세설명 및 예제페이지로 링크가 되어있어요~

버튼이나 라운드박스 같은건 정말 원츄 기능들이네요~ ㅋ  IE에서만 지원이 된다면 실무에서도 바로 쓰고 정말 좋을텐데.. ㅜㅅㅜ
클라이언트들이 거의 전부 익스를 기준으로 하기 땜에 css3를 사용한다고 해도 결국은 IE용으로 따로 만들어줘야 하고..
오히려 일만 늘어나는.... ㅋ 쩝..

Post


CSS의 속성은 특별히 정해진 규칙이 있는 것은 아니지만, 일정한 규칙에 따라 작성하면 우선 CSS를 관리하기가 많이 편하답니다~


아래는 모질라에서 제안하는 CSS 속성 지정 순서입니다. (굵은 글자는 많이 쓰이는 속성들)

  1. display
  2. list-style
  3. position
  4. float
  5. clear
  6. width
  7. height
  8. margin
  9. padding
  10. border
  11. background
  12. color
  13. font
  14. text-decoration
  15. text-align
  16. vertical-align
  17. white-space
  18. other text
  19. content


다음은 위의 순서를 좀더 간략하게 비슷한 것끼리 묶어 정리해본 것입니다. 제가 사용하는 순서죠 ^^

  1. display
  2. list-style
  3. position
  4. float , clear
  5. width , height
  6. margin , padding
  7. border
  8. background
  9. color , font , text-decoration , text-align , vertical-align
  10. white-space , other text , content

Post

http://www.css3.info/selectors-test/

자신의 컴퓨터 웹브라우저가 CSS 셀렉터 중 어느것들을 지원하는지를 테스트해볼 수 있는 곳입니다.


테스트 결과로 각 셀렉터가 세 가지 분류로 나뉩니다.
빨강 : unsupported    /    초록 : supported    /    주황 : buggy

각 셀렉터를 클릭하면 셀렉터 테스트 예제 페이지로 넘어가구요, 각 예제마다 지원여부를 다시 색상으로 표시해서 알려줍니다.
아래 이미지는 selector[attribute]의 예제 결과입니다.


예제 테스트 결과에서 색상표시는 약간 정확하지 못한 것 같기도 하네요.. 색상보다는 설명을 보는게 중요할 듯..

참고로, 위 스크린샷 이미지들은 제 컴퓨터 Internet Explorer 7.0의 테스트 결과입니다.

Post

출처 : CSS 핵 - 아마티

브라우저마다 HTML렌더링하는 방식이 조금씩 차이가 나고, 때로는 버그가 존재하는 관계로(망할 IE) 모든 CSS 코드가 모든 웹브라우저에서 똑같이 보이지 않습니다.
따라서 이러한 특성을 이용하여 특정 브라우저를 제외하거나, 특정 브라우저에서만 CSS를 적용하는 기법을 CSS 핵(Hack) 이라고 부르죠...

그래서 문법적으로 맞지 않거나, 특정 브라우저에만 적용되는 비표준인 경우가 많기 때문에 이러한 CSS핵은 어쩔 수 없는 경우가 아니면 사용하지 않아야 합니다. 또한, 단순히 눈앞의 문제만을 해결하기 위해 핵을 사용하면 나중에 페이지를 수정하거나 브라우저의 버전이 올라갈 때에 문제가 생기는 경우도 있구요.

CSS핵은 이런게 있다는 것도 알아두고, CSS핵을 사용하기 이전에 근본적으로 디자인을 수정하거나 다른 표준 태그로 해결하는게 좋을 듯 하네요.

어쨌든 일단 현존 CSS핵에 대한 정리!

http://centricle.com/ref/css/filters/

서핑하다 찾은 사이트인데 CENTRICLE.COM 의 CSS filters 페이지가 가장 잘 되어 있는 것 같습니다.
이제까지 알려진 CSS핵의 종류와 현존하는 거의 모든 웹 브라우저에서 적용되는지의 여부를 알기쉽게 표로 보여줍니다. 각 항목을 눌러보면 해당 핵의 예제도 볼 수 있네요.

http://www.communis.co.uk/dithered/css_filters/


웹표준 교과서에서 소개하는 CSS 핵 & 필터 안내 페이지

그 외에 평소에 자주 사용하는 팁으로서의 CSS 핵 정리는 아래에 정리.

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

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

Mac IE 5 배제하기
H1 { /* \*/ color:red; /* */ }
Holly 핵이라 하며, 주석 안의 내용이 적용되지 않음.

Win IE 4~5 배제하기
H1/**/ { color:red; }
셀렉터 뒤에 /**/ 삽입.

Win IE 4~5, Mac IE 4.5~5 배제하기
H1 { color/* */:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 /* */ 삽입.

Win IE 4~6, Mac IE 4, Netscape 4 배제하기
html>body H1 { color:red; }
셀렉터 앞에 html>body 삽입.

Win IE 6 제외시키기
H1 { color /**/:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 스페이스와 /**/ 삽입.

언더스코어 핵 (_)
H1 { _color:red; }
Win IE 4~6 에 적용.

닷핵 (.)
H1 { .color:red; }
속성 앞에 . 삽입. Win IE 6~7 에만 적용. 타 브라우저는 정확히 확인하지 못했습니다.
이 핵에 대해선 계속 확인중인데 블로그스피어나 여타 서적에는 전혀 언급이 없는 이상한 핵(?)입니다.

해시 핵(#)
H1 { #color:red; }
속성 앞에 # 삽입. Win IE 4~6, Mac IE 5, Opera 7, Mozilla계열, Firefox 에 적용.

스타 핵
*HTML H1 { color:red; }
셀렉터 앞에 *html 삽입. Win IE 4~6, Mac IE 4~5 에 적용.

스타7 핵
HTML*H1 { color:red; }
셀렉터 앞에 html* 삽입(공백없이). Win IE 5.5~6, Mac IE 5, Safari 에 적용.

xmlns 속성 핵
HTML[xmlns] H1 { color:red; }
셀렉터 앞에 속성 선택자를 삽입. Mozilla, Firefox, Opera, Safari 등 속성 선택자를 지원하는 브라우저에 적용.

:root 가상클래스 핵
:root H1 { color:red; }
셀렉터 앞에 :root 가상클래스 삽입. Mozilla, Firefox, Mac IE 5, Safari 등 가상클래스를 지원하는 브라우저에 적용.

Tantek 박스모델 핵
H1 {
    width:500px;
    voice-family: ""}"";
    voice-family:inherit;
    width:400px;
}
Tantek Celik 이 고안한 유명한 박스모델 핵. Win IE 4~5, Mac IE 4, Netscape 4 에서는 voice-family 속성 이전의 스타일 적용. 그외의 브라우저는 뒤의 속성 적용.

단순 박스모델 핵
H1 {
    width:500px;
    w\idth:400px; //Win IE 6, Mac IE 5, Mozilla, Opera, Safari
    \width:450px; // only Win IE 5
}

속성의 첫번째, 두번째 글자 사이에 \를 삽입하면 Win IE 6, Mac IE 5, Mozilla, Opera, Safari 에 적용.
추가로 속성의 앞에 \를 삽입하면 Win IE 5 에만 적용.

IE 7, Opera 적용하기
*+html body H1 { color:red; }
셀렉터 앞에 *+html body 삽입. IE 7, Opera 8 이후 버전 적용. Opera를 배제한 IE7 전용으로 하고 싶을 때는 *+html>/**/body 로 Opera 전용 속성 기술.

IE 7 적용하기
*:first-child+html H1 { color:red; }
셀렉터 앞에 *:first-child+html 삽입. IE 7에만 적용되고, 이외의 브라우저는 앞에서 기술한 셀렉터의 속성 적용.

Win IE 5 패스필터
@media tty {
i{content:"";/*" "*/}}; @import '/css/style.css'; {;}/*";}
}/* */


Win IE 5.5 패스필터
@media tty {
i{content:"";/*" "*/}}@m; @import '/css/style.css';/*";}
}/* */


Win IE 6 패스필터(?)
<!--[if IE 6]><link rel="stylesheet" type="text/css" href="/css/style.css" media="all" /><![endif]-->

Win IE 7 패스필터(?)
<!--[if gte IE 7]><link rel="stylesheet" type="text/css" href="/css/style.css" media="all" /><![endif]-->

모던브라우저 패스필터 (Win IE 5.5 이하, Mac IE 5, Opera 8 이하, Netscape 4 이하 제외)
@import "null?"{";
@import "/css/style.css";
@import "null?"}";



저의 주 작업 브라우저는 IE6, IE7, FF2, OP9 입니다. 개인적으로 CSS 핵은 거의 사용하지 않지만, 폼 (특히 체크박스, 라디오 버튼) 의 형태가 각 브라우저마다 틀려서 IE 6~7 에서 폼의 마진을 조절하기 위해 언더스코어 핵, 닷핵 만을 사용하고 있습니다.
덧붙여... 우리나라에서 최고의 사용률을 보여주는 IE가 CSS Spec을 제대로 지원하지 않으면서도 이를 업데이트하지 않는 이유는, 아이러니컬하게도 브라우저간 버그를 보정하기 위한 CSS핵도 큰 이유를 차지하고 있는 듯.
IE 6에서 갑자기 IE 7 또는 표준스펙 풀 지원으로 CSS 지원 스펙을 수정하면 현재 IE 6 기준으로 만들어진 사이트나 IE 6용 패스필터, 핵을 사용한 엄청난 수의 사이트(특히 우리나라)는 어떻게 될지...


중요 포인트!!
1. 구조를 설계할 때 절대 CSS핵 위주로 설계하지 말 것.
2. 단발성 CSS 핵보다는 패스필터 사용 권장.
3. CSS핵은 어쩔 수 없는 경우에만 사용할 것.

Post

# margin,padding,border 속성 개별 지정 방법

margin-top:5px;
padding-right:5px;
border-bottom:1px solid #f00;
border-left-color:#f00;



# margin,padding,border 속성 일괄 지정 방법 (단축속성)

margin:1px; 상,하,좌,우 모두 1px
margin:1px 2px; 상,하 1px  /  좌,우 2px
margin:1px 2px 3px; 상 1px  /  좌,우 2px  /  하 2px
margin:1px 2px 3px 4px; 상 1px  /  우 2px  /  하 3px  /  좌 4px

Post

<head> 범위 안에 link를 사용하여 참조

<link rel="stylesheet" type="text/css" href="/css/default.css" />



<style> 범위 안에 @import를 사용하여 참조

<style type="text/css">
   @import url("/css/default.css");
</style>



xml-stylesheet 처리 명령을 사용하여 참조

<?xml-stylesheet type="text/css" href="/css/default.css" ?>

Post

CSS : Cascading Style Sheet


XHTML이 표준문법이어야 한다.

CSS를 적용하기 전에 반드시 XHTML이 표준문법인지를 검사해야 한다. → W3C의 Markup Validation Service를 이용


XHTML 문서가 의미와 구조적으로 구성되어야 한다.

- <title>에는 사이트의 제목을 동일하게 넣어주는 것이 아니라 각 해당 페이지의 내용을 간략하게 넣어주어야 한다.
- 문서의 내용들 중에서 각 제목에 해당하는 내용은 단계에 맞게 <h1>~<h6>을 이용해서 순서대로 표현을 해주어야 한다.
- <ol>,<ul>,<p>,<blockquote>,<ins>,<del> 등과 같은 태그들을 이용해서 컨텐츠가 의미하는 바를 표현해 주어야 한다.
- <script>,<style>과 같은 태그들은 가능하면 외부문서로 분리하여 HTML의 크기를 줄이는 것이 좋다.


CSS가 표준문법이어야 한다.

- CSS의 주석 구문은 /*css comment*/이다. ( <!--html comment-->과 //html comment은 HTML의 주석구문임.)
- CSS의 속성값들 중 0을 제외한 모든 값들은 단위를 표기하여야 한다.
- CSS의 각 구문의 끝은 세미콜론(;)을 사용해 표시해 주어야 한다.
- 컬러값을 사용하는 방법은 세 가지가 있다.
  ① 컬러의 이름 : red
  ② #rrggbb 또는 #rgb : #ff0000 / #f00
  ③ rgb(r,g,b) : rgb(255,0,0) / rgb(100%,0%,0%)


CSS를 표준대로 잘 구현한 브라우저를 이용해야 한다.

CSS를 사용하여 사이트를 제작할 때에는 표준을 잘 준수하는 브라우저를 이용하고 제작이 끝난 후에 가장 많이 사용되는 브라우저에 대한 튜닝을 진행하는 것이 효과적이다.

※ Web Standards Project의 캠페인 사이트인 Browse Happy에서는 Firefox, Mozilla Suite, Opera, Safari 4개의 브라우저를 표준 준수 브라우저로 일반인들에게 추천하고 있다.
▲ top