1. 초간단 붙여넣기로 적용하기 아래소스를 html 헤드에 붙여넣는 방법입니다. 폰트네임, 주소, 크기만 설정해주시면 되는거죠~ 단, 이렇게 초간단 방법으로하면 모든(아래해당되는) 글자에 적용되어 기존(따로설정된 css)의 설정을 해칠 수 있는 문제가 있습니다. <style type="text/css">
<!--
@font-face {font-family:seevaa2007; src:url(http://~/seevaa2007.eot);}
body,div,table,tr,td,p,span{font-family:seevaa2007; font-size:12px;}
a:link {font-family:seevaa2007; font-size:12px;}
a:visited {font-family:seevaa2007; font-size:12px;}
a:hover {font-family:seevaa2007; font-size:12px;}
a:acvite {font-family:seevaa2007; font-size:12px;}
-->
</style>
2. style.css 를 이용해 최적으로 적용하기(기존의 style.css가 있는경우, TT나 Tistory) 1번과 같은 방법은 간편하긴 하지만 기존의 폰트설정을 해치게 되고, 또한 세밀하고 최적화된 적용엔 한계가 있죠... 2번째 방법은(위의 방법과 별반 다를 건 없지만) 기존의 style.css을 이용한 좀더 구체적인 방법입니다.
먼저, style.css 를 열어서 아래소스를 붙여넣습니다. @font-face { font-family:seevaa2007; src:url(images/seevaa2007.eot);} 그리고, 아래와 같이 원하는 부분의 폰트 설정을 바꿔줍니다. style.css를 열고 해당부분을 찾아 적용을 해야하니 첨이라면 조금 복잡할 수 있습니다.
예를 들어 본문(.article)만 적용하고싶다면?? .article { font:12px Gulim, Dotum;} >> .article { font:12px seevaa2007, Dotum, verdana;} 이렇게 하시면 다른 부분의 설정을 그대로 두고 원하는 부분만 적용이 되기때문에 원하지 않는 글자깨짐같은 건 없을 겁니다. 만약 생긴다 하더라도 그부분을 style.css에서 찾아 안깨지도록 설정해주면 되니까요~ 주의할 점은 크기에 신경쓰셔야하는 겁니다. 코멘트수와 같이 작게 지정된 경우는 웹폰트보다는 그설정 그대로 두시는게 보기좋습니다. 그래도 적용하시려면 깨지지 않도록 크기지정에 신경쓰셔야 합니다.
by Anna 안나 2009. 1. 28. 00:06
CSS3에 대한 자료가 아직 네트워크상에 충분하지는 않은 상황이다. 몇군데 블로그나 개발자 포럼등지에서 모듈화니 어쩌니 구조적인 부분들에 대한 이야기고 조금씩 있고 몇가지 화면 출력에 대해 새롭게 구현된 튜터리얼을 몇가지 소개하는 정도. 이미 CSS3에 대한 로드맵은 Draft 상태로 오래전에 나왔고, 새롭게 추가된 재미난 Function과 Selector를 확인해 볼 수 있는 서비스도 있다. 인터넷 익스플로러나 파이어폭스의 차후 버전에서부터 인식되는 것을 기대해 볼 수 있을 듯 하다.

디자이너로서 CSS는 공짜 웹 개발 애플리케이션이나 마찬가지다. 마크업과 프로그래밍은 HTML의 발전과 관계가 있지만 디자이너들에게는 CSS의 발전이 곧 표현의 자유를 더욱 확장시킬 수 있는 Key가 되는 것이다.

웹이라는 매체를 시각적으로 표현하는 방법에 있어서는 유료 애플리케이션 Adobe Flash와 WC3에서 재정하여 공표하는 CSS 두가지로 축약되고 있다. Flash는 이미 두말 할 것 없는 하나의 대표적인 ? 출판 매체로서 자리매긴지 오래이고, 아이러니하게도 웹 브라우저 스크린 출력의 근간이 되는 CSS가 각광을 받기 시작한것은 이미 한참 후의 일이 되어버렸다.

그도 그럴것이 CSS 2 이전버전의 CSS는 정말 전자문서 정도로밖에 볼 수 없는 단순 서식형 페이지밖에는 작성 할 수 없었던 것이다. Interactive라는 말은 CSS와는 절대 어울리지 않는 말이었다. 하지만 CSS도 발전을 거듭함에 따라 문서안에 다양한 Interactive 요소가 가미되기 시작했다.

사실 CSS가 발전하는 모델은 예상하기가 무척 쉽다. 그냥 지금까지 자바스크립트나 플래쉬의 도움으로만 가능했던 동적 액션들을 점차 CSS 자체 코드만으로 해결 할 수 있도록 흡수해 가고 있다는 것이다. 지금까지 디자이너들은 정말로 창조적이고 기발한 아이디어들로 CSS만으로는 불가능 했던 한계들을 극복해왔다. 그 극한의 귀찮음으로 이루어진 기술들 (테이블에 그림자를 넣고, 박스의 모서리를 둥글게 하는 따위의 작업들)을 이제는 간단하게 몇줄의 코드로 작업과정을 최소화 시키고 있는 것이 앞으로의 CSS 모델들이다.

이제와서 CSS가 각광을 받는 것은, 그동안 플래쉬나 기타 미디어에 의존해서만 창조되었던 여러가지 비쥬얼적인 액션들도 CSS에서 조금은 다른 방식으로, 하지만 결코 유치해 보이지는 않는 방법으로 구현해 낼 수 있기 때문이다. 플래쉬 사이트를 드나드는 사람들은 이미 무의식적으로 플래쉬의 화려한 동적 움직임에 의해, 클릭 이후에는 반드시 어떤 형태로든 액션이 따라야 한다는 무의식적인 기대(?) 혹은 지루함을 예측한다. 플래쉬 제작자들도 마찬가지 병에 시달린다. 링크가 걸리는 어떤한 매체든 클릭이 이루어진 후에는 무척이나 대단한 모션을 넣어야만 하지 않을까 하는 강박관념에 몇시간이고 아이디어를 쥐어 짜낸다. 메뉴를 클릭하면 그냥 다음 페이지가 나타나는 당연한 결과는 절대로 용납치 않는 것이다. 로딩바를 보여주든 메뉴가 날라가면서 사라지든간에 무슨 수를 써서라도 액션을 주려한다.

CSS는 이렇게 어떤 복잡한 액션에 길들여진 네티즌들에게 약간은 이질적이면서도 전혀 유치하지 않은 상당히 다른 결과를 보여준다는 점에서 굉장한 주위환기 효과를 얻는다. 이 사이트는 분명히 플래쉬 사이트가 아니므로 딱딱 할 것이다라는 그간의 고정관념을 확실히 깨어줌과 동시에 의구심까지 불러 일으키는, 그리고 그런 효과들을 주는 방법 자체가 플래쉬 액션 코드를 짜는 것보다 수백배는 간단하다는 점이 네티즌과 개발자 모두에게 흥미가 당기는 것은 아닐까.

아무튼 CSS 3에서는 여러가지 재미있는 Function들이 있고 @font-face와 같이 IE에서만 작동하던 웹 폰트 스타일 등도 정식 코드로 인정받게 되고 어쩌면 CSS는 갑자기 불어닥친 붐이 아닌, 본래 있어야 할 자리를 이제서야 찾아들어가는 것이 아닌가 생각해본다.
by Anna 안나 2009. 1. 5. 13:18
오늘 구글의 문서 서비스의 코드를 뜯어보고나서 깨달았다.
div로는 구현할 수 없는 table만의 유용한 속성이 존재했던 것이다..

하나 예를 들어보자면..

div 에서 height=100% 값을 쓰면, 화면전체를 매꾸게 된다.
하지만 table의 경우 다르게 쓸수있다.
다음 코드를 보면 쉽게 이해할 수 있을것이다.

<body>
<table height="100%">
<tbody>
<tr height="100px">
</tr>
<tr>
<td height="100%">
<iframe src="test.html">
</td>
</tr>
</tbody>
</table>
</body>

레이아웃이 대충 그려지시는지? :-)

body 전체에 height=100% 값을 가진 테이블을 전체적으로 레이아웃을 잡았다.
이점을 하나하나 꼬집어본다면..

1. 모든 창크기에서, body에는 스크롤바 따위는 생기지 않는다.
2. 위에 100px의 tr은 항상 위에고정 가능하다.
3. 두번째 tr에서 아이프레임 대신에
스타일에 overflow:scroll; 값을 가진 div를 넣어도 된다.

한마디로, 상단 100px 짜리 tr은 "position:fixed" 값과 동일한 결과를 가져올 수 있는것이다.




왜 굳이 간단히 "position:fixed" 를 쓰지않고 위 방법을 썼는가..에 대해서 답하자면
간단하다. IE6을 위해서이다..
IE6에서 스크립트를 이용하여 "position:fixed" 값을 적용할수는 있지만
개인적으로 스크립트는 페이지로드마다 영향을준다...(트래픽발생)
차라리 그런 js보다 몇바이트쯤 더 나가는 위의 방법을 권하고싶다.


난 여기서 중요한 깨달음 하나를 발견했다.

레이아웃을 꼭 DIV로만 짜야되는것은 아니다

...table레이아웃을 천대시하기만 했던 나였는데,
사고가 바뀌었다.^^

편리한 table, 뒤늦게 알아주었어..

posted by dayeong.(praday.com)
by Anna 안나 2009. 1. 3. 20:38
모든 디자이너가 해야할 9가지 CSS 원칙 이라는 나름 재미있는 포스팅이 올라와 번역하여 소개한다.


이미 웹개발 UI가이드는 국내에도 많이 소개되어있고

웹표준 강의시에도 항상 나오는 이야기이다.


또한 네이버UI가이드(http://html.nhndesign.com/)가 공개됨으로써

많은 분들이 이곳을 참고하고 있기도하다.


네이버 UI가이드 역시 100% 완벽하지 않다.

갑론을박해야할 요소도 있긴 하지만

이정도 분량의 꼼꼼한 가이드을 공개한것 역시 네이버가 한일중에서는 정말 칭찬할 만한 일이라고

생각한다.



1. 하위선택자 사용에 따른 들여쓰기

필자의 견해 :
하위선택자를 사용했을때 이에 맞춰 들여쓰기를 하면 훨씬 코드 보기가 수월해진다.
이미 대다수의 홈페이지에서 이렇게 사용하고 있는 것같다.


2. 그룹화와 CSS의 주석

필자의 견해 :
의미있는 CSS끼리 그룹화 시키고 보기 쉽게 주석처리
물론 모든 네이밍작업이 그렇지만 CSS 네이밍도 사람들마다 조금씩 다르다
어떤이는 영어를 그냥 발음나는대로 영어로 옮기는 사람이 있는 반면에
영단어를찾아서 쓰는 사람이 있고
아니면 영어동사까지 포함해서 쓰는 사람도 있고
영문네이밍은 정말 사람마다 다양하다 이때 주석으로 이 부분이 어디에 해당하는 부분임을 명시하면
좀더 보기 수월한 코드가 된다.


3. 스타일 선언은 한줄에

필자의 견해 :
물론 CSS 코드가 길어지면
한줄에 하나의 속성만 지정하는 방식은 괜한 공백을 많이 잡아먹어서
용량이 커지기 때문에 불필요하지만
확실히 한줄에 하나의 속성만 적어놓는것이 가독성이 좋을때가 많다
때에 따라 둘을 적절히 사용하는 센스가 필요하겠다.

4. css 파일의 분리

필자의 견해 :
이곳의 예제에서는 layout.css, typography.css 등으로 css 파일을 분류하였는데
물론 이런식으로 분류도 있겠지만
나는 메뉴섹션별로(우리나라의 웹사이트는 대게 섹션별로 공통되는 디자인이 많다)
CSS파일을 구분하여 사용한다


5. 엘리먼트 초기화

필자의 견해 :
브라우저마다 엘리먼트의 default style일 틀리므로 반드시 초기화 할것.

6. 사용되는 색상코드를 한곳에 모아 적어 둔다

필자의 견해 :
확실히 도움되는 정보다
해당 웹사이트에서 주로 사용되는 폰트명과 폰트사이즈 컬러셋을 모아놓고 이를 미리 정의해두면
색상 가이드라인이 확실해질수 있겠다

실제로 프로젝트 경험에 의해 특정 콘텐츠마다 각각의 색상과 폰트와 line-height, 마진을 가진 경우를 보았다.
예를 들면 A에 관한 콘텐츠는 어떤 폰트와 어떤 색상을 사용하며 하단에 마진값 얼마를 반드시 가져야 한다. 이런종류.
이럴때 해당 프로젝트에 처음 투입되는 사람은 그러한 규칙이 이미 있는지 인수인계를 못받았을 확률도 많다.
이 때 이러한 규칙에 대해서 짤막하게(길게 주석으로 남긴다는 것은 절대 하지 말아야할것. 길게 주석을 적어 넣을바에야 차라리 ppt또는 문서 파일로 UI 가이드라인을 만드는게 낫다.) 적어 놓으면 갑작스럽게 관계자가 아닌사람이 UI를 수정한다거나 할때 좋은점도 있는 것 같다.




7. 의미있는 네이밍

필자의 견해 :
가장 중요하다
네이밍기법에 항상 언급되는 내용이지만
green 이라던지 left, right 등의 네이밍보다는
header, menu, nav, footer등의 의미있는 네이밍이 좋다.



8. 알파벳순서의 프로퍼티정의

필자의 견해 :
사실 나는 이부분은 찬성하지 않는다
자주쓰이는 속성 순서대로, 레이아웃에 영향을 많이 주는 순서대로 나열하는 것이
경험상 코드가독성에 아주 좋다.
알파벳순으로 나열하게 되면 정작 중요한 width같은 속성은 거의 맨뒤에 위치하게 되는데
이것보다는 중요한 순서대로 프로퍼티를 나열하는게 경험상 좋은것 같다.
필자는 display,position,float,width,height,padding,margin,border,background 순으로 사용한다
물론 이부분 역시 네이버UI가이드에서 사용빈도에 따른 프로퍼티 나열이 언급되어있다.



9. 유용한 css 클래스 유지

필자의 견해 :
유용한 css 클래스를 미리 정의하는 것은 아주 좋은 행위지만
이곳 예제에서는 width100이라던지 alignRight라던지
7번에서 언급한 의미있는 네이밍이 되어 있지 않다

필자는 clear라는 css클래스를 global css에 선언하는데
IE에서 clear:both시에 상단에 마진이 생기는 현상을 제거하기 위해

.clear {clear:both;height:0;line-height:0;font-size:0;}

이렇게 사용하고 있다.

현석님의 트랙백을 보고나니 내가 이 9번 문항에 대해서 잘못 코멘트한것 같다.
원 본에서의 유용한 CSS의 클래스의 의미가 단순히 표현을 위한 width100, width75 이런 클래스가 유용한 클래스라고 말한것이라면 정말 절대 삼가해야할 것이다. 현석님 말대로 .mt10 {margin-top:10px;} 이런 클래스는 정말 삼가해야할 일이다. 이걸 클래스로 지정해서 사용하느니 인라인 스타일시트로 적용하는게 훨씬 나은 방법이다.
저는 유용한 클래스의 의미를 좀더 넓은 범위의 유용한 클래스(의미있는 네이밍이 되어있는 특정 콘텐츠 형식에 대한 클래스화)라고 잘못 해석하고 이해한것 같아서 추가 코멘트 남깁니다.




모두 아주 좋은 내용이다.

계속해서 HTML과 CSS를 사용하여 표현과 문서를 분리하는 곳이 많아졌다.

이런 중요한 개발방법론은 계속해서 공유되어져

새로 웹퍼블리셔가 되고싶은 사람들에게 많은 도움이 되었으면 좋겠다.
by Anna 안나 2008. 12. 21. 23:21
CSS를 사용하기 이전에 예상가능한 class군을 설정하고서 제작을 하는 것이 좋습니다. class의 네이밍에 있어서도 편리함이 있고, 제작자가 아닌 다른 이가 코딩가이드만 보고서도 그 내용을 쉽게 파악하기도 쉬우며, 그 결과물만으로도 추후 제작될 사이트 디자인에 있어 디자이너들도 어느 정도의 군을 나누게 됨으로서 조금이나마 체계적인 디자인에 도움을 줄 수 있습니다. 1. 기본적인 Text Style 지정 전체적으로 쓰일 기본적인 태그들의 Style을 지정합니다. td, div, span, p, font, a, { text-decoration:none ; font-size:9pt ; font-family : 돋움, Dotum,Helvetica ; color:#454545 } 이는 먼저 지정된 class의 속성을 그 이후의 class에서 상속받는 것을 이용한 것입니다. 몇몇 에이전시에서는 이러한 방법이 다수의 제작자들에게 공통으로 쓰이기 힘들다는 이유로, 또는 사이트 전체에 로드를 가져온다는 이유로 각각의 class마다 지정하는 방법을 쓰기도 합니다만, 일부는 이러한 속성을 모르기 때문입니다. 2. Logical 태그의 속성을 지정합니다. <abbr>, <acronym>, <dfn>, <address>, <cite>, <q>, <code>, <kbd>, <samp>, <var>, <del>, <ins>, <em>, <strong> 의 태그에 대한 스타일을 지정합니다. 위의 태그들은 각각 고유의 text style을 가지고 있습니다. 하지만, 그런 text style들은 영어권의 사람들의 눈에 익숙한 방법입니다, 한국에서는 그 효용성이 감소하며, 이탤릭체의 경우 오히려 마이너스가 됩니다. 이를 유저들에게 어필할 수 있는 색상이나 폰트, 스타일로 규정함으로서 User Interface에 뛰어난 효과를 가져올 수 있으며, 체계적인 디자인가이드를 만들 수 있습니다. em { text-decoration : none ; font-family : 돋움, Dotum, Helvetica ; font-weight : bolder ; color : #D34145 } cite { text-decoration : underline ; font-family : 돋움, Dotum, Helvetica ; font-weight : normal ; color : #6347EE ; } ※ 폰트의 크기는 되도록 지정을 하지 않습니다. 이들 태그는 컨텐츠 중간중간 위치하기 때문에 컨텐츠에 지정된 스타일을 상속받도록 하는 것이 좋습니다. 예외적으로 글자의 크기를 크게 혹은 작게 지정하고 싶다면, font-size의 속성 larger, smaller를 사용하는 것이 좋을 것입니다. strong { text-decoration : none ; font-family : 돋움, Dotum, Helvetica ; font-weight : bolder ; color : #FF2222 ; font-size : larger ; } 3. 컨텐츠의 종류와 각각의 타이틀, 본문, 주석, 맺음부분을 구분하여 줍니다. 일반적으로 코딩순서상 가장 나중에 지정되는 경우가 많지만, 미리 지정하고서 디자인팀과 프로그래머팀과의 협의를 통해 각 메뉴별로 본문색이 변할 것인지, 타이틀의 단계는 몇가지가 될 것인지, 본문중에 주석이나, 맺음말부분은 존재할 것인지 등등을 통일하고 정의하는 것도 상당히 중요합니다. 하지만, 제가 겪어본 대부분의 디자이너분들이 글의 스타일은 거의 지정을 안해주더이다. 그래서 거의 제가 생각하는대로 했기 때문에 조금은 이부분이 객관화가 덜 된 부분일지 모르겠습니다. 서로 다른 본문의 스타일을 구분해봅니다. 일반적으로 카테고리별로 디자인에 맞추어 글자색이 다른 경우가 많으니 카테고리명으로 class이름을 정할 때가 많습니다. .company_Content {color : #363636 ; line-height : 150%} .education_Content {color : #210021 ; line-height : 150%} 임의로 본문이라는 뜻으로 Content를 자주 쓰는데, class이름을 정할 때 카테고리명을 앞에 쓸지 Content를 앞에 쓸것인지는 상황에 따라 다를 수 있습니다. 입맛대로 하시길... 간혹, 본문중간에 이미지가 들어간다던지, 테이블이 삽입되는 경우에는... line-height속성이 각각의 자간과 줄간격을 일그러트리는 경우가 많습니다. 이때에는 class가 정의된 문단을 종료하고서 테이블을 삽입하는 것이 좋습니다. 타이틀의 class이름도 마찬가지로 정의합니다. .company_title {color : #363636 ; font-weight : bolder ; } .education_title {color : #210021 ; font-size : 15pt ; } 타이틀의 경우 타이틀 앞부분에 아이콘이 붙는다던지, 뒤에 링크버튼이 붙는다는지, 주석이 달린다던지...하는 경우가 많습니다. 이 점도 감안해서 각각의 경우를 정의해놓습니다. .company_title_icon {color : #363636 ; vertical-align : bottom } .company_title_more {color : #363636 ; vertical-align : middle } .company_title_sup {color : #363636 ; vertical-align : top ; line-height : 19pt; } 주석과 맺음말, 그외의 다른 문단이 삽입되는 경우를 정의합니다. 이 부분은 웬만해선 미리 정의하기에는 어려운 면이 많습니다. class이름정도만 미리 예상해놓는 것만으로도 상당히 편리할 것입니다. .company_notes {} .company_epil {} 4. 예상가능한 링크의 종류를 설정한다. 네비게이션의 단계의 구분이 뚜렷하다면, 이를 설정하는 것도 꽤 유용한 방법입니다. 보통은, 상단네비게이션, 좌단네비게이션, 하단네비게이션, CopyRight부분등이 이에 해당하며, 각각의 링크는 뚜렷한 연계성이 없기 때문에 각각을 구분하여 지정하는 것이 좋습니다. 한단계 더 하자면 각 위치별로 상위, 하위링크인지도 뚜렷하다면 이도 지정하는 것이 좋습니다. *///////////////기본적인 링크의 스타일 정의//////////////////////// a:link { text-decoration:none ; font-family : 굴림, Gulim, Helvetica ; } a:active { text-decoration:none ; font-family : 굴림, Gulim, Helvetica ; } a:visited { text-decoration:none ; font-family : 굴림, Gulim, Helvetica ; } a:hover { text-decoration:none ; font-family : 굴림, Gulim, Helvetica ; } *///////////////상단 네비게이션 링크//////////////////////// a.TopNv_Hi { font-size : 15px ; font-weight : bolder ; color : #164234} a.TopNv_Lo { font-size : 13px ; font-weight : normal ; color : #030303} *///////////////상단 네비게이션 링크//////////////////////// a.LeftNv_Hi { font-size : 13px ; font-weight : normal ; color : #3462FF} .LeftNv_Lo a { font-size : 13px ; font-weight : normal ; color : #3462AA} .LeftNv_Lo { font-size : 13px ; font-weight : normal ; color : #3462AA} <<링크와 같은 스타일의 text가 혼재한다면 같이 지정함이 좋습니다.>> 두번째로 본문에 들어갈 링크의 종류를 예상해봅니다. 일반적으로 예상가능한 종류는 다른 메뉴로의 이동, 타 사이트로의 이동, 메일주소, 이름, 주석 혹은 설명페이지로의 이동, ?업 역시 컨텐츠에 지정된 폰트크기를 상속받게 하는 것이 좋으므로 font-size를 지정하지 않는 것이 좋으며, 종류에 따라 underline만이 필요할지, 뚜렷한 스타일이 필요할 것인지 디자이너가 판단하여야 할것 입니다. a.text_Outer { color : #FF0000 ; text-decoration : underline ; } a.text_email { color : #000000 ; background-color : #EEEEEE } a.text_username{ color : #3333FF ; font-weight : bolder ; } 세번째로 게시판 리스트부분의 링크 스타일을 정의합니다. 보통은 각 카테고리마다 게시판의 디자인이 다르게 하는 경우가 많으므로 카테고리명 그대로 사용하는 것이 편할 때가 많습니다. a.bbs_shop { color : #3232FA ; text-decoration : none ; } a.bbs_biz { color : #4444AA ; text-decoration : none ; } 3~4줄의 리스트를 컨텐츠 페이지에서 보여주는 게시판의 경우는 active 링크에 볼드를 처리하는 경우도 있고, 자신의 글의 경우, 자신의 이름부분에 스타일을 달리하는 경우도 있겠죠. a.bbs_shop_act { color : #3232FA ; text-decoration : none ; font-weight : bolder ; } 5. Form태그들의 스타일을 정의합니다. form태그의 기본 문자 스타일을 정의합니다. form { text-decoration:none ; font-size:9pt ; font-family : 굴림,Gulim,Helvetica ; margin : 0 0 0 0 } input, select , option, textarea, button , fieldset, legend, label { text-decoration:none ; font-size:9pt ; font-family : 굴림,Gulim,Helvetica ; color:#454545 } (form에서 유저가 입력하는 내용은 다른 본문과 다른 스타일로 쓰여지는 것이 UI에서 이점을 가지고 있다고 연구되어왔고, 저도 예전부터 그렇게 생각해왔지만, 디자이너분들이 사소한 부분이라고 치부하는 바람에 그다지 보편화되지는 못한 듯 합니다.) form태그들은 각 카테고리별로 크기와 배경색, 보더를 가지기에 미리 정하기가 애매합니다. 네비게이션부분에서 쓰이는 부분, 검색부분, 로그인부분을 미리 정하고, 각 카테고리별로도 검색, 사용자입력, 기능형등으로 분류해서 정하는 것이 좋을 듯 합니다. 저두 이건 예상하기 너무 힘들어서 그때그때 씁니다...^^ 6. 사이트 특징적인 부분 설명하기 애매합니다만, 쇼핑몰의 가격, Confirm부분의 YES or NO, 입력확인부분, History 커뮤니티의 유저이름, 기능성 링크, Site Depth부분, History 증권사사이트의 가격변동폭, 지수, 들과 같이 유저에게 가장 강하게 어필되어야 하는 text부분같은 것은 사이트 전체에서 일관성이 강조되어야 하는 것들입니다. 이런 것들은 기획단계에서부터 그 종류와 성격, 강조의 경중 등등을 미리 협의, 검토, 정리를 한 후 CSS코딩되어야 합니다. 워낙 많으니 예는 안 올릴렵니다. 끝?슈~ 간단하게 요약하자면 object(text) > inline > block 작은 단위에서 큰 단위로 정의하고, 다시 기능적인 부분과 특이한 경우를 세밀하게 정의하는 순서입니다.
by Anna 안나 2008. 12. 21. 23:20
amorepacific_arita. . . hankyoreh_tsthgrgl. . .
조만간 발표 예정인, 삼성의 전용 글꼴에 많은 기대를 하고 있습니다. 홍보성 기삿거리는 제쳐두고라도 윈도우 비스타의 기본글꼴(맑을 고딕)을 개발한 "산돌커뮤니케이션"의 작품이라는 데에 큰 기대를 하고 있답니다. 과연 일반사용자들에게 배포/사용을 허락할 것 인지는 모르겠습니다만, 자신들의 제품에 사용할 서체라는 점에서 상당한 노력과 시간을 투자한 것만은 틀림없어 보입니다. 비슷한 목적(?)으로 제작, 각각 한글날을 맞아 배포했던 2개의 서체를 정리해 둡니다. 2006년 홈페이지를 통해 배포한 아리따체입니다. 손과 몸의 동세가 반영된 손글씨의 맛을 최대한 살리고, 군더더기를 없앤것이 특징인 고딕계열(sans-serif)의 글꼴이라고 할 수 있습니다. 안상수 홍익대 시각디자인과 교수와 한재준 서울여대 교수, 글꼴 디자이너 이용제씨, 디자인기업 안그라픽스 등이 참여했다고 합니다. [ 아리따체 사용 조건 ] - 아리따체의 지적재산권은 (주)아모레퍼시픽에 있습니다.
- 아리따체는 개인 및 기업사용자에게 무료로 제공되며, 사용자들도 다른 이에게 자유롭게 배포할 수 있습니다. 단 이 과정에서 어떠한 이유로든 복사 및 배포의 대가로 요금을 부과할 수 없습니다.
- 아리따체는 어떠한 이유로도 지적재산권자 이외의 사용자가 수정, 판매할 수 없으며, 배포되는 형태 그대로 사용해야 합니다.
- 아리따체를 사용해 출판물을 낼 경우 글꼴 출처를 표시해야 합니다. 배포 사이트 : AMOREPACIFIC - http://www.amorepacific.co.kr/about/ci/font.jsp 2005년 5월 16일 한겨레는 창간 17돌 기념호를 내면서, 처음 한겨레결체를 선보였습니다. 이는 우리나라 신문 사상 최초로 채택한 "탈네모틀 글꼴"로서, 한글이 가진 조형미를 새롭게 살린 것입니다. 가독성도 뛰어나다는 평가를 두루 얻고 있습니다. [ 한겨레결체 사용 조건 ] - 한겨레결체의 저작권은 한겨레신문사와 태시스템에게 있다. - 한겨레결체는 개인 및 기업사용자에게 무료로 제공되며, 사용자들도 다른 이에게 자유롭게 배포할 수 있다. 단, 이 과정에서 어떠한 이유로도 복사 및 배포의 대가로 요금을 부과할 수 없다. - 한겨레결체는 어떠한 이유로도 저작권자 이외의 사용자가 수정, 판매할 수 없으며, 배포되는 형태 그대로 사용해야 한다. - 한겨레결체를 사용해 출판물을 낼 경우 글꼴 출처를 표시해야 한다. 출처 표시 방법은 "본 저작물은 한겨레결체로 만들어졌다"라는 문구를 싣는 방법 등이다. 배포 사이트 : The Hankyoreh - http://bbs.hani.co.kr/Board/ui_hkr_alim/Contents.asp?STable=ui_hkr_alim&RNo=56&Search=&Text=&GoToPage=1&Idx=56&Sorting=2 각각의 글꼴은 링크해둔 배포사이트에서 직접 다운로드 해도 되며, 포스트 첨부파일을 직접 다운로드 해도 됩니다. 글꼴이 영문이름 형태로 표기되어지는 경우, 아리따체(AritaM/AritaSB), 한겨레결체(TSThgrgl)의 이름을 띄게 됩니다.
by Anna 안나 2008. 11. 30. 22:05
페이지의 레이아웃을 위해 지나친 중첩 테이블의 사용은 분명 지양해야 할 방법입니다. 그러나, 웹표준을 지킨다는 지나친 정의감(?)에 테이블 사용 자체를 지양하는 것은 마치 거식증 같다고 해야할까요?캘린더, 스프레드시트, 차트와 같은 표 형태의 데이터를 마크업하는 경우에는, 확실히 테이블이 용이하면서도 멋진 스타일을 사용할 수 있습니다. 이하 샘플 예제에서 사용할 기본 스타일은 아래와 같습니다.body{
margin: 0; padding: 10px;
color:#666666;
font-family: Gulim, Dotum, sans-serif;
font-size: 12px; word-spacing: 1px; letter-spacing: -1px;
line-height: 16px;
} 아래와 같은, 기본 스타일의 테이블을 만들어 봅니다.
표 제목, 배경색, 볼드체, 테두리등을 생각해 보면, HTML만을 사용하면 굉장히 코드가 번잡해 집니다.그러나, 디자인과 스타일은 CSS에 맡기고, 테이블은 기본에 충실하게 데이터만을 포함하면 됩니다. 아래는 위와같은 테이블을 만들기위해 작성한 HTML코드입니다. <table class="basic">
<caption>월별 지점 방문객 통계 : 2006년</caption>
<thead>
<tr><th>방문객수</th> <th>서울지점</th> <th>부산지점</th></tr>
</thead>
<tfoot>
<tr><th>합계</th> <td>5,875</td> <td>4,349</td></tr>
</tfoot>
<tbody>
<tr><td>4월</td><td>2,085</td><td>1,605</td></tr>
<tr><td>5월</td><td>1,866</td><td>1,286</td></tr>
<tr><td>6월</td><td>1,924</td><td>1,455</td></tr>
</tbody>
</table> - caption태그는 표 제목을 나타내는 태그입니다. 그림과 같이 표 상단에 내용을 배치해 줍니다. - thead, tfoot, tbody태그는 표의 가로열(행)을 그룹화 하는 요소로, 표의 헤더, 꼬리말, 본문을 각각 나타냅니다. 이렇게 표의 내용을 그룹으로 나누어 관리하면, 여러가지 장점이 있습니다. 표의 헤더나 꼬리말을 고정시켜 본문 부분만 스크롤 시키거나, 여러 페이지에 걸쳐진 기다란 표를 인쇄하는 경우 페이지마다 헤더나 꼬리말을 인쇄할 수 있게 됩니다. 또한, 이런 부차적인(?) 부분을 떠나, 헤더나 꼬리말의 경우 본문과 스타일을 다르게 하는 경우가 많습니다. CSS를 이용해 스타일을 입히기가 그만큼 용이하게 됩니다. 사용상 주의할 점은, thead tfoot tbody순서로 사용되어야 합니다. 꼬리말을 본문보다 먼저 표기해 주어야 합니다. - th태그는 제목용 셀, 즉 헤더 셀 태그로, 내용을 굵은 글꼴로 표기하며 가운데 정렬을 해 줍니다. 그만큼, 불필요한 코드의 사용을 줄여줄 수 있습니다. 이제, 표의 디자인을 관장할 스타일시트를 살펴봅니다. table.basic{
margin: 0; padding: 0; line-height: 21px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
border-collapse: collapse;
}
table.basic th, table.basic td{
margin: 0; padding: 3px 0; width: 160px;
text-align: center;
border-right: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
}
table.basic caption{ margin: 0; padding: 0; }
table.basic th{ background-color: #e9e9e9; } 파란색으로 표시된 부분은 테이블의 테두리를 관장하는 부분입니다. 좀 더 간단한 방법도 있습니다만, 브라우저의 특성을 가리지 않도록 정확한 표기에 중점을 둔 방식입니다. 셀의 좌/상(┌) 부분은 테이블 외곽 테두리를 이용하고, 우/하(┘)부분의 테두리는 셀의 테두리를 이용합니다. 최종적으로, 셀을 중첩(border-collapse: collapse)하도록 하면, 여백없이 1px테두리의 테이블이 완성됩니다. 기본적으로 여백과 패딩을 나타내는 margin, padding값은 하위요소로 상속되지 않습니다. 브라우저마다 디폴트 상태의 표현방식이 조금 다르기 때문에, 항목마다 적절히 지정해 주는 것이 좋습니다. 초록색으로 표시된 부분은 테이블의 폭과 너비를 관장하는 부분입니다. 모든 영역의 너비와 높이는 주로 width, height속성을 일반적으로 사용합니다. 여기서 주의할 점은, 높이를 지정하는데 line-height를 사용하였습니다. 테이블의 셀 높이를 지정할 때, height를 이용하면, 브라우저간 차이가 발견됩니다. * line-height는 인라인 요소의 높이를 지정하는 속성으로, 블록레벨 요소에 지정된 경우, 안에 포함되는 인라인 요소의 높이를 결정해 줍니다. 또한, 이 값은 하위 요소로 상속됩니다. 참고로, width, height는 하위 요소로 상속되지 않는 값입니다. 가로 너비를 계산해 볼까요? 셀의 가로 너비는 160px*3 = 480px, 가로방향의 여백/패딩값은 0이므로 1px테두리 3개를 포함해 483px가 되겠네요. 세로 너비는 또 어떻게 될까요? 셀 내의 인라인 요소의 영역 높이를 21px로 지정하고 상,하 여백을 3px로 지정했으니 테두리를 제외한 실제 셀 1개의 화면상 높이는 21px+3px+3px = 27px가 됩니다. 세로 행이 5개 이므로 27px*5 = 135px, 1px테두리가 6개이니 135px+6px = 141px가 됩니다. 거기에 켑션(제목)항목이 21px이므로, 총 141px+21px = 162px가 최종 높이가 되겠네요. * 이렇게 분석을 해보면 각각의 요소가 어떻게 적용되었는지 살펴볼 수도 있고, 문제점이 발견될때 좀더 쉽게 접근을 할 수 있습니다. 나머지는 헤더셀(th)에 배경색을 지정하는 부분과 켑션(제목)부분의 여백, 패딩값을 지정하는 부분입니다. 설 명은 장황하게 했지만, 이렇게 작성된 코드는 HTML부분도 판독하기 쉬울 뿐더러, 미리 작성된 테이블 클레스를 이용해, 테이블의 디자인도 손쉽게 변경할 수 있습니다. (바꾸고 싶은 테이블의 클래스 이름만 바꿔주면 되니까요...) 다음은, 같은 테이블을 이용한 다른 디자인 클레스의 예입니다. table.chart{
margin: 0; padding: 0; line-height: 21px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
border-collapse: collapse;
}
table.chart th, table.chart td{
margin: 0; padding: 3px 0; width: 160px;
text-align: center;
border-right: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
}
table.chart caption{
margin: 0; padding: 0;
text-align: right;
}table.chart thead th{
background-color: #e9e9e9;
border-bottom: 1px solid #999999;
}
table.chart tfoot th{ background-color: #e2e2e2; } 테이블 헤더와 본문 구분선을 좀 짙은 색으로 바꾸고, 합계 부분의 배경색을 따로 설정하기 위해, 헤더셀(th)의 thead 부분과 tfoot부분을 구분해서 따로 지정했습니다. 제목(caption)부분의 정렬 옵션도 추가했습니다. table.excel{
margin: 0; padding: 0; line-height: 21px;
border-top: 2px solid #999999;
border-bottom: 2px solid #999999;
border-collapse: collapse;
}
table.excel th, table.excel td{
margin: 0; padding: 3px 0; width: 160px;
text-align: center;
border-bottom: 1px solid #cccccc;
}
table.excel caption{
margin: 0; padding: 0;
text-align: right;
}
table.excel thead th{
background-color: #e9e9e9;
border-bottom: 1px solid #999999;
}
table.excel tfoot th, table.excel tfoot td{
border-bottom: none;
background-color: #e2e2e2;
} 굵은 테두리를 표 외곽 테두리로 상/하에 설정합니다. 셀 테두리는 아래쪽만 표기하도록 하고, 꼬리말의 아래쪽 테두리를 표기하지않도록 하면, 정확하게 표현됩니다. (사실, border-collapse: collapse에는 셀 중첩의 우선순위가 있기 때문에, 꼬리말의 아래쪽 테두리 설정은 불필요하기도 합니다) 처음 적응하는 것이 어려울 뿐입니다. 이렇게 테이블 클래스를 만들어 두면, HTML코드에서 클레스를 입력/변경하는 것만으로 손쉽게 테이블을 디자인할 수 있습니다. 이상 테스트한 코드는 IE7, Firefox2에서 동일한 결과를 보여줍니다.
by Anna 안나 2008. 11. 30. 21:44
텍스트를 포함한, 적용 가능한 요소들의 가로 또는 세로의 정렬에 대한 설명과 함께 텍스트의 들여쓰기 및 행처리에 관한 내용을 살펴보도록 합니다. [ 텍스트의 가로 정렬 ]text-align: left (default value);이 값은 하위 요소로 상속이 되며, 모든 요소에 적용할 수 있는 값입니다. 예를 들어, 블록 레벨 요소인 박스에 설정을 해두면, 해당 박스 안쪽에 있는 모든 요소에 적용이 됩니다. 디폴트 값은 브라우저와 글자의 표기 방향에 따라 다르지만, 일반적으로 left인 경우가 많습니다. * left, right, center, justify테이블의 tr, td태그에 사용되는 HTML속성값인 align과 비슷한 방법으로 박스등에 사용할 수 있습니다.justify는 브라우저에 의해 자동으로 줄바꿈 되는 하나의 행을, 좌우 배분 정렬합니다. 블록 레벨 요소나 라인 브레이크와 같이, 강제적으로 줄바꿈 되는 부분까지 좌우 배분하는 것은 아닙니다. 그리고, justify속성값은 letter-spacing(자간), word-spacing(단어 간격)설정보다 우선시 됩니다. [ 텍스트의 세로 정렬 ]vertical-align: baseline (default value);값을 지정한 요소가 표시되는 하나의 행에서 세로 방향의 위치 정렬에 관한 속성입니다.단, 인라인 요소에만 적용되며, 테이블의 tr, th, td등의 요소에는 적용됩니다. 값은 상속되지 않습니다.
tr, HTMLtr CSSalign="center"text-align: center;valign="top"vertical-align: top; 위에서와 같이, text-align속성은 모든 요소에 적용할 수 있으며, vertical-align속성은 tr, td등의 요소에는 적용이 됩니다. 따라서, HTML의 align, valign을 대치하여 같은 효과를 얻을 수 있습니다.주) tr, td등에 사용되는 vertical-align의 경우, 속성값 top, middle, bottom만이 valign값에 대응하여 적용됩니다. 브라우저간의 차이는 있으나, 기타 속성값은 대부분 무효화되며 기본값으로 처리됩니다. 아래와 같이 블록레벨 요소인 박스에 vertical-align속성을 부여하는 경우, tr, td등에 적용했던 것과 같은 결과를 얻을 수 없습니다. vertical-align은 tr, td에 적용할 수는 있으나, 인라인 요소에만 사용할 수 있기 때문입니다. 즉, 해당 요소가 표시되는 하나의 행에서의 세로 방향의 위치 정렬을 설정하는 것이 vertical-align의 정의입니다.text-align: center; vertical-align: text-bottom; 박스 안에서의 세로 정렬은, 박스의 세로 크기를 지정하기 보다는, 다음과 같이 적절한 패딩값을 이용합니다.text-align: center; margin: 0; padding: 10px 0; * baseline, bottom, text-bottom인라인 요소간의 베이스 라인을 맞추는 값입니다. <img src="naver_logo.gif" style="border: 1px solid #000000; vertical-align:xxxx;"/>vertical-align:not used; vertical-align:baseline; vertical-align:bottom; vertical-align:text-bottom; 위와 같이, 텍스트 사이에 있는 이미지에 vertical-align옵션을 주었습니다. 디폴트 값은 baseline이기 때문에, 아무런 설정을 하지 않으면 baseline과 같이 표현됩니다. 참고할 점은 baseline과 text-bottom의 차이입니다. baseline은 텍스트의 ex(소문자 x의 상하)의 아래에 맞추기 때문에, 외곽 박스와는 맞아 떨어지지 않습니다. 그러나, text-bottom은 텍스트의 em(전각: 전체의 상하)에 맞추기 때문에, 외곽 박스와도 맞아 떨어지게 됩니다. 주) bottom 속성값은 IE7의 경우 정상적으로 적용되지 않습니다. 그러나, Firefox2.0의 경우 text-bottom과 같은 결과를 보여 줍니다. * top, text-top인라인 요소간의 탑 라인을 맞추는 값입니다. <img src="naver_logo.gif" style="border: 1px solid #000000; vertical-align:xxxx;"/>vertical-align:not used; vertical-align:top; vertical-align:text-top; 위와 같이, 텍스트 사이에 있는 이미지에 vertical-align옵션을 주었습니다. 별다른 차이없이, 텍스트의 em(전각: 전체의 상하)에 맞추어 표시해 줍니다. IE7과 Firefox2 사이의 차이도 없습니다. 단, 앞서 설명하였듯이 text-top속성값은 tr, td태그에는 적용되지 않습니다. * 실수값+단위디폴트 상태(baseline)에서, 해당 요소를 세로 방향으로 어느정도 이동시킬 것인지를 결정합니다.양수값은 해당요소를 위쪽으로 이동시키게 되며, 음수값은 아래쪽으로 이동시킵니다. <img src="naver_logo.gif" style="border: 1px solid #000000; vertical-align:xxxx;"/>vertical-align:not used; vertical-align:0px; vertical-align:-1px; 이미지를 기본정렬 상태에서 1px만큼 아래쪽으로 내려보았습니다.퍼센티지(%)의 경우는, 디폴트 상태(baseline)에서, line-height의 비율만큼 이동시킵니다. 예를 들어, line-height가 20px이고, vertical-align: 10%으로 설정하면 2px만큼 위쪽으로 올리게 됩니다. * middle, super, sub세로의 가운데 정렬을 하는 속성값으로 middle이 있으며, 위첨자(super), 아래첨자(sub)속성으로 해당 요소를 배치하는 값입니다. <img src="naver_logo.gif" style="border: 1px solid #000000; vertical-align:xxxx;"/>vertical-align:middle; vertical-align:super vertical-align:sub middle의 경우, baseline과 같이 ex(소문자 x의 상하)의 중심을 기준으로 정렬합니다. 위와 같이, IE7에서는 1px정도의 어긋남이 발견됩니다. super, sub 속성값은, HTML의 sup, sub태그와 비슷한 용도로 사용이 가능합니다. 다만, 첨자 요소에 이미지를 사용한다거나, 첨자의 글꼴, 색상, 크기를 자유롭게 조절할 수 있다는 점이 CSS의 vertical-align: super, sub이 갖는 장점이라고 할 수 있습니다. [ 문단 들여쓰기 ]text-indent: 0 (default value);하위 레벨 요소에 값이 상속되며, 블록 레벨 요소에 지정하여, 해당 요소에 포함된 문잔의 첫번 째 라인을 들여쓰기 해줍니다. 따라서, 음수값을 지정할 수도 있으며, 문단 들여쓰기라는 특성상 인라인 레벨 요소에는 설정되지 않습니다. * 실수값+단위<div style="width: 500px; line-height: 15px; text-indent: 1em; text-align:justify;"> Wie has been mixing school and tour golf since she played three LPGA Tour events at age 12. She turned professional in October 2005 and earned close to $20 million this year from endorsements, earnings and appearance money overseas. And while she still hasn't won on the LPGA Tour -- she had three close calls in the majors -- Wie said her nerves were never more jangled than
waiting to see if she had been accepted. She got the news Friday. 위 예는 <p></p>로 묶인 2개의 문단이 있으며, 그 외곽을 <div></div>태그로 감싸고 있습니다. 외곽 박스(div)에 text-index: 1em즉, 전각 1개의 문자 만큼 들여쓰기 설정을 해 두었습니다. 안쪽의 모든 문단(<p></p>로 묶인 2개의 문단)에 들여쓰기가 적용됩니다. 중간의 빨간색으로 설정한 텍스트에는 라인브레이크(<br/>)가 적용되어 있습니다. 들여쓰기는, 문단의 첫줄에만 적용되기 때문에, 라인브레이크에는 영향을 주지 않습니다. * 퍼센티지(%)기본적으로, 적용된 요소(박스)를 포함하는 상위 박스의 너비값에 대한 비율로 지정합니다.그러나, Firefox는 적용한 요소(박스)의 너비값을 기준으로 들여쓰기를 하고 있으며, IE의 경우, 마크업에 에러를 종종 경험하게 됩니다. 그다지, 퍼센티지(%)를 사용해야할 이유는 없어 보입니다. [ 공백 및 행 처리 ]white-space: normal (default value);HTML의 <Pre>태그와 비슷한 역할을 수행할 수 있으며, nowrap이라는 추가적인 속성을 사용할 수 있습니다. 모든 요소에 적용할 수 있으며, 하위 요소에 설정값이 상속됩니다. * normal, nowrap, pre <div style="width: 500px; margin: 0; padding: 10px; white-space: normal;">function resetRadio(){ for(var i=0; i<document.form1.type.length; i++){ if(document.form1.type[i].defaultChecked == true) document.form1.type[i].checked = true else document.form1.type[i].checked = false } } 일 반적으로, 박스안에 스크립트 코드와 같은 내용을 입력하면, HTML을 기본 마크업에 따라, 연속된 공백이나 탭, 줄바꾸기(소스상 줄바꾸기)가 하나의 공백으로 변환되어 표시됩니다. 또한, 박스의 너비에 따라 자동으로 줄바꾸기가 됩니다. <div style="width: 500px; white-space: nowrap; overflow: hidden;">function resetRadio(){ for(var i=0; i<document.form1.type.length; i++){ if(document.form1.type[i].defaultChecked == true) document.form1.type[i].checked = true else document.form1.type[i].checked = false } } 디폴트 상태와 같이 연속된 공백이나 탭, 줄바꾸기(소스상 줄바꾸기)를 하나의 공백으로 변환하여 표시합니다. 그러나, 박스의 너비를 무시하고 줄바꾸기를 하지 않습니다. (박스 외곽으로 넘치는 부분은 overflow속성을 이용해, 숨김설정으로 해두었습니다.) <div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">function resetRadio(){
for(var i=0; i<document.form1.type.length; i++){
if(document.form1.type[i].defaultChecked == true) document.form1.type[i].checked = true
else document.form1.type[i].checked = false
}
} HTML 소스에 입력한 데로 공백이나 탭, 줄바꾸기를 그대로 표시합니다. 이 경우도, 박스의 너비를 무시하고 줄바꾸기를 하지 않습니다. (박스 외곽으로 넘치는 부분은 overflow속성을 이용해, 숨김설정으로 해두었습니다.) <div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">function resetRadio(){...}</div>위와 같이, 박스 태그와 내용의 첫번째 줄바꿈의 경우 IE7은 표기하지 않지만, Firefox2는 표기합니다.따라서, 다음과 같이 박스 태그와 박스 내용 사이의 소스에 줄바꿈을 없도록 해주어야 합니다.<div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">function resetRadio(){...}</div> [ 참고 ]HTML :: pre다음은, HTML의 pre태그를 사용한 예입니다. <div style="width: 500px; margin: 0; padding: 10px;"><pre style="margin: 0; padding: 0; width: 480px; overflow: hidden;">위와 같이 pre태그 역시, 글꼴등의 기본스타일을 따로 지정해 사용해야 합니다. 따라서, 상위레벨에서 지정된 스타일을 적용받으면서, 공백 및 행처리를 하는데에는 white-space를 이용하는 것이 유리합니다.pre태그는 white-space와 달리, 박스 태그와 내용의 첫번째 줄바꿈에 대하여, IE7, Firefox2 모두 표기하지 않습니다.
by Anna 안나 2008. 11. 30. 21:43
글 꼴의 종류와 크기를 결정했다면, 볼드/이텔릭과 같은 글꼴의 장식 및 자간, 줄간 들여쓰기와 같은 문단 편집기능에 대하여 살펴봅니다. 몇몇 기능은 브라우저에 따라, 적용/미적용 여부가 다르며, 적용되더라도 화면의 보여지는 모습이 다릅니다. 충분한 테스트 후 활용하도록 합니다. [ 글꼴의 굵기 지정 ]font-weight: normal (default value);글꼴 그룹의 어떤 굵기의 글꼴을 사용할 것인지를 설정합니다. 초기값은 normal(400)이며, 굵은 글꼴은 bold(700) 키워드를 사용합니다. 설정값은 하위 요소로 상속됩니다. 다음은 Verdana 글꼴의 굵기 속성입니다. * normal, bold, 100~900font-weight: normal font-weight: bold font-weight: 100 font-weight: 200 font-weight: 300 font-weight: 400 font-weight: 500 font-weight: 600 font-weight: 700 font-weight: 800 font-weight: 900 위와 같이, 일반적인 글꼴 그룹은 9종류의 굵기가 다른 글꼴이 준비되어 있지 않는 경우가 많습니다.따라서, 일반적으로 100~900까지의 9단계의 굵기 지정보다는, 굵은 글꼴 표현을 위한, bold를 주로 사용합니다. 기본값은 normal이기 때문에, 일반 글꼴에는 특별한 지정이 필요하지 않습니다. * lighter, bolder100~900의 굵기의 범위에서, 현재 굵기(디폴트값 또는 상위 요소에서 상속된 값)보다 각각 한 단계 가는 글꼴, 또는 굵은 글꼴을 지정합니다. [ 글꼴 스타일의 지정 ]font-style: normal (default value);글꼴 그룹의 표준, 이탤릭, 기울임 글꼴을 지정하는 속성입니다. 설정 값은 하위요소로 상속됩니다. * normal, italic, oblique글꼴 그룹의 종류에 따라, 이텔릭체 전용, 기울임 전용 글꼴이 디자인되어 있습니다. 해당 글꼴을 사용하도록 지정이 가능합니다. 해당 글꼴이 없는 경우에는 표준 글꼴을 기울인 글꼴이 이용됩니다. 기본값은 normal이기 때문에, 일반 글꼴에는 특별한 지정이 필요하지 않습니다. 다음은 Verdana 글꼴의 스타일 속성입니다.font-style: normal font-style: italic font-style: oblique [ 작은 대문자 지정 ]font-variant: normal (default value);영어 알파벳의 표기방식입니다. 알파벳을 대문자료 표기하되, 소문자 크기로 작게한 종류의 글꼴인 small-caps를 지정할 수 있습니다. 설정 값은 하위 요소로 상속되며, 기본값은 normal이기 때문에, 일반 글꼴에는 특별한 지정이 필요하지 않습니다. * normal, small-capsfont-variant: normal font-variant: small-caps [ 대소문자 지정 ]text-transform: none (default value);영 어 알파벳의 표기방식입니다. 문장에 있는 단어의 첫글자만을 대문자로 표시하거나, 전체를 대문자 또는 소문자로 표기하게 할 수 있습니다. ID와 같이 대/소문자의 구분입력 단위요소에 사용할 수 있습니다. 설정 값은 하위 요소로 상속되며, 기본값은 none이기 때문에, 일반 글꼴에는 특별한 지정이 필요하지 않습니다. * none, capitalize, lowercase, uppercasetext-transform: none; Capitalization effects text-transform: capitalize; Capitalization effects text-transform: lowercase; Capitalization effects text-transform: lowercase; Capitalization effects [ 글꼴 장식 ]text-decoration: none (default value);글꼴 장식에 대한 속성입니다. 아래 예와 같이, 밑줄이나 윗줄, 취소선을 표시하거나 깜박이게 할 수도 있습니다. 이 속성은 상위 요소로부터 상속되지 않습니다. 다만, 블록 레벨 요소에 대하여 지정한 경우에는 해당 박스 안에 포함되는 인라인 요소에 모두 적용됩니다. 또한, 인라인 요소에 대하여 지정한 경우에는 해당 요소가 생성하는 모든 박스에 대하여 적용됩니다. * none, underline, overline, line-through, blinktext-decoration: none a tag in li tag text-decoration: underline text-decoration: line-through text-decoration: overline text-decoration: blink 위와 같이, blink옵션값은 IE에서는 적용되지 않습니다. (Firefox 2.0에는 적용됩니다)또한, 첫번재 줄에 사용된 코드는 다음과 같습니다. 즉, 같은 레벨의 요소에는, text-decoration값이 상속되지 않습니다.<li style="text-decoration: none;">text-decoration: none <a href="#">a tag in li tag</a></li> [ 줄 간격 설정 ]line-height: normal (default value);정확히는, 인라인 요소의 높이를 설정하는 값입니다. 만약 블록 레벨 요소에 값을 지정한 경우에는, 해당 박스에 포함될 인라인 요소 박스의 최소 높이를 지정하는 것이 됩니다. 설정 값은 하위 요소로 상속됩니다. * 인라인 요소에 대한 높이값 표현의 디폴트 값이 IE7과 Firefox2의 차이가 현격하기 때문에, 상위레벨(body, hemtl)에서 픽셀이나 포인트로 결정해 주는 것이 좋습니다. line-height: normal
line-height: normal line-height: 150%
line-height: 150% line-height: 15px
line-height: 15px line-height: 1.5em
line-height: 1.5em 기본값은 normal이며, 브라우저가 적절한 줄간격을 설정합니다. "실수값+단위 형태"로 지정할 수 있습니다.전각(em)의 경우는, 해당 글꼴의 줄 간격을 1로 간주하고 퍼센티지(%)는 100%로 간주하고 계산되어 집니다. 즉, 상위레벨의 값을 1(em), 100(%)으로 계산하여 표현합니다. 픽셀(px) 및 포인트(pt)등과 같은 값을 지정할 수도 있습니다. 단, 인라인 레벨의 박스 높이인 만큼 음수값을 지정할 수 없습니다. [ 문자 간격 설정 ]letter-spacing: normal (default value);글자와 글자의 간격을 설정하는 속성입니다. 주의할 점은 설정하는 값이 자간이 나타내는 것이 아니라, 기본 자간에 설정값이 추가(+)되는 것 입니다. 따라서, line-height와는 달리, letter-spacing값에는 음수값을 지정할 수 있습니다. 설정 값은 하위 요소로 상속됩니다.* 문단 정렬이 좌우 배분(text-align: justify)인 경우에는, 문단 정렬에 우선되어 간격값이 조정됩니다. [ font-family: Verdana, Gulim, Dotum, sans-serif; font-size: 9pt; ] 자간은 글꼴의 종류와 크기에 따라, 웹브라우저의 상이점이 발생합니다. 위 그림의 위의 것은 IE7에서 표현되는 스크린이며, 아래는 Firefox2에서 표현되는 모습입니다. 디폴트 상태(normal)에서는 별다른 차이가 없지만, 전각(em) 포인트(pt)등의 단위에서는 약간의 차이가 눈에 띄입니다. 픽셀(px)단위가 비교적 차이가 없어 보입니다. [ 단어 간격 설정 ]word-spacing: normal (default value);공백으로 구분되는 하나의 단어와 단어 사이의 간격을 설정하는 속성입니다. 자간과 마찬가지로 설정하는 값이 단어 간격을 나타내는 것이 아니라, 기본 간격에 설정값이 추가(+)되는 것 입니다. 따라서, line-height와는 달리, word-spacing값에는 음수값을 지정할 수 있습니다. 설정 값은 하위 요소로 상속됩니다. * 문단 정렬이 좌우 배분(text-align: justify)인 경우에는, 문단 정렬에 우선되어 간격값이 조정됩니다. [ font-family: Verdana, Gulim, Dotum, sans-serif; font-size: 9pt; ]단어 간격 역시, 글꼴의 종류와 크기에 따라, 웹브라우저의 상이점이 발생합니다. 위 그림의 위의 것은 IE7에서 표현되는 스크린이며, 아래는 Firefox2에서 표현되는 모습입니다. 디폴트 상태(normal)에서는 별다른 차이가 없지만, 전각(em) 포인트(pt)등의 단위에서는 약간의 차이가 눈에 띄입니다. 픽셀(px)단위가 비교적 차이가 없어 보입니다. [ 글꼴 크기의 보정 ]font-size-adjust: none (default value);현재, IE7은 지원하지 않고 있으며, Firefox 2.0에서는 적용이 되는 속성으로 용도는 아래와 같습니다. 어떠한 이유로(사용자에게 글꼴이 없거나, 요소 하위에 다른 글꼴이 사용되는 등), 요소에 지정된 글꼴이 표시되지 않는 경우, 글꼴 기본 크기의 차이에 따른 이질감을 조정하기 위한 속성입니다. 해당 글꼴(지정한 글꼴) 크기에 대한 소문자 x의 높이의 비율을 지정해 두면, 다른 글꼴이 사용되더라도 소문자 x의 높이가 일정하게 유지되도록 하여 일관성을 유지하게 됩니다. 설정값은 하위요소로 상속됩니다. 아래는, Firefox 2.0에 font-size-adjust를 적용한 예입니다.<div style="font-family: Verdana; font-size: 14pt; font-size-adjust: 0.54;">Verdana 14pt <font style="font-family: 'Times New Roman';">Times New Roman 14pt</font></div>그림의 위쪽은 font-size-adjust를 적용하지 않은 경우이며, 아래는 0.54값이 적용된 경우입니다. 주의할 점은, 해당 값에 따라 지정된 글꼴(위의 경우 Verdana)도 크기가 보정될 수 있다는 점입니다. 따라서, 충분한 테스트 및 검증을 해 준 후 사용하도록 합니다. 한가지 재미있는 점은, 영문 글꼴을 대표글꼴로 설정하여 사용하는 경우, 한글의 크기가 브라우저에 따라 같지 않은 문제를, 이 속성을 통해 어느정도 보완할 수가 있다는 점이 있습니다. (적어도, IE에서는 적용되지 않기 때문입니다)위와 같이, 절절한 font-size-adjust값을 주어, 한글 글꼴을 조정해 줄 수 있습니다. 물론, IE에서는 적용되지 않기 때문에, IE에 맞춘 스타일시트에 Firefox의 한글크기 문제가 있는 경우 사용할 수 있습니다. [ 장평 설정 ]font-stretch: norman (default value);현재, IE7, Firefox 2.0모두 지원하지 않습니다. 총 9단계의 속성값이 있습니다.ultra-condensed, extra-condensed, condensed, semi-condensed, normal, semi-expanded, expanded, extra-expanded, ultra-expanded이 있으며, 왼쪽에서 오른족으로 갈 수록 폭이 넓어집니다.
by Anna 안나 2008. 11. 30. 21:41
스타일 시트의 텍스트 내용을 설정하는 기본적인 속성들입니다. 그러나, 브라우저간의 미묘한 차이가 존재하는 만큼 충분한 테스트 및 검토를 한 후 사용해야 합니다. [ 글꼴의 종류 지정 ]font-family: font(group)-name, keyword;요소 내에서 사용할 글꼴을 설정하는 속성입니다. 컴마(,)를 구분자로 여거 개의 글꼴(그룹) 또는 키워드를 지정할 수 있습니다. 글꼴은 해당 웹페이지를 보는 사용자의 시스템에 따라 결정되며, CSS에서 앞쪽에 지정한 순서에 따라 사용자의 시스템에 설치된 글꼴을 사용하게 됩니다.예) font-family: verdana, Gulim, Dotum, sans-serif; * 글꼴 그룹 : 예를 들어 윈도우 사용자의 경우, Times New Roman이라는 글꼴이 있습니다. 하지만 폰트 폴더를 살펴보면, Times New Roman(TIMES.TTF), Times new Roman Bold(TIMESBD.TTF), Times New Roman Italic(TIMESI.TTF)와 같이 별도의 글꼴이 준비되어 있습니다. 글꼴은 상황에 따라 스타일이 결정되어 사용되지만, 위와같이 해당 스타일에 맞는 글꼴을 미리 갖춤으로써 보다 아름다운 표시나 인쇄를 가능하게 합니다. 이렇게, 같은 종류이지만 다른 스타일로 디자인되어 있는 글꼴을 "글꼴 그룹"이라고 합니다. 이 경우 "Times New Roman"이 글꼴 그룹의 이름이 됩니다. * 글꼴(그룹)의 이름 : 글꼴(그룹)의 이름에 공백이 들어가는 경우에는 인용부호("또는')를 이용합니다.예) font-family: "Comic Sans MS", 'Times New Roman'; * 키워드 : 글꼴 그룹의 종류를 키워드로 지정하는 방법입니다. 지정한 모든 특정 글꼴(그룹)을 사용할 수 없는 경우, 최종적인 선택 범위로 지정해 두는 것이 좋습니다. 인용부호를 사용하지 않아야 합니다.serif : 명조계열sans-serif : 고딕계열cursive : 필기체fantasy : 장식체monospace : 등폭 글꼴 * 한글 글꼴의 영문 표기 : 가변폭 글꼴 - 바탕(Batang), 굴림(Gulim), 돋움(Dotum), 궁서(Gungsuh)고정폭 글꼴 - 바탕체(BatangChe), 굴림체(GulimChe), 돋움(DotumChe), 궁서체(GungsuhChe)"맑은 고딕"(Malgun Gothic) - FireFox2.0에서는 영문이름의 맑은 고딕체는 적용이 되지 않습니다(?) 가변폭, 고정폭 글꼴의 차이는 자간(글자간의 폭)입니다. 고정폭 글꼴은 알파벳 하나하나에 모두 같은 폭을 사용하는 글골입니다. CSS를 이용해 자간을 설정하려면 가변폭 글꼴을 사용하도록 합니다. "맑은 고딕"은 산돌에서 개발한 한글 윈도우 Vista의 기본 글꼴이며, MS Office 2007에도 제공되고 있습니다. 현재 버전 5.0이 사용되고 있습니다. 오픈타입 폰트이며, ClearType을 지원하기 때문에, 현재의 굴림이나 돋움체를 대체하게 될 글꼴입니다. 참고로 영문판 Vista에는 "Segoe UI"글골이 기본글꼴이 됩니다. [ 글꼴의 크기 지정 ]font-size: medium; (default value)요소 내에서 사용할 글꼴의 크기를 설정하는 속성으로 하위 요소들에 대하여 상속되는 값입니다. 초기값은 medium이며, 7단계의 키워드 또는 절대단위, 상대단위와 같은 단위값, 그리고 상위 요소에 대한 %값등을 사용할 수 있습니다. * 키워드 : xx-small, x-small, small, medium, large, x-large, xx-large각 단계별로, 약 1.2배씩 커지게 되며, 실제 표시되는 크기는 브라우저와 글꼴에 따라 달라질 수 있습니다. 아래 그림은, 일반적으로 많이 사용되는 글꼴그룹에 대한 예시입니다. [ font-family: Verdana, Gulim, Dotum, sans-serif; ]
위와 같이, 익스플로러의 경우 xx-small과 x-small의 한글 표기의 차이점이 없다는 점을 제외하고는 두 브라우저간의 별다른 차이없이 비슷한 크기를 보여주고 있습니다. 여기서 참고할 점은, 국내 웹사이트의 본문체와 비교해보면, 키워드 small사이즈의 글꼴도 좀 크다는 점입니다. 아래와 같이, 초기 글꼴을 "굴림"으로 선택하여도, 그 크기는 마찬가지 입니다. (다만, "굴림"의 경우 xx-small과 x-small의 크기가 구분됩니다) [ font-family: Gulim, Dotum, sans-serif; ]
위와 같이 영문 글꼴에 특화된 경향이 있는 키워드 값은, 국내에서는 잘 사용하지 않는 것 같습니다.다만, 웹 브라우저의 화면 글꼴 크기 설정에 영향을 받게 되며, Firefox와 같이 가변폭 글꼴의 크기를 조정할 수 있는 웹 브라우저의 경우, 사용자에 의해 글꼴 크기가 재정의할 수 있습니다. 자신에게 맞는 글꼴 크기를 설정할 수 있다는 점에서, 키워드의 사용이 바람직하다 할 수 있습니다. * 상대 키워드 : smaller, larger상위 요소의 글꼴 크기에 대하여 각각 1단계 작은 글자, 큰 글자를 지정하는 키워드 입니다. 예를 들어, 상위 요소의 글꼴 크기가 medium인 경우, smaller로 지정하면 글꼴 크기는 small이 됩니다. 반대로 larger로 지정하면 large가 됩니다. 단, 주위할 점은, 상위 요소의 글꼴 크기가 앞에서 설명한 7단계의 키워드 크기 이외의 경우에는, 그 결과값이 브라우저에 따라 다를 수 있습니다. * 상대 단위 : px, em, ex, %실수값+단위 형태로 표현할 수 있으며, 먼저 가장 많이 사용하는 상대 단위를 살펴봅니다. 주. 글꼴 크기에 음수값은 지정할 수 없습니다. * 픽셀(px)는 가장 많이 사용되는 단위 이며, 같은 해상도의 화면이더라도, 화면의 DPI값에 따라 상대적인 크기로 보이게 됩니다. 일반적으로 윈도우의 경우, 96dpi를 많이 사용하지만 사용자에 따라 변경이 가능한 부분입니다. 물론, "화면 해상도(1024*768, 800*600과 같은, 흔히 말하는 해상도)"에 따라 실제 모니터에 보여지는 크기도 달라집니다.[ font-family: Gulim, Dotum, sans-serif; ]
위와 같이, 가변폭 글꼴인 "굴림"을 사용한 경우, 한글은 12px이 일반적인 본문 사이즈와 같습니다.그런데, 자간, 줄간, 문자 간격등을 디폴트 상태로 사용한다면, 생각보다는 조금 큼직큼직한 느낌을 주게 됩니다. 무엇보다도, "굴림"의 경우 영문/숫자의 경우 조금 크다는 느낌을 받을 수 있습니다. 그래서, Verdana, Tahoma와 같은 고딕 계열의 영문 글꼴을 지정하는 경향이 있습니다. [ font-family: Verdana, Gulim, Dotum, sans-serif; ]
그림에서와 같이, IE에서는 영문 글꼴로 지정된 한글이 11px의 크기가 정상적으로 보이지 않습니다. 알파벳과 숫자는 11px로 보여주고, 한글의 경우 12px로 표현하고 있습니다. 일종의 CSS IE Hack이라 생각됩니다만, 위와 같이 영문 고딕 글꼴에 11px크기를 사용하는 곳이 많습니다. 다만, Firefox와 같은 웹브라우저는 11px를 정확히 표현하고 있기 때문에, 한글이 작게 보이게 됩니다. 예) http://www.freegine.com/ 영문 글꼴로 설정된 한글의 경우, IE7의 프린터 출력에도 문제가 있습니다. 11px의 한글이 13px의 한글과 같은 크기로 출력됩니다. 프린터에 따라 다른지는 알 수 없습니다만, 같은 환경에서 Firefox가 정상적으로 출력하는 것에 비하면, 문제가 있다고 보여집니다. * 전각(em) : 해당 글꼴의 크기를 1로 간주하고 계산되는 단위입니다. 즉, 상위 요소로부터 상속된 글꼴의 크기가 1로 간주되는 것입니다. 따라서, 상위 요소의 글꼴 크기를 1로 간주하고 계산되는 것과 같습니다. 상위 요소가 없을 경우에는 디폴트 사이즈(medium)를 1로 판단하고 계산됩니다. * ex : 해당 글꼴의 소문자 x의 높이를 1로 간주하고 계산되는 단위 입니다. 적용 및 사용은 전각단위인 em과 같습니다. 아래 그림은 em과 ex의 설정 기준에 대한 내용입니다.
* 퍼센트(%) : 상위 요소의 글꼴 크기에 따른 퍼센티지입니다. 브라우저에 따라, 표현이 상이한 편이고 정확한 퍼센티지로 표현이 안되는 경우도 있으므로, 충분한 테스트후 사용이 필요합니다. * 절대 단위 : pt, pc, cm, mm, in절대 단위라고 하지만, 모니터를 통해 눈으로 보여지는 실제 크기가, 해당 단위에 따라 고정되어 있다는 뜻은 아닙니다. 모니터의 화면 해상도에 따라 달라진 다는 점은, 픽셀(px)과 같습니다. 포인트(pt) : 1pt = 1/72 inch파이커(pc) : 1pc = 12pt센티미터(cm), 밀리미터(mm), 인치(in) : 1in = 2.54cm와 같은 단위를 사용합니다.[ font-family: Verdana, Gulim, Dotum, sans-serif; ]
일반적으로, 9pt의 글꼴이 12px와 같은 크기로 표현됩니다. 영문글꼴을 대표글꼴로 사용하는 경우에는, 11px로 사용하는 것보다 9pt로 사용하면, 알파벳 및 숫자에는 12px 영문글꼴로, 한글에는 12px 고딕또는 명조 계열로 표현됩니다.
by Anna 안나 2008. 11. 30. 21:41
적용 및 테스트 IE & FireFox2 리스트(목록)태그를 네비게이션 메뉴바로 활용한 예 입니다.실제로 메뉴에 사용된 HTML 태그는, 다음과 같이 매우 간결합니다.
[ 메뉴에 사용된 HTML 태그 ]<ul id="mainMenu">
<li><a href="/products/">Products</a></li>
<li><a href="/downloads/">Downloads</a></li>
<li><a href="/purchase/">Purchase</a></li>
<li><a href="/support/">Support</a></li>
<li><a href="/partners/">Partners</a></li>
<li><a href="/contact/">Contact</a></li>
</ul> 먼저 간단히, 메뉴 디자인의 설계를 살펴 보겠습니다.

ul태그에서 아래쪽 테두리값을 이용해 베이스 라인을 깔아두었기 때문에, 실제 박스가 차지하는 크기는 26px(25px+1px)가 됩니다. 리스트 항목(li)태그에 적절한 좌우패딩값을 주어 메뉴간 간격을 설정할 수 있습니다.박스의 영역 높이(25px) 안쪽에 자리잡는 메뉴항목(<a></a>)은, 마우스 오버에 대한 아래쪽 테두리값을 3px로 설정했습니다. 따라서, 테두리를 제외한 22px범위 영역의 높이와 패딩값을 설정하도록 합니다. [ 사용한 스타일 시트 ] <style type="text/css">#mainMenu{
list-style: none;
margin: 0; padding: 0 0 25px 5px; background-color: #000000; border-bottom: 1px solid #ffcc00;
}영역의 아래쪽에 패딩값을 25px로 주어, border-bottom이 베이스 라인으로 표현되게 합니다.ul박스가 웹페이지에서 표현되는 세로의 실제 사이즈는 26px(25px+1px)입니다.메뉴텍스트의 좌측간격이 15px이고, 아래의 li의 좌측 패딩값(10px)이므로 ul의 왼쪽 패딩은 5px로 설정합니다.
#mainMenu li{
float: left;
margin: 0; padding: 0 10px;
}가로로 나열된 메뉴이기 때문에, float: left를 사용하여, 리스트 항목들을 좌에서 우로 배치하도록 합니다.설계된 내용에 따라, 좌/우 공통으로 10px의 패딩값을 설정합니다. 메뉴간 간격(20px)
#mainMenu a{
display: block;
margin: 0; padding: 5px 0 1px 0;
height: 16px; font-family: verdana; font-size: 9px; color: #ffffff; font-weight: bold;
text-decoration:none;
}li태그의 배치 속성이 float: left인 관계로, 안쪽에 위치하는 a태그를 블록레벨로 설정하여, 정확한 레이아웃을 만들 수 있도록 합니다. 상(5px), 하(1px), 영역높이(16px)의 합은 실제 영역높이(25px)에서 롤오보 보더값(3px)를 제외한 값입니다. (5px+1px+16px = 25px-3px)
#mainMenu a:visited{ color: #ffffff; }
#mainMenu a:hover{ color: #ff6600; }
#mainMenu a:active{ color: #0066ff; }
#mainMenu a:hover, #mainMenu a:active{ border-bottom: 3px solid #ffcc00; }</style>a태그에 롤 오버 스타일입니다. 아래쪽에 3px두께의 테두리(border)를 만들도록 하였습니다. 롤 오버 이미지를 활용한 네비게이션 바약간만 손을 본다면, 아래와 같은 이미지를 활용한 네비게이션 바를 만들 수 있습니다.
여기에 사용된 이미지는 다음과 같습니다.
[ 사용한 스타일 시트 ] <style type="text/css">#mainMenu{
list-style: none;
margin: 0; padding: 0 0 25px 5px; background-color: #000000; border-bottom: 1px solid #ffcc00;
}#mainMenu li{
float: left;
margin: 0; padding: 0 10px;
}#mainMenu a{
display: block;
margin: 0; padding: 5px 0 4px 0;
height: 16px; font-family: verdana; font-size: 9px; color: #ffffff; font-weight: bold;
text-decoration:none;
}#mainMenu a:visited{ color: #ffffff; }
#mainMenu a:hover{ color: #ff6600; }
#mainMenu a:active{ color: #0066ff; }
#mainMenu a:hover, #mainMenu a:active{ background: url(images/line_dot.gif) no-repeat 50% 100%;}</style>위와 같이, a태그의 아래쪽 테두리(border)를 없앴기 때문에, 아래여백을 (1px→4px)로 테두리 크기만큼 키워줍니다. 끝으로, 롤 오버 스타일에서, 가로는 가운데, 세로는 아래쪽에 이미지가 표현되도록 했습니다. (50% 100%) 이렇게 작성된 코드는, 유지/관리가 매우 쉽고 또한, 이식 작업도 매우 유용하게 합니다.
by Anna 안나 2008. 11. 30. 21:39
적용 및 테스트 IE & FireFox2 드림위버와 같은 웹에디터 프로그램을 이용하면, 손쉽게 롤오버 메뉴를 만들 수 있습니다.그러나, 자바스크립트 코드가 추가되는 등 본문의 코드가 매우 복잡해 지는게 일반적입니다. 아래는, 리스트(목록)태그를 이용하여 목록을 작성하고, 롤오버 동작 및 이미지 삽입등을 CSS로 작성한 메뉴입니다. 실제로 메뉴에 사용된 HTML 태그는, 다음과 같이 매우 간결합니다.[ 메뉴에 사용된 HTML 태그 ]<ul id="mainMenu">
<li><a href="/products/">Products</a></li>
<li><a href="/downloads/">Downloads</a></li>
<li><a href="/purchase/">Purchase</a></li>
<li><a href="/support/">Support</a></li>
<li><a href="/partners/">Partners</a></li>
<li><a href="/contact/">Contact</a></li>
</ul> 먼저 간단히, 메뉴 디자인의 설계를 살펴 보겠습니다.
롤 오버 이미지의 가로 사이즈는 77px인데, 실제 하나의 메뉴가 차지하는 가로 사이즈는 79px로 디자인되었습니다. 롤 오버 이미지를 양쪽 여백 1px포함하여 79px로 자르면 좀 더 간단하겠습니다만, CSS를 사용하여 레이아웃 설정하는 법을 살펴본다는 취지로 이대로 사용하겠습니다. [ 사용한 스타일 시트 ] <style type="text/css">
#mainMenu{
float: left;
width: 474px;
margin: 0; padding: 0 13px 0 13px;
list-style: none;
background: url(images/menu_bg.gif) no-repeat 0 0;
}ul태그에 배경이미지로 바 이미지(menu_bg.gif)를 깔아 놓습니다. flot: left를 사용하여, ul태그 자체의 내용영역에 대한 배치 설정을 해놓았습니다. (삭제 불가)ul박스가 웹페이지에서 표현되는 실제 사이즈는 500px(474px+13px+13px)입니다. 설계된 사이즈(500px)에서, 좌우 패딩값을 제외한 값을 width로 설정하면 됩니다.
#mainMenu li{
float: left;
height: 35px; width: 79px;
marign: 0; padding: 0;
text-align: center;
}가로로 나열된 메뉴이기 때문에, float: left를 사용하여, 리스트 항목들을 좌에서 우로 배치하도록 합니다.설계된 내용에 따라, 가로/세로값을 설정해주고, 여백과 패딩영역 및 메뉴 텍스트의 정렬 옵션을 설정합니다.
#mainMenu li:hover{ background:url(images/menu_rollover.gif) no-repeat 1px 50%;}
리스트 항목의 영역내에 마우스에 대한 반응을 설정하는 부분입니다.마우스 오버되는 경우, li태그의 배경 이미지로, 롤 오버 이미지를 보여주게 됩니다.주의할 점은 background-position 항목 1px 50%입니다. 설계 내용에 따라, 롤 오버 이미지의 크기는 77*35px입니다. 그러나 li박스의 크기는 79*35px로 설정해 주었고 1px만큼 좌측에서 띄어 주었습니다. #mainMenu a{
display: block;
padding: 10px 0 0 0; font-family: verdana; font-size: 9px; color: #666666;
text-decoration:none;
}li태그의 배치 속성이 float: left인 관계로, 안쪽에 위치하는 a태그를 블록레벨로 설정하여, 정확한 레이아웃을 만들 수 있도록 합니다. 또한, a:hover에 대한 반응을, 실제 텍스트가 차지하는 영역이 아닌, a태그 박스 전체로 확장할 수 있습니다.마치, 이미지에 텍스트를 그려넣은 것과 비슷한 효과를 가집니다. 적절한 패딩값을 주어, 텍스트를 정렬합니다.
#mainMenu a:link{ color: #666666; }
#mainMenu a:visited{ color: #666666; }
#mainMenu a:hover{ color: #ff6600; }
#mainMenu a:active{ color: #0066ff; }</style> 이렇게 작성된 코드는, 유지/관리가 매우 쉽고 또한, 이식 작업도 매우 유용하게 합니다.
by Anna 안나 2008. 11. 30. 21:38
list-style (type, image, position)을 이용한 리스트의 블릿 꾸미기 또한, 여러가지 옵션을 제공합니다.그러나, list-style-image를 이용해 외부 이미지를 사용할 경우, 박스의 레이아웃 및 아이콘 이미지의 상하 조절에 꽤나 까다로운 점이 있습니다.다음은, background 속성이 박스의 패딩 영역에도 표기된다는 점을 이용한 블릿 이미지 꾸미기 입니다. background, padding을 이용한 블릿 이미지 꾸미기 ul{
margin: 0;
padding: 0;
list-style: none; width: 200px; font-family: '돋움', sans-serif; color: #666666; font-size:11px;
} li{ background: url(ico_note.gif) no-repeat 0 50%; padding: 4px 0 0 15px; }
<ul>
<li>일상다반사</li>
<li>끄작끄작</li>
<li>스크레핑</li>
</ul> * 기본적으로 외곽 박스(ul)의 여백과 패딩값은 0으로 해주어야 브라우저간의 어긋남이 없습니다. 1. 리스트의 스타일(type, image)을 일단 제거합니다. list-style: none;2. 블릿 이미지로 쓸 이미지를 리스트 항목태그의 배경으로 넣어둡니다. background: url(ico_note.gif) no-repeat 0 50%; 여기서 background의 position 옵션(0 50%)을 이용해 좌우, 상하의 위치지정이 가능합니다.3. 리스트 항목태그의 패딩값을 조절해 줍니다. padding: 4px 0 0 15px; 블릿 이미지의 크기만큼 좌측 패딩값은 반드시 띄워줍니다(15px). 그리고, 텍스트의 크기에 따라 상단 패딩값을 적절히 조절해 줍니다. 위 CSS를 사용한 결과는 아래와 같습니다.일상다반사 끄작끄작 스크레핑
by Anna 안나 2008. 11. 30. 21:35
문단이나 항목 정리에 있어서, Unorderd List 태그인 <ul>과 항목 리스트를 나타내는 <li>태그는 매우 유용한 태그입니다. 다만, 웹브라우저에 따라 여백이나 패딩의 및 불릿 이미지를 표기하는 방식이 꽤나 다르기 때문에 사용상 주의도 필요합니다. 또한, 그동안 웹페이지의 레이아웃을 유지하기 위해 그동안 테이블<table>을 많이 이용했으나, 리스트 태그와 CSS를 이용한 방법이 바람직하다고 여깁니다. 기본적으로, 여백과 패딩값은 설정해 주어야 IE7과 FireFox2사이의 레이아웃 차이를 없앨 수 있습니다.ul{ margin: 0; padding: 0;}/* li태그는 해당 내용 상속됨 */
<li> 및 display속성값이 [list-item]인 경우 다음과 같은 스타일을 적용할 수 있습니다.* <ol> <ul> 에 다음의 속성을 지정하면, 해당 태그의 서브 <li>요소에는 모두 상속됩니다. [ 리스트 속성의 일괄 지정 ]list-style: type image position;리스트의 글머리표의 종류를 지정(type), 글머리표의 이미지를 지정(image) 글머리표의 표시위치 지정(position)을 지정합니다. 속성값인 type, image, position은 아래에서 설명할 속성값을 따릅니다. [ 글머리표의 종류 지정 ]list-style-type: disc(초기값);글머리표의 이미지가 있는 경우에는, 이미지가 우선적으로 표시됩니다. 이미지가 없거나(none) 지정한 이미지를 표시할 수 없는 경우, 이 설정값이 유효하게 됩니다. 구버전의 IE에서는 인식되지 않으나, IE7에서는 인식이됩니다. 다음과 같은 속성값을 이용할 수 있습니다.none : 글머리표를 표시하지 않습니다.disc : 검은색 원(기본 값)circls : 선으로 그려진 원square : 선으로 그려진 사각형lower-roman : 로마숫자 소문자upper-roman : 로마숫자 대문자lower-greek : 그리스 문자 소문자decimal : 일반 숫자decimal-leading-zero : 첫 자리에 0을 붙인 숫자lower-latin, lower-alpha : 알파벳 소문자upper-latin, upper-alpha : 알파벳 대문자hebrew : 히브리 숫자armenian : 아르메니아 숫자georgian : 그로지아 숫자 <ul style="list-style-type: lower-roman;">index content postscripe [ 글머리표 이미지 지정 ]list-style-image: url();디폴트 값은 none입니다. 아래와 같이 사용할 수 있습니다. <ul style="list-style-image: url(ico_note.gif);">index content postscripe [ 글머리표 이미지 표시 위치 지정 ]list-style-position: outside(초기값);리스트 항목의 박스에 대한 글머리표의 위치를 설정하는 속성입니다.사용할 수 있는 속성값으로는 inside 와 outside가 있으며 디폴트 값은 outside입니다. <ul style="border: 1px solid; list-style-image: url(ico_note.gif);">index content postscripe <ul style="border: 1px solid; list-style-position: inside; list-style-image: url(ico_note.gif);">index content postscripe 위 예의 경우, margin: 0; padding: 0; width: 200px로 지정되어 있습니다. 테두리를 1px로 설정하였으므로, 박스의 레이아웃은 가로 202px가 됩니다. 글머리표 이미지를 inside로 설정한 경우는 이 202px안에 모두 표기가 됩니다. outside의 경우는 해당 박스의 여백이나 패딩값에 관계없이 박스의 외곽에 표기됩니다. 심지어 외곽 박스의 영역 을 침범해서라도 표기가 됩니다. 다만, 외곽 박스가 <body>인 경우에는, IE7의 경우에는 패딩영역에만 표기됩니다. 즉, FireFox2경우에는 패딩영역이든 여백(margin)영역이든 표기할 공간이 있으면 표기해 주나, IE7의 경우에는 여백(margin)영역만 존재하고 패딩영역이 없는 경우 글머리표 이미지는 표기가 되지 않습니다. <ul style="border: 1px solid; list-style-position: inside; list-style-image: url(ico_note.gif);"> <li style="list-style-position: outside;">index</li>index content postscripe 이 상, 리스트 항목의 글머리표에 대한, 속성설정에 대하여 살펴보았습니다. 이 항목들만을 가지고 글머리표 레이아웃을 설정하는 방법에는 한계가 있습니다. 글머리표로 사용한 이미지의 크기에 따라, 상하 높이를 설정하는 부분이 없기 때문입니다. ul{ list-style: none; margin: 0; padding: 0;}따라서, 레이아웃을 위한 일반적인 사용에는 위와 같이 사용할 뿐입니다.
by Anna 안나 2008. 11. 30. 21:34
여전히, 한글 글꼴에 대한 흡족한 스타일 작성은 쉽지만은 않습니다만, HTML과 CSS만을 이용한 테이블 디자인으로 아래와 같은 게시판 폼을 만들 수 있습니다. IE7, FireFox2등에서 제공되는 입력폼, 버튼의 디자인이 이전에 비해 한결 나은 모습을 보이기 때문에, 이미지를 이용한 버튼제작도 크게 불필요해 보입니다. <style type="text/css">
TABLE.style01{ width:100%; border-width:2px; border-color:#999999; border-collapse:collapse; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; table-layout:fixed; }
TR, TD, SELECT, INPUT, DIV, TEXTAREA{ font-family:sans-serif, 돋움; font-size:11px; color:#737373; } TR, TD{ padding:5px 5px 5px 5px; }
TEXTAREA{
scrollbar-face-color: #EFEFEF;
scrollbar-shadow-color: #FFFFFF;
scrollbar-highlight-color: #FFFFFF;
scrollbar-3dlight-color: #DFDFDF;
scrollbar-darkshadow-color: #DFDFDF;
scrollbar-track-color: #ffffff; scrollbar-arrow-color: #000000;
}
TD.bDot{ border-bottom-style:dotted; border-bottom-width:1px; border-bottom-color:#999999; }
TD.tName{background-color:#DCDCDC; text-align:center; font-weight:bold; color:#333333; }
DIV.mContent{ overflow:hidden; word-break:break-all; width:100%; }
INPUT.cButton{ width:70px; }
</style> TABLE.style01{ width:100%; border-width:2px; border-color:#999999; border-collapse:collapse; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; table-layout:fixed; } 게시판의 가로 사이즈는, 사용하는 곳에 따라 가변폭이며, CSS에서 일괄적으로 변경하는 방법을 사용합니다. 참고로, 테이블의 첫번째 라인의 셀에 가로 사이즈(width)를 지정해 주되, 2번째 셀에 지정해주지 않는 방법을 이용했습니다. 따라서, 가로 사이즈를 변경시키면, 리스트의 제목셀, 본문의 문번 표기셀, 글 쓰기의 제목입력셀이 유동적으로 변경됩니다. 끝으로, 포함된 컨텐츠에 따라, 테이블 레이아웃이 흐트러지지 않도록 table-layout:fixed 를 사용했습니다. (FireFox v2.0의 경우 문제가 없으나, IE7의 경우 필요한 코드입니다.) 테이블 태그에는 다음과 같이 사용합니다. <table class="style01" rules="rows" frame="hsides"> DIV.mContent{ overflow:hidden; word-break:break-all; width:100%; } 본문보기 및 뎃글보기에 사용된 코드입니다. URL과 같은 띄어쓰기가 없는 장문의 내용이 입력되는 경우 및 악의적인 장문의 내용이 입력되면 줄바꾸기가 되지 않아 레이아웃이 무너지는 경우가 있습니다. 이 경우, IE에서는 word-break:break-all을 사용하면 문제없이 줄바꿈이 됩니다만, Netscape 및 FireFox의 경우는 적용되지 않습니다. 이를 위해 overflow:hidden을 사용하면, 가로크기의 한도를 넘어서는 내용은 보여주지 않도록 하여 박스레이아웃을 유지할 수 있습니다. (주, IE의 경우는 word-break 속성에 의해 줄바꿈이 되기 때문에 문제가 없으나, FireFox의 경우, 레이아웃은 유지하나 내용을 볼 수 없게 됩니다.) 내용이 들어가는 셀에 다음과 같은 코드로 사용합니다. <TD><Div class="mContent">Content ... Content ...</Div></TD>
by Anna 안나 2008. 11. 30. 21:34
전통적으로 표를 많이 사용하는 한국의 문서 스타일 때문에, 웹페이지에도 테이블 태그를 이용한 표작업이 빈번한 편입니다. 다음은, HTML/CSS를 이용한 테이블(표)디자인에 대해 살펴봅니다. [ border="1"의 일반적인 테이블(표) ]NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="1" cellspacing="0" cellpadding="3" bordercolor="#999999"> 위와 같이, 테이블 테두리값 1px로 설정한다 하더라도 실제 웹브라우저 상에서는 테두리가 2px로 보입니다.그러한 까닭은, 이 각각의 1px셀 테두리가 서로 만나면서 2px(1px+1px)이 되기 때문입니다. 아래 테이블에서와 같이 "셀 간격"을 띄워놓고 보면 그 이유를 좀 더 분명하게 이해할 수 있습니다. NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="1" cellspacing="5" cellpadding="3" bordercolor="#999999"> border-collapse셀 및 테이블 테두리를 포개는 설정에 관한 TABLE태그에 대한 CSS입니다. 먼저, 적용된 모습을 살펴봅니다.NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="1" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;"> - separate : 테이블 전체의 외곽선과 각 셀의 외곽선을 각각 표시합니다.
- collapse : 테이블 전체의 외곽 및, 각 셀의 외곽선을 경계에서 중복하여 표시합니다.
ex) TABLE { border-collapse: separate } 위와 같이, 아주 간단하게, 1px 외곽선 테이블(표)를 만들 수 있습니다. 해당 CSS는 IE5이상부터 지원되는 기능이며, FireFox 2.0의 경우도 지원되고 있습니다. (단, border="1"이 아닌 경우, 즉 그 이상의 값을 설정한 경우, FireFox에서는 여유선이 표시됩니다)참고) 너비나 형식이 다른 외곽선이 포개질 때는 다음과 같은 우선 순위를 가집니다.border-style:hidden설정 외곽선이 최우선, 너비가 넓은 외곽선이 그 다음의 우선 순위를 가집니다.너비가 같은 경우에는 double, solid, dashed, dotted, ridge, outset, groove, inset 순서로 표기되며,색상만 다른 경우에는 셀, 가로열, 가로열 그룹, 세로열, 세로열 그룹, 테이블 순서로 표시됩니다. Rules표 내부 셀간의 구분선을 어떻게 표시할 지에 대한, TABLE태그의 속성입니다. 먼저, 적용된 모습을 살펴봅니다.NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="1" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;" rules="none"> - none : 선없음- groups : thead, tbody, tfoot, colgroup요소의 경계 표시- rows : 가로열의 경계 표시- cols : 세로열의 경계 표시- all : 모든 경계 표시 Frame표 외곽 테두리를 어떻게 표시할 지에 대한, TABLE태그의 속성입니다. 먼저, 적용된 모습을 살펴봅니다.NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="1" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;" rules="none" frame="hsides"> - void : 테두리 없음- above : 윗 부분만 테두리 표시- below : 아래 부분만 테두리 표시- hsides : 위, 아래 부분만 테두리 표시- lhs : 왼쪽만 테두리 표시- rhs : 오른쪽만 테두리 표시- vsides : 좌/우 테두리만 표시- box, border : 상하좌우 모든 테두리 표시 NoSubjectDate1http://www.naver.com 2006.112http://kr.yahoo.com 2006.11<table width="500" border="2" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;" rules="rows" frame="hsides"> 이상의 HTML 태그 속성과 CSS를 이용하면, 위와 같은 테이블(표)를 손쉽게 제작할 수 있습니다. FireFox v2.0위에서 잠깐 언급했듯이, FireFox(v2.0)의 경우, 이전의 Netscape에서 지원하지 않았던 border-collapse스타일을 지원하고 있습니다. 다만, 아래 그림에서와 같이 테두리의 border값을 2px이상으로 설정한 경우, 여유선이 표시되는 현상이 있습니다. 이 경우, 테이블 외곽 테두리를 모두 표기한 경우, 어긋나 보이게 됩니다. 그러나 border값이 1px인 경우에는 IE와 똑같은 스타일로 표시됩니다.

<table width="500" border="2" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;" rules="rows" frame="hsides">

<table width="500" border="2" cellspacing="0" cellpadding="3" bordercolor="#999999" style="border-collapse:collapse;" rules="rows">
by Anna 안나 2008. 11. 30. 21:31
웹 크로스 브라우징의 프레임워크 중 하나인 YAML 를 소개합니다.
http://www.yaml.de/en/home.html

ie6,ie7,ie8,firefox,opera,safari ..대부분의 브라우저를 지원합니다.
by Anna 안나 2008. 11. 30. 21:12
가끔 워드프레스나 텍스트큐브 가 제공하는 블로그에 갔을때 지금 제 블로그처럼 링크옆에 조그만 화살표나 작은 이미지가 달린 것을 볼 수 있었습니다. 아마도 '외부링크(external link)' 라는 플러그인(plugin)이 따로 제공되는 것 같습니만 티스토리 유저로서 그냥 부러울따름이었습니다.

왜냐하면, 링크를 걸어놓은 텍스트가 독자에게 뚜렷이 부각이 되지 않으면 글쓴이가 준비한 다양한 정보를 제대로 흡수하지 못할 수도 있고 링크가 걸린 텍스트를 본문내용과 '다른 색'이나 '밑줄'등으로 꾸몄다 해도 링크가 아닌 강조부분에서 사용된 '글자색', '밑줄'등과 혼동할 수도 있기 때문입니다.

덧) '무지개링크' 플러그인이 제공되긴 하지만 링크위에 마우스 커서를 올려놓아야 비로소 링크임을 알 수 있죠.

그러다 우연히 css를 수정하는 방법을 알게 되었고 시험삼아 블로그에 적용해봤습니다. 혹시 궁금해하는 분이 계시면 포스팅하려고 했었는데 때마침 PPoZZak님께서 질문을 해주셔서 글을 쓰게 되었습니다. (아싸!월척이다!ㅎㅎ)

단, 제가 하는 방법이 제대로 된 방법인지, 더 간단한 방법이 있는지는 잘 모르겠습니다. 더 나은 방법이 있다면 알려주세요. 제일 간단한 방법은 티스토리에서 공식 플러그인을 지원하는 것이겠죠. ^^


보통 티스토리 스킨의 style.CSS 파일을 보면 다음과 같이 링크걸린 텍스트를 꾸며주는 '앵커노드'(?)를 볼 수 있습니다.


link 는 링크걸린 텍스트, active는 마우스로 클릭(방문)하는 순간, visited는 방문(클릭)했던 링크, hover는 커서(cursor)를 링크위에 올렸을때의 액션을 지정해주죠.

처음엔 저도 이것을 변경해주면 될것이라 생각했는데 막상 적용한 결과는 실망이더군요. 블로그 페이지 전체의 모든 링크에 적용이 되어서 본문외에도 블로그제목, 사이드바의 카테고리, 태그, 최신글목록, 최신댓글목록, 등등 클릭하면 이동하는 모든 텍스트에 링크 이미지가 달려서 굉장히 지저분해집니다.

┌ 그럼 우짜란 말이여~

■ 포스트 본문내용내의 링크에만 링크표시를 다는 방법

Step1
☞ 역시 만에 하나를 위해서 HTML에 익숙하지 않으신 분들은 먼저 스킨을 백업해 주세요.

Step2
☞ 먼저, 티스토리 관리자 모드, 스킨 HTML/CSS 편집으로 이동합니다. skin.html 에서 " article_rep_desc " 를 검색(Ctrl+F)하여 해당 위치로 갑니다. 그리고 다음과 같이 앞뒤로 div를 지정해줍니다. (첨부된 txt 화일 참조, 복사후 붙여넣기 ctrl+c, ctrl+v 신공)

div.txt

Step3
☞ 그 다음, style.css의 가장 끝에다가 다음과 같이 입력해 줍니다. (첨부된 txt 화일 참조)

external.txt

Step4
☞ step3 에서의 background:url 뒷부분 ( ) 안의 주소는 넣고 싶은 이미지의 주소를 임의대로 넣으시면 됩니다. 단, 작은 이미지가 보기 이쁘겠죠. (화살표,네모,세모등 16x16 사이즈권장)

☞ padding-right: 와 padding-top: 뒤의 숫자를 조절해 가면서 텍스트와 이미지간의 배치를 적당히 조절하시면 됩니다.

☞ 4가지 (link, active, visited, hover) 모두 동일하게 하는 것이 깔끔하나 각자의 기호에 따라 조절해보세요.
by Anna 안나 2008. 11. 29. 17:19
예제는 여기서..

Luca Manno씨는 jQuery를 이용해서 매우 흥미로운 자바스크립트 애니메이션 효과인 Flip!을 만들었습니다. 위 예제는 실행가능한 예제입니다. 직접 실행해 보세요. 저 사선은 어떻게 그려지는 것일까요? 저는 당연히 Canvas태그를 사용했으려니 했답니다. 소스를 뜯어보고 그 기발한 발상에 무릎을 쳤습니다. 보더에서 만들어지는 사선을 이용해서 만들어낸 것이었습니다. 캬~

내친 김에 Prototype과 Scriptaculous에 서도 사용할 수 있도록 만들었습니다. 'Flip'이란 클래스를 만들고 Effect.Morph 메서드를 사용하여 애니메이션을 구현했습니다. 시작/끝으로 구분된 Transition 효과와 빠르기를 구분 설정하도록 하여 조금더 세부적으로 커스토마이즈 할 수 있게 한 것이 특징입니다. 다음 예제코드를 참고하세요.

Examples :// Flip the flipbox from bottom to top



$("flipBT").observe('click', function(){



new Flip($("flipBox"), {



direction: 'bt',



color: '#D46419',



content: '<div class="demo-one">Hello!<br/>I\'m a flip-box!<br/> :) </div>'



});



});







// Flip the flipbox from top to bottom



$("flipTB").observe('click', function(){



new Flip($("flipBox"), {



direction: 'tb',



color: '#B34212',



startSpeed: 0.6,



endSpeed: 0.4,



content: '<div class="demo-two">Hey!<br/><span style="font-size:14px">You can change me with<br/><code style="font-family:monospace;padding-left:10px">content: $("myId").innerHTML</code></span><br/><br/>Enjoy!</div>'



});



});







// Flip the flipbox from left to right



$("flipLR").observe('click', function(){



new Flip($("flipBox"), {



direction: 'lr',



color: '#341405',



content: '<div class="demo-three">I\'m simple html!</div>'



});



});







// Flip the flipbox from right to left



$("flipRL").observe('click', function(){



new Flip($("flipBox"), {



direction: 'rl',



startSpeed: 1.0,



endSpeed: 1.0,



color: '#166665',



content: '<div class="demo-four">' + $('logo').up('a').title + '<br/><span style="font-size:11px">This is a taken directly from this page<code style="display:block;color:#fff;padding:5px;font-family:monospace">$("logo").up("a").title</code></span></div>'



});



});







// Example 1



$("flipEx1").observe('click', function(){



new Flip($("flipBox"), {



direction: 'tb',



startFx: Effect.Transitions.pulse,



endFx: Prototype.Browser.IE ? Effect.Transitions.linear : Effect.Transitions.spring,



startSpeed: 0.8,



endSpeed: 0.3,



color: '#341405',



content: '<div class="demo-one">Example 1</div>'



});



});







// Example 2



$("flipEx2").observe('click', function(){



new Flip($("flipBox"), {



direction: 'bt',



startFx: Effect.Transitions.circIn,



endFx: Effect.Transitions.circOut,



color: '#341405',



content: '<div class="demo-two">Example 2</div>'



});



});







// Example 3



$("flipEx2").observe('click', function(){



new Flip($("flipBox"), {



startFx: Effect.Transitions.backIn,



endFx: Effect.Transitions.backOut,



startSpeed: 0.3,



endSpeed: 0.3,



color: '#166665',



content: '<div class="demo-three">Example 3</div>'



});



});




오래전에 보더가지고 하드코딩 하던 분들(Triangles in Javascript, 3D Renderring via CSS, DHTML Polygon Rendering Demo, CSS House)이 문득 떠오릅니다.

Downloads : * original - flip.js (5.82kb)
* minified - flip.js (4.93kb)

Updates : * 2008.10.15 - IE에서 발생하는 Transition 오류를 수정하였습니다.
* 2008.10.15 - 구글 크롬에서 발생하는 보더 배경색 문제를 수정하였습니다.
* 2008.10.15 - 애니메이션이 일어나는 중에 클래스를 호출하는 경우 초기화하지 않습니다.
by Anna 안나 2008. 11. 27. 23:43
http://www.tumuski.com/code/3dCSS.php

깜!짝 놀라실겁니다..



참고로, 위 사이트의 도형은 ONLY CSS코드로만 만들어진겁니다.
by Anna 안나 2008. 11. 27. 23:41
세상 만사 모든일에는 동기가 있습니다. 하지만 그 동기를 추측할 수 없는 일들을 보면 우리는 괴팍하다거나 이해할 수 없다는 말들을 하곤 하죠. 오늘은 제가 그런 소리를 좀 들어볼 각오로 괴상한 퀴즈 하나를 준비 했습니다. CSS(Cascading Style Sheet)를 이용하여 도무지 이해할 수 없는 일을 하려고 합니다. 이것은 실무에 거의 도움이 되지 않을지도 모릅니다. 하지만 정답을 알게 된 순간 여러분들은 생각의 가지를 펼쳐서 창의적으로 이것을 실무에 적용할 수도 있습니다. CSS에 자신있는 분들은 도전하세요!

HTML/CSS를 이용하여 화면에 보이는 삼각형의 너비와 높이 및 꼭지점 위치가 동일한 도형을 만들어 보세요. 단, 이것을 만들기 위하여 준수해야 하는 조건은 다음과 같습니다. HTML과 CSS만을 사용하고 문법적으로 유효해야 합니다. HTML Validation Test, CSS Validation TestImage, Javascript, SVGScalable Vector Graphics 등 다른 언어는 전혀 사용하지 않습니다.body 엘리먼트 안쪽에는 다른 엘리먼트나 문자등 아무것도 넣지 않습니다.Internet Explorer 6~8, Firefox 2~3, Safari 3.x, Opera 9.x, Chrome 브라우저에서 동일하게 보여야 합니다. 조건이 좀 까다롭죠? ^^; 아주 조금 힌트를 드리자면 실무에서는 거의 사용되지 않는 기교라서 여러분들은 고정관념에서 벗어나셔야 할껍니다.
by Anna 안나 2008. 11. 27. 23:39
메모장을 열고 아래와 같이 입력한 후 css0013.htm으로 저장합니다.




Underline 설정
Overline 설정
Line-through 설정
왼쪽정렬
가운데정렬
오른쪽정렬
기준아랫첨자
기준윗첨자
노란색을 배경색으로 설정
파란색을 배경색으로 설정
붉은색을 배경색으로 설정

1. text-decoration:underline
밑줄을 설정합니다. 2. text-decoration:overline
윗줄을 설정합니다. 3. text-decoration:line-through
취소선을 설정합니다. 4. text-align:left
왼쪽 정렬입니다. 5. text-align:center
가운데 정렬입니다. 6. text-align:right
오른쪽 정렬입니다. 7. vertical-align:sub
윗첨자 설정입니다. 8. vertical-align:super
아랫첨자 설정입니다. 9. background-color:yellow
배경색을 노란색으로 설정 : 색상을 직접 입력했습니다. 10. background-color:rgb(0,0,255)
배경색을 파란색으로 설정 : rgb 색상 코드를 입력했습니다. 11. background-color:#ff0000
배경색을 붉은색으로 설정 : 색상 코드를 입력했습니다. ※배경색은 색상 이름을 직접 넣는 방법, rgb(수치,수치,수치)를 이용하는 방법, 그리고 색상코드를 입력하는 방법이 있습니다. ※vertical-align의 종류
baseline : 문자의 기초선에 맞추어 정렬
top : 문자열의 상단에 정렬
middle : 문자열의 중앙을 기초선으로 해서 정렬
bottom : 문자열의 하단에 정렬
text-top : 문자열의 위선을 기초선으로 해서 정렬
text-bottom : 문자열의 아래선을 기초선으로 해서 정렬
백분율 : 문자 높이의 백분율로 기초선 결정
by Anna 안나 2008. 11. 25. 23:41
1. 테이블 고정
view plaincopy to clipboardprint? <table width=100px height=5px style="table-layout:fixed"> <tr> <td> <div style="width:100%;height:100%;overflow:auto;"> 여기 내용이 테이블 길이보다 길어지면 스크롤바가 생기게 됨. </div> </td> </tr> </table> <table width=100px height=5px style="table-layout:fixed"> <tr> <td> <div style="width:100%;height:100%;overflow:auto;"> 여기 내용이 테이블 길이보다 길어지면 스크롤바가 생기게 됨. </div> </td> </tr> </table>
2. td안의 텍스트 길이 고정
view plaincopy to clipboardprint? <td height="auto" style="word-break:break-all"> 글자가 테이블길이만큼 쓰여지고 나머지는 다음줄에 이어서 쓰여짐. </td> <td height="auto" style="word-break:break-all"> 글자가 테이블길이만큼 쓰여지고 나머지는 다음줄에 이어서 쓰여짐. </td>

1. style="table-layout:fixed"

테이블의 크기를 가로세로 모두 고정시킴.

2. style="word-break:break-all;"

고정된 테이블에 긴 글을 넣을경우 가로가 고정되어 있으므로 글자가 잘려 보이는 경우가 발생.
이것을 방지하고 글의 자동 줄바꿈 효과

3. height="auto"

고정된 테이블의 세로때문에 글이 고정된 세로길이까지만 보인다.
이것을 방지하기위해 세로의 길이를 오토로 조정해줌
by Anna 안나 2008. 11. 23. 17:31
나는 워드프레스에서 새글을 작성할 때 Blockquote(인용문)이라는 빠른태그를 자주 사용하는 편이다. 웹서핑을 하다보면, blockquote에 스타일쉿을 사용하여 예쁘게 꾸며논 블로그나 게시판을 쉽게 찾을 수 있다. 나 역시 박스 형식의 스타일쉿을 사용하곤 했는데, Dmitri Von Klein의 블로그를 보고 따옴표로 바꿔봤다. BLOCKQUOTE 요소는 인용한 단락을 표시할 때 사용합니다. BLOCKQUOTE는 Q 요소와는 달리 P나 TABLE과 같은 블록 요소를 포함할 수 있습니다. 하지만 BLOCKQUOTE 요소는 문단이나 인라인 요소 안에 포함될 수 없습니다. 출처 : HTML 사전 문제는 LikeJazz님의 글처럼 p 태그가 2개 이상 사용된 blockquote에서는 제대로 출력되지 않는다. 이는 출처 부분의 p 태그에 클래스를 하나 더 삽입해서 해결해야 한다. 사실, CSS2의 :after, :befere를 사용하면 이런 꽁수들을 모두 해결할 수 있다. 하지만, 인터넷익스플러가 이를 표현하지 못하기 때문에 일이 복잡하게 꼬이는 것이다.

blockquote {
background: URL(/blog/wp-content/themes/Blix/images/spring_flavour/bq-bg-b.gif) no-repeat;
margin: 10px 10px;
padding: 5px 0 0 30px;
}
blockquote p {
background: URL(/blog/wp-content/themes/Blix/images/spring_flavour/bq-bg-a.gif) no-repeat right bottom;
margin: 5px;
padding: 0 30px 5px 0;
이 글의 스타일쉿은 여기에서 확인할 수 있다.
by Anna 안나 2008. 11. 16. 19:53
Rated-R님의 글에도 소개된 것처럼, CSS 사용할때 단축 속성을 사용하면 코드를 줄일 수 있다. 이러한 CSS의 모든 속성에 shorthand properties(단축 속성)을 사용할 수 있는 것이 아닌, 아래의 몇몇 속성에서만 사용 가능하다. font 단축 속성
구문 : { font: font-style | font-variant | font-weight | font-size | line-height | font-family }
예제 : { font: 0.75em/1.4em 돋음, san-serif; } margin 단축 속성
구문 : { margin: margin-top | margin-right | margin-bottom | margin-left }
예제 : { margin: 1em 2em 3em 4em; } padding 단축 속성
구문 : { padding: padding-top | padding-right | padding-bottom | padding-left }
예제 : { padding: 1em 2em 3em 4em; } border 단축 속성
구문 : { border: border-width | border-style | color }
예제 : { border: 1px dotted #123456; } border-top, border-right, border-botoom, border-left 단축 속성
구문 : { border-top: border-width | border-style | color }
예제 : { border-top: 1px dotted #123456; } list-style 단축 속성
구문 : { list-style: list-style-type | list-style-position | list-style-image }
예제 : { list-style: URL(”hooney.gif”) inside disc; } background 단축 속성
구문 : { background: background-color | background-image | background-repeat | background-attachment | background-position }
예제 : {background: #123456 URL(”hooney.net”) no-repeat center left; } 위의 단축속성의 구문은 순서가 바껴도 IE6, FF1, NN7 등 대부분의 최근 브라우저에서 자동으로 해석해 주지만, 구식 브라우저(NN4, IE5 등)의 경우 바르게 표현하지 않는 문제가 있으므로, 가급적 단축속성 구문을 지켜야 한다.
단, margin과 padding의 CSS 단축속성의 구문은 반드시 지켜져야 한다. (위에서부터 시계방향으로…) 톱 스타일(top style)과 같은 CSS 전문 프로그램에서는 자동으로 단축속성을 정리해주는 기능이 포함되어 있다.
by Anna 안나 2008. 11. 16. 19:50
웹 브라우저마다 각각 default CSS가 존재합니다. cascade한 CSS의 특성상, 제작자가 작성한 CSS도 브라우저의 디폴트 CSS의 영향을 받습니다. 웹 사이트가 브라우저마다 조금씩 다르게(경우에 따라 심각하게) 표현되는 이유가 바로 default CSS 때문입니다. ((-------IMAGE-------)) W3C에서 예제로 보여준 default CSS와 파이어폭스(FireFox)의 default CSS, 그리고 Quirks 모드에서 default CSS를 비교함으로써, 다양한 브라우저들의 default CSS를 보다 쉽게 이해할 수 있습니다. 아쉽게도 windows 환경에서 IE와 Opera, Safari는 dll 파일 형식으로 작성되어 확인하기 어렵네요. default CSS의 위치/경로 W3C의 default CSS - http://www.w3.org/TR/CSS21/sample.html 파이어폭스의 default CSS - C:\Program Files\Mozilla Firefox\res\HTML.css (windows xp) 파이어폭스의 Quirks 모드에서 default CSS - C:\Program Files\Mozilla Firefox\res\quirks.css (windows xp) W3C의 default CSS
HTML, address, blockquote, body, dd, div, dl, dt, fieldset, form, frame, frameset, h1, h2, h3, h4, h5, h6, noframes, ol, p, ul, center, dir, hr, menu, pre { display: block }
li { display: list-item }
head { display: none }
table { display: table }
tr { display: table-row }
thead { display: table-header-group }
tbody { display: table-row-group }
tfoot { display: table-footer-group }
col { display: table-column }
colgroup { display: table-column-group }
td, th { display: table-cell }
caption { display: table-caption }
th { font-weight: bolder; text-align: center }
caption { text-align: center }
body { margin: 8px }
h1 { font-size: 2em; margin: .67em 0 }
h2 { font-size: 1.5em; margin: .75em 0 }
h3 { font-size: 1.17em; margin: .83em 0 }
h4, p, blockquote, ul, fieldset, form, ol, dl, dir, menu { margin: 1.12em 0 }
h5 { font-size: .83em; margin: 1.5em 0 }
h6 { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4, h5, h6, b, strong { font-weight: bolder }
blockquote { margin-left: 40px; margin-right: 40px }
i, cite, em, var, address { font-style: italic }
pre, tt, code, kbd, samp { font-family: monospace }
pre { white-space: pre }
button, textarea, input, select { display: inline-block }
big { font-size: 1.17em }
small, sub, sup { font-size: .83em }
sub { vertical-align: sub }
sup { vertical-align: super }
table { border-spacing: 2px; }
thead, tbody, tfoot { vertical-align: middle }
td, th { vertical-align: inherit }
s, strike, del { text-decoration: line-through }
hr { border: 1px inset }
ol, ul, dir, menu, dd { margin-left: 40px }
ol { list-style-type: decimal }
ol ul, ul ol, ul ul, ol ol { margin-top: 0; margin-bottom: 0 }
u, ins { text-decoration: underline }
br:before { content: "\A" }
:before, :after { white-space: pre-line }
center { text-align: center }
:link, :visited { text-decoration: underline }
:focus { outline: thin dotted invert }
/* Begin bidirectionality settings (do not change) */
BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }
BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }
*[DIR="ltr"] { direction: ltr; unicode-bidi: embed }
*[DIR="rtl"] { direction: rtl; unicode-bidi: embed }
@media print {
h1 { page-break-before: always }
h1, h2, h3, h4, h5, h6 { page-break-after: avoid }
ul, ol, dl { page-break-before: avoid }
}

파이어폭스(FireFox)의 default CSS (windows xp) *|:-moz-any-link img, img[usemap], object[usemap] {
border:2px solid;
}
[dir=ltr] {
direction:ltr;
unicode-bidi:embed;
}
[dir=rtl] {
direction:rtl;
unicode-bidi:embed;
}
abbr:focus, acronym:focus, address:focus, applet:focus, b:focus, base:focus, big:focus, blockquote:focus, br:focus, canvas:focus, caption:focus, center:focus, cite:focus, code:focus, col:focus, colgroup:focus, dd:focus, del:focus, dfn:focus, dir:focus, div:focus, dl:focus, dt:focus, em:focus, fieldset:focus, font:focus, form:focus, h1:focus, h2:focus, h3:focus, h4:focus, h5:focus, h6:focus, hr:focus, i:focus, img:focus, ins:focus, kbd:focus, label:focus, legend:focus, li:focus, link:focus, menu:focus, object:focus, ol:focus, p:focus, pre:focus, q:focus, s:focus, samp:focus, small:focus, span:focus, strike:focus, strong:focus, sub:focus, sup:focus, table:focus, tbody:focus, td:focus, tfoot:focus, th:focus, thead:focus, tr:focus, tt:focus, u:focus, ul:focus, var:focus { outline:1px dotted invert; }
abbr[title], acronym[title] { border-bottom:dotted 1px; }
address { display:block; font-style:italic; }
area, base, basefont, head, meta, script, style, title, noembed, param { display:none; }
b, strong { font-weight:bolder; }
bdo[dir] { unicode-bidi:bidi-override; }
big { font-size:larger; }
blink { text-decoration:blink; }
blockquote { display:block; margin:1em 40px; }
blockquote[type=cite] { border-color:blue; border-left:solid; border-width:thin; display:block; margin:1em 0; padding-left:1em; }
body { display:block; margin:8px; }
canvas { -moz-user-select:none; }
caption { -moz-box-sizing:border-box; display:table-caption; text-align:center; }
center { display:block; text-align:0; }
col { display:table-column; }
colgroup { display:table-column-group; }
dd { -moz-margin-start:40px; display:block; }
frame { border:none!important; }
frameset { border:none!important; display:block!important; float:none!important; overflow:0; position:static!important; }
h1 { display:block; font-size:2em; font-weight:bold; margin:.67em 0; }
h2 { display:block; font-size:1.5em; font-weight:bold; margin:.83em 0; }
h3 { display:block; font-size:1.17em; font-weight:bold; margin:1em 0; }
h4 { display:block; font-weight:bold; margin:1.33em 0; }
h5 { display:block; font-size:.83em; font-weight:bold; margin:1.67em 0; }
h6 { display:block; font-size:.67em; font-weight:bold; margin:2.33em 0; }
hr { -moz-box-sizing:border-box; -moz-float-edge:margin-box; border:1px 0; display:block; height:2px; margin:.5em auto; }
hr[size=1] {
border-style:0 none none;
}
html, div, map, dt, isindex, form { display:block; }
i, cite, em, var, dfn { font-style:italic; }
iframe { border:2px inset; }
img[usemap], object[usemap] { color:blue; }
li { -moz-float-edge:margin-box; display:list-item; }
listing { display:block; font-family:0; font-size:medium; margin:1em 0; white-space:pre; }
marquee { -moz-binding:url(chrome://xbl-marquee/content/xbl-marquee.xml#marquee-horizontal); display:block; }
marquee[direction=up], marquee[direction=down] { -moz-binding:url(chrome://xbl-marquee/content/xbl-marquee.xml#marquee-vertical); height:200px; }
nobr { white-space:nowrap; }
noframes { display:none; }
ol { -moz-padding-start:40px; display:block; list-style-type:decimal; margin:1em 0; }
ol ol ul, ol ul ul, ol menu ul, ol dir ul, ol ol menu, ol ul menu, ol menu menu, ol dir menu, ol ol dir, ol ul dir, ol menu dir, ol dir dir, ul ol ul, ul ul ul, ul menu ul, ul dir ul, ul ol menu, ul ul menu, ul menu menu, ul dir menu, ul ol dir, ul ul dir, ul menu dir, ul dir dir, menu ol ul, menu ul ul, menu menu ul, menu dir ul, menu ol menu, menu ul menu, menu menu menu, menu dir menu, menu ol dir, menu ul dir, menu menu dir, menu dir dir, dir ol ul, dir ul ul, dir menu ul, dir dir ul, dir ol menu, dir ul menu, dir menu menu, dir dir menu, dir ol dir, dir ul dir, dir menu dir, dir dir dir { list-style-type:square; }
ol ul, ul ul, menu ul, dir ul, ol menu, ul menu, menu menu, dir menu, ol dir, ul dir, menu dir, dir dir { list-style-type:circle; }
p, dl, multicol { display:block; margin:1em 0; }
pre[_moz_quote=true] { color:blue; }
q:after { content:close-quote; }
q:before { content:open-quote; }
s, strike, del { text-decoration:line-through; }
small { font-size:smaller; }
spacer { float:none!important; position:static!important; }
span[_moz_quote=true] { color:blue; }
sub { font-size:smaller; line-height:normal; vertical-align:sub; }
sup { font-size:smaller; line-height:normal; vertical-align:super; }
table { -moz-box-sizing:border-box; border-collapse:separate; border-spacing:2px; display:table; margin-bottom:0; margin-top:0; text-indent:0; }
table > tr { vertical-align:middle; }
table[align=center] > caption { margin-left:auto; margin-right:auto; }
table[align=center] > caption[align=left] { margin-right:0; }
table[align=center] > caption[align=right] { margin-left:0; }
table[align=left] { float:left; }
table[align=right] { float:right; text-align:start; }
table[rules]:not([rules=none]) {
border-collapse:collapse;
}
tbody { display:table-row-group; vertical-align:middle; }
td { display:table-cell; padding:1px; text-align:inherit; vertical-align:inherit; }
tfoot { display:table-footer-group; vertical-align:middle; }
th { display:table-cell; font-weight:bold; padding:1px; vertical-align:inherit; }
thead { display:table-header-group; vertical-align:middle; }
tr { display:table-row; vertical-align:inherit; }
tr > form:-moz-is-html, tbody > form:-moz-is-html, thead > form:-moz-is-html, tfoot > form:-moz-is-html, table > form:-moz-is-HTML {
display:none!important;
}
tt, code, kbd, samp { font-family:0; }
u, ins { text-decoration:underline; }
ul ul, ul ol, ul dir, ul menu, ul dl, ol ul, ol ol, ol dir, ol menu, ol dl, dir ul, dir ol, dir dir, dir menu, dir dl, menu ul, menu ol, menu dir, menu menu, menu dl, dl ul, dl ol, dl dir, dl menu, dl dl { margin-bottom:0; margin-top:0; }
ul, menu, dir { -moz-padding-start:40px; display:block; list-style-type:disc; margin:1em 0; }
xmp, pre, plaintext { display:block; font-family:0; margin:1em 0; white-space:pre; }
@media print {
blink { text-decoration:none; }
marquee { -moz-binding:none; }
}

파이어폭스(FireFox)의 quirks default CSS (windows xp) :not(dl) > dd { display:inline; margin:0; }
:not(dl) > dd:before { -moz-margin-end:40px; content:"\A "; display:inline; font-size:1px; line-height:0; white-space:pre; }
[_moz-rs-heading] { font-size:inherit!important; }
body > form:-moz-first-node, td > form:-moz-first-node, th > form:-moz-first-node, body > p:-moz-first-node, td > p:-moz-first-node, th > p:-moz-first-node, body > dl:-moz-first-node, td > dl:-moz-first-node, th > dl:-moz-first-node, body > multicol:-moz-first-node, td > multicol:-moz-first-node, th > multicol:-moz-first-node, body > blockquote:-moz-first-node, td > blockquote:-moz-first-node, th > blockquote:-moz-first-node, body > h1:-moz-first-node, td > h1:-moz-first-node, th > h1:-moz-first-node, body > h2:-moz-first-node, td > h2:-moz-first-node, th > h2:-moz-first-node, body > h3:-moz-first-node, td > h3:-moz-first-node, th > h3:-moz-first-node, body > h4:-moz-first-node, td > h4:-moz-first-node, th > h4:-moz-first-node, body > h5:-moz-first-node, td > h5:-moz-first-node, th > h5:-moz-first-node, body > h6:-moz-first-node, td > h6:-moz-first-node, th > h6:-moz-first-node, body > listing:-moz-first-node, td > listing:-moz-first-node, th > listing:-moz-first-node, body > plaintext:-moz-first-node, td > plaintext:-moz-first-node, th > plaintext:-moz-first-node, body > xmp:-moz-first-node, td > xmp:-moz-first-node, th > xmp:-moz-first-node, body > pre:-moz-first-node, td > pre:-moz-first-node, th > pre:-moz-first-node, body > ul:-moz-first-node, td > ul:-moz-first-node, th > ul:-moz-first-node, body > menu:-moz-first-node, td > menu:-moz-first-node, th > menu:-moz-first-node, body > dir:-moz-first-node, td > dir:-moz-first-node, th > dir:-moz-first-node, body > ol:-moz-first-node, td > ol:-moz-first-node, th > ol:-moz-first-node {
margin-top:0;
}
body > form:-moz-only-whitespace:-moz-first-node, td > form:-moz-only-whitespace:-moz-first-node, th > form:-moz-only-whitespace:-moz-first-node, body > p:-moz-only-whitespace:-moz-first-node, td > p:-moz-only-whitespace:-moz-first-node, th > p:-moz-only-whitespace:-moz-first-node, body > dl:-moz-only-whitespace:-moz-first-node, td > dl:-moz-only-whitespace:-moz-first-node, th > dl:-moz-only-whitespace:-moz-first-node, body > multicol:-moz-only-whitespace:-moz-first-node, td > multicol:-moz-only-whitespace:-moz-first-node, th > multicol:-moz-only-whitespace:-moz-first-node, body > blockquote:-moz-only-whitespace:-moz-first-node, td > blockquote:-moz-only-whitespace:-moz-first-node, th > blockquote:-moz-only-whitespace:-moz-first-node, body > h1:-moz-only-whitespace:-moz-first-node, td > h1:-moz-only-whitespace:-moz-first-node, th > h1:-moz-only-whitespace:-moz-first-node, body > h2:-moz-only-whitespace:-moz-first-node, td > h2:-moz-only-whitespace:-moz-first-node, th > h2:-moz-only-whitespace:-moz-first-node, body > h3:-moz-only-whitespace:-moz-first-node, td > h3:-moz-only-whitespace:-moz-first-node, th > h3:-moz-only-whitespace:-moz-first-node, body > h4:-moz-only-whitespace:-moz-first-node, td > h4:-moz-only-whitespace:-moz-first-node, th > h4:-moz-only-whitespace:-moz-first-node, body > h5:-moz-only-whitespace:-moz-first-node, td > h5:-moz-only-whitespace:-moz-first-node, th > h5:-moz-only-whitespace:-moz-first-node, body > h6:-moz-only-whitespace:-moz-first-node, td > h6:-moz-only-whitespace:-moz-first-node, th > h6:-moz-only-whitespace:-moz-first-node, body > listing:-moz-only-whitespace:-moz-first-node, td > listing:-moz-only-whitespace:-moz-first-node, th > listing:-moz-only-whitespace:-moz-first-node, body > plaintext:-moz-only-whitespace:-moz-first-node, td > plaintext:-moz-only-whitespace:-moz-first-node, th > plaintext:-moz-only-whitespace:-moz-first-node, body > xmp:-moz-only-whitespace:-moz-first-node, td > xmp:-moz-only-whitespace:-moz-first-node, th > xmp:-moz-only-whitespace:-moz-first-node, body > pre:-moz-only-whitespace:-moz-first-node, td > pre:-moz-only-whitespace:-moz-first-node, th > pre:-moz-only-whitespace:-moz-first-node, body > ul:-moz-only-whitespace:-moz-first-node, td > ul:-moz-only-whitespace:-moz-first-node, th > ul:-moz-only-whitespace:-moz-first-node, body > menu:-moz-only-whitespace:-moz-first-node, td > menu:-moz-only-whitespace:-moz-first-node, th > menu:-moz-only-whitespace:-moz-first-node, body > dir:-moz-only-whitespace:-moz-first-node, td > dir:-moz-only-whitespace:-moz-first-node, th > dir:-moz-only-whitespace:-moz-first-node, body > ol:-moz-only-whitespace:-moz-first-node, td > ol:-moz-only-whitespace:-moz-first-node, th > ol:-moz-only-whitespace:-moz-first-node {
margin-bottom:0;
}
dl > dl { -moz-margin-start:40px; display:block; }
form { margin:0 0 1em; }
img[align=left] { margin-right:3px; }
img[align=right] { margin-left:3px; }
input:not([type=image]), textarea { -moz-box-sizing:border-box; }
input[type=image] { border:2px solid blue; }
input[type=image][disabled] { border-color:GrayText; }
li { list-style-position:inside; }
li > ul:-moz-first-node, li > ol:-moz-first-node { padding-top:1em; }
li ul, li ol, li dir, li menu { list-style-position:outside; }
li::-moz-list-bullet { font-size:0; }
map { display:inline; }
pre[wrap], pre[cols], pre[width] { white-space:0; }
table { font-size:0; font-style:0; font-variant:0; font-weight:0; line-height:normal; text-align:start; white-space:normal; }
td > form:-moz-only-whitespace:-moz-last-node, th > form:-moz-only-whitespace:-moz-last-node, td > p:-moz-only-whitespace:-moz-last-node, th > p:-moz-only-whitespace:-moz-last-node, td > dl:-moz-only-whitespace:-moz-last-node, th > dl:-moz-only-whitespace:-moz-last-node, td > multicol:-moz-only-whitespace:-moz-last-node, th > multicol:-moz-only-whitespace:-moz-last-node, td > blockquote:-moz-only-whitespace:-moz-last-node, th > blockquote:-moz-only-whitespace:-moz-last-node, td > h1:-moz-only-whitespace:-moz-last-node, th > h1:-moz-only-whitespace:-moz-last-node, td > h2:-moz-only-whitespace:-moz-last-node, th > h2:-moz-only-whitespace:-moz-last-node, td > h3:-moz-only-whitespace:-moz-last-node, th > h3:-moz-only-whitespace:-moz-last-node, td > h4:-moz-only-whitespace:-moz-last-node, th > h4:-moz-only-whitespace:-moz-last-node, td > h5:-moz-only-whitespace:-moz-last-node, th > h5:-moz-only-whitespace:-moz-last-node, td > h6:-moz-only-whitespace:-moz-last-node, th > h6:-moz-only-whitespace:-moz-last-node, td > listing:-moz-only-whitespace:-moz-last-node, th > listing:-moz-only-whitespace:-moz-last-node, td > plaintext:-moz-only-whitespace:-moz-last-node, th > plaintext:-moz-only-whitespace:-moz-last-node, td > xmp:-moz-only-whitespace:-moz-last-node, th > xmp:-moz-only-whitespace:-moz-last-node, td > pre:-moz-only-whitespace:-moz-last-node, th > pre:-moz-only-whitespace:-moz-last-node, td > ul:-moz-only-whitespace:-moz-last-node, th > ul:-moz-only-whitespace:-moz-last-node, td > menu:-moz-only-whitespace:-moz-last-node, th > menu:-moz-only-whitespace:-moz-last-node, td > dir:-moz-only-whitespace:-moz-last-node, th > dir:-moz-only-whitespace:-moz-last-node, td > ol:-moz-only-whitespace:-moz-last-node, th > ol:-moz-only-whitespace:-moz-last-node {
margin-top:0;
}
td > p:-moz-last-node, th > p:-moz-last-node { margin-bottom:0; }
ul ul, ul ol, ul dir, ul menu, ul li, ol ul, ol ol, ol dir, ol menu, ol li, dir ul, dir ol, dir dir, dir menu, dir li, menu ul, menu ol, menu dir, menu menu, menu li { list-style-position:inherit; }
위의 CSS 코드는 Code Beautifier와 드림위버 CS3에서 제공하는 “코드 포맷 정리” 기능을 이용해서 정리했습니다.
by Anna 안나 2008. 11. 16. 19:49
px * 0.0626 = em For instance,
15px * 0.0626 = 0.939em
80px * 0.0626 = 5.008em

px and pt, amongst others, are absolute values.
em is a relative value (I think).

Using a pt or em font-size property instead of px allows for your site text to be resized according to the viewer's system settings.(link) 웹디자인을 하면서 글꼴(폰트) 크기를 표현하는 방법에는 pt, px, em, % 가 있다. 나는 이미지 사용이나 기존 테이블 레이아웃을 할 때의 습관으로 px 를 주로 사용하는 편이다. 하지만 해외 웹사이트의 대부분이 em 을 사용하며, 유동성 부분 때문에 em이 표준으로 자리잡아가고 있다. REEDdesign 사이트에 이들 수치에 대한 비교표가 있다.

by Anna 안나 2008. 11. 16. 19:31
CSS에서 사용되는 글자(폰트)크가나 width, height 등 크기를 지정할 경우 사용되는 단위로 em / px / pt / % 가 있습니다. 대부분 px 단위를 기본으로 사용하고, 글자크기는 pt, px 둘 다 사용합니다.
pt, px 가 절대적인 크기를 em, ex, %는 상위 엘리먼트에 대한 상대적인 크기를 나타내기 때문에 웹브라우저에서 글자 크기를 변경시킬수 있기 때문에 접근성이 향상됩니다.
IE에서 글자크기를 보통으로 지정했을경우 최상엘리먼트 1em은 12pt, 16px와 같습니다.

http://riddle.pl/emcalc

Points Pixels Ems Percent 6pt 8px 0.5em 50% 7pt 9px 0.55em 55% 7.5pt 10px 0.625em 62.5% 8pt 11px 0.7em 70% 9pt 12px 0.75em 75% 10pt 13px 0.8em 80% 10.5pt 14px 0.875em 87.5% 11pt 15px 0.95em 95% 12pt 16px 1em 100% 13pt 17px 1.05em 105% 13.5pt 18px 1.125em 112.5% 14pt 19px 1.2em 120% 14.5pt 20px 1.25em 125% 15pt 21px 1.3em 130% 16pt 22px 1.4em 140% 17pt 23px 1.45em 145% 18pt 24px 1.5em 150% 20pt 26px 1.6em 160% 22pt 29px 1.8em 180% 24pt 32px 2em 200% 26pt 35px 2.2em 220% 27pt 36px 2.25em 225% 28pt 37px 2.3em 230% 29pt 38px 2.35em 235% 30pt 40px 2.45em 245% 32pt 42px 2.55em 255% 34pt 45px 2.75em 275% 36pt 48px 3em 300%
by Anna 안나 2008. 11. 15. 23:17
http://riddle.pl/emcalc/ 즐추하시고, 필요하실때 들르시면 더욱 좋습니다. 요즘 줌브라우징 기능으로 em을 자주 쓰진 않겠다고 생각하면 큰오산이죠.. 아직도 익스플로러 6을 사용하시는 분들이 많이 계십니다. pt 단위는 절대적이지만, em은 상대적이고 상위엘리먼트와 하위엘리먼트에도 크기에 작은영향이 가는걸로 알고있는데요.ex) px 단위는 리플참고.. ㄱ- 죄송합니다. ㅎㅎㅎㅎㅎ em단위에 대해 모르신분들은.. em단위, em환산 이 키워드로 검색을 한번 해보시면 더더욱 도움이 될 것 같습니다. 도움이 많이 ?으면 좋겠군요.. 주의/ 혹시 em단위에 대해 모르시는 개발자분들이 햇갈릴 수 있으니 꼭 의견을 나누시고 em삽입 여부를 결정하시길..^^; - 웹뿐만하니라 온세상이 표준으로 통일하기 바라면서..
by Anna 안나 2008. 11. 15. 23:16
http://jigsaw.w3.org/css-validator/

유명한 W3 의 css validator 입니다.
by Anna 안나 2008. 11. 15. 17:19
| 1 2 3 |