CSS – 제이쿼리 내비게이션 메뉴바

데모 화면을 볼 수 있으며 우측에서 색상아이콘을 선택하고 Free Download 버튼을 클릭하면 압축파일로 다운로드 됩니다. 용량도 작아서 웹사이트에 별로 무리가 가지 않습니다. CSS3도 지원하여 그림자효과도 만들어지지만 인터넷익스플로러에서는 구현이 안되는군요. 모두 클릭해서 시험해보니 디자인이 아주 좋습니다. 최근에 생긴 사이트로 생각되는군요. 상업용으로 사용하려면 위에 보이듯이 돈을 지불하면 여러개의 스타일을 한번에 받을 수 있고 색상도 다양하게 포함됩니다. 개인용버전은 애매한 소스코드라고 되어있는데 무엇이 애매하다는 것인지는 아직 파악을 못했습니다. 특징을 보면 다음과 같습니다.

브라우저의 호환성이 있고 자바스크립트 기능을 끄더라도 CSS만으로도 작동됩니다.
검색엔진 최적화 되어있습니다.
깨끗한 Unordered List 구조입니다.
설치하기 쉽고 업데이트도 가능합니다.
환상적인 애니메이션과 컬러 전환기능(서브메뉴 선택시)이 있습니다.
다양한 색상선택이 가능합니다.
CSS로 사용자가 원하는대로 디자인 할 수 있습니다.
제이쿼리에 의해 작동됩니다.
압축해제시 3kb정도의 아주 작은 사이즈입니다.

사용해보니 작동이 잘되고 있습니다. 위에 설치한 메뉴가 이곳에서 다운받아 설치한 것입니다. 다만 개인용 무료로 사용하려면 Footer에 크레딧을 달아줘야 합니다. 이것을 제거할 경우 좌측 상단에 “No Back Link”라는 메시지가 출력됩니다. 제 블로그의 하단처럼 작은 글씨로 삽입하면 메시지가 안나타납니다.

특히 Lava Lamp식으로 메뉴에 마우스오버하면 이미지가 이동하는 것이 재밋습니다. 이런 것이 있으면 방문자가 메뉴에 마우스를 올려보는 시험을 해보게 됩니다.

설치는 CSS를 아시는 분이라면 쉽게 가능합니다. 압축을 풀면 index파일과 제이쿼리 파일, CSS 스타일 파일, 그리고 이미지 폴더가 있습니다. 인덱스파일에서 메뉴부분을 HTML 코드에 삽입하고 제이쿼리와 CSS 스타일 파일은 링크를 사용하면 됩니다.

한종류의 메뉴바에서 여러개의 컬러로 다운받아서 이미지 폴더의 이미지파일만 교체하면 간단하게 컬러를 바꿀 수 있네요.

티스토리 라이브리(LiveRe) 플러그인을 설치하니 오작동이 일어나서 설치를 취소했습니다. 참고하세요.

CSS3 – 웹표준과 W3C

 

1. CSS3의 모듈

CSS3는 CSS2.1의 확장버전으로 CSS2.1이 HTML 요소의 효과를 위한 도구였지만 CSS3는 이 효과를 보다 멋지게 표현하기 위한 도구라고 할 수 있습니다. CSS3 단계부터는 CSS항목(Specification)에 대한 개별적인 개발이 아닌 모듈형태로 개발이 되면서 하나의 모듈에는 많은 항목이 있고 하나의 모듈은 독립체로 사용됩니다. 이러한 모듈에는 선택자(Selectors), 텍스트(Text), 배경(Background) 등 여러개가 있습니다. 이러한 모듈 형태의 잇점은 모든 CSS항목이 완료되기를 기다리지 않아도 단계별 발표를 할 수 있다는 것입니다. 즉 하나의 모듈만 완료되더라도 다음에 나오는 개발단계를 단독으로 거칠 수 있기 때문에 웹브라우저의 적용이나 사용이 보다 빨리 이루어진다는 것입니다.
<W3C >

위 표에서 보면 CSS Transform은 Working Draft로 되어있지만 웹브라우저에는 적용이 되어있어서 사용이 가능합니다. 아직 W3C의 최종 Recommendation을 거치지 않았는데도 사용이 가능한 것이죠. 웹브라우저 제작자들은 이러한 단계의 CSS를 사용하기 위해서는 아래처럼 독자적인 Prefix를 붙여서 사용합니다.

transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */

2. W3C의 웹개발 단계

작년 9월 W3C(World Wide Web Consortium)에서 CSS4의 선택자 모듈에 관한 Working Draft를 발표했습니다 . 이것이 웹브라우저에 적용이 되면 웹디자인이 휠씬 편리해질 것입니다. W3C는 웹표준을 관리하기 위한 세계적인 기관으로 40여개 국가의 여러 기업, 기관들이 참여하여 웹에 사용되는 각종 웹언어를 개발하고 시험하기위해 단계별 발표를 합니다. Working Draft는 이러한 여러 단계중에 초기에 속합니다. 단계별 수준은 다음과 같습니다.

1. Working Draft

웹 커뮤니티의 리뷰를 위해 발표되는 단계로 리뷰를 통해 수정이 가해지고 여러단계의 Working Draft를 거칠 수 있습니다. Draft는 초안을 의미합니다.

2. Last Call

최종 주석을 위한 마감시간이 정해진 Working Draft입니다. 개발자 그룹의 의도대로 모듈이 작동하는 단계이지만 이후에도 중요한 수정이 가해지거나 다음단계로 넘어가기 위한 계획에 포함될 수도 있습니다.

3. Candidate Recommendation

모듈이 충분한 조건을 갖추고 안정적이며 웹브라우저 제작자들에게 적용을 권장할 만하고 개발자들도 상시 사용이 가능한 수준의 단계로 이때부터는 웹브라우저별로 달려있는 Prefix를 뗄 수가 있습니다. 이 단계에서도 수정이 가해질 수도 있지만 심각한 정도의 수정은 아닙니다.

4. Proposed Recommendation

최종 서명을 위한 W3C Advisory Committee에 보내질 정도로 성숙하여 충분한 리뷰를 거친 단계입니다. 이 단계이후로는 수정은 거의 없습니다.

5. Recommendation

완성, 종료를 의미하며 “표준”이라고 말할 수 있는 단계입니다.

3. CSS3의 주요 내용

이미지를 사용하지 않는 시각적 효과

이전단계의 CSS에서는 이미지 파일을 사용해야지만 가능했던 시각적 효과를 단지 코드만을 이용하여 가능하도록 했습니다. 예를 들면 둥근 모서리(rounded corners), 그림자 효과(drop shadows), 반투명 배경(semitransparent backgrounds), 그래디언트(gradients), 이미지 테두리(images for borders)가 있습니다. 이러한 새로운 속성들은 주로 배경(Background)이나 테두리(Border), 컬러, Image Values 모듈에 있습니다.

Box transformations

이 또한 시각적 효과를 위한 모듈로 박스의 위치를 조정한다든가 2D, 3D 공간 효과를 위한 모듈입니다. 예를들면 회전(Rotating), 확대 축소(Scaling), 기울이기(Skewing)입니다.

폰트 모듈

이제 폰트의 사용은 방문자의 컴퓨터에 내장된 폰트에 의존하지 않아도 됩니다. @font-face는 폰트파일을 서버에 업로드하여 웹디자이너가 원하는 폰트로 모든 방문자에게 동일한 폰트를 보여줄 수 있습니다.

강력한 선택자

CSS3에서는 십수개의 새로운 선택자를 도입했습니다. 대부분 pseudo-class와 attridute 선택자들입니다. HTML 요소의 특정한 부분을 타게팅하므로 웹디자인시 다양한 선택자는 자유로운 디자인을 가능하게 합니다.

Transitions and animations

CSS3의 트랜지션은 하나의 스타일에서 다른 스타일로의 부드럼고 점차적인 변화가 가능합니다. 예를 들면 마우스 오버시 버튼 색상의 변화를 줄 수 있습니다. 이는 애니메이션의 단순한 효과이지만 트랜지션모듈에 포함되고 애니메이션 모듈은 별도의 모듈로서 좀더 복잡한 스타일의 변화나 동작이 가능합니다. 이는 플래시나 자바스크립트가 필요하지 않습니다.

미디어쿼리(Media Queries)

미디어쿼리 모듈은 여러개의 스타일 시트를 여러종류의 스크린 사이즈에 따라서 변화가 가능하도록 합니다. 모바일 웹 시대에 적합한 모듈입니다.

다중 컬럼 레이아웃(Multiple-column layouts)

CSS3는 다중 컬럼 레이아웃이 쉽도록 새로운 모들을 개발했습니다. Multicolumn Layout은 하나의 그룹에 있는 텍스트가 신문처럼 여러개의 컬럼으로 나뉠 수 있도록 하는 모듈입니다. Flexible Box Layout은 기존의 position이나 float가 하는 것보다도 신축성있게 여러개의 블럭을 수평이나 수직으로 나열할 수 있는 모듈입니다. 이밖에도 Template Layout이나 Grid Positioning과 같은 실험적인 모듈이 있습니다.

4. CSS와 웹브라우저

CSS3는 현재 국민 웹브라우저인 인터넷 익스플로러로 인해서 거의 사용되지 않고 있습니다. IE9버전이 지원을 하기는 하지만 제한적입니다. 캔아이유즈닷컴 에 가면 CSS뿐만 아니라 현재 개발중이거나 발표된 웹 언어의 사용이 웹브라우저별로 가능한지 확인할 수 있습니다.

각 항목을 선택하면 5대 브라우저에서 어떤 버전이 가능한지 확인이되고 모바일 웹브라우저도 나옵니다.

CSS3의 애니메이션 부분을 보면 구글 크롬, 애플 사파리, 파이어폭스 등은 많은 버전이 지원이 가능하지만 인터넷 익스플로러는 아직 지원이 안되고 있습니다. 우리나라 국민의 대다수인 90%가 IE를 사용하고 있고 CSS의 적(Enemy)인 IE6버전을 사용하는 사람도 7%나 됩니다.

MS가 웹브라우저를 독점하던 시절의 IE6는 전세계적으로 90%이상의 점유율을 기록했습니다. 그 후유증이 위와같은 표로 나타납니다. IE는 지난해 말 공식적으로 인터넷 익스플로러 6버전을 사용하는 경우 업그레이드할 것을 권유하는 메시지를 띄우기로 결정했다고 합니다. 또한 위 사이트에 가면 IE가 지원하는 프로젝트인 IE6 카운트다운 에 참여할 수가 있죠. 즉 MS에서 제공하는 코드를 웹페이지에 삽입하면 IE6을 사용하는 방문자는 아래와 같은 메시지가 나옵니다.

한글을 선택하면 위 박스처럼 안내 메시지가 나옵니다. 우리나라의 컴퓨터 보급률에 비하면 7%는 적은 숫자죠. 이 버전을 사용하는 분들도 그만한 사정이 있는 것이겠죠.

5. CSS3와 모바일 웹브라우저

현재 모바일 웹 시장은 무한합니다. 미국의 리서치 기관인 가트너의 보고에 의하면 내년이면 모바일이 데스크탑을 넘어선다고 합니다. 모바일 웹브라우저는 HTML5와 CSS3를 적극 지원하고 있습니다. 특히 모바일 디바이스용으로 나온 제이쿼리 모바일 버전은 이 두가지 언어를 사용해야만 가능합니다.

웹브라우저 제작자가 새로운 기술인 CSS3와 HTML5의 지원 여부는 모바일시장에 달려있다고 생각됩니다. HTML5는 다양한 컨텐트 제작이 가능하므로 거의 대부분의 웹브라우저가 서로 새로운 기술을 지원하려고 적극 나서고 있습니다. 현재 HTML5의 다양한 속성도 웹브라우저 시장의 점유를 위해서 신속히 도입하려고 하죠. HTML5는 원래 2022년에나 표준으로 승인이 날 예정이지만 웹브라우저가 먼저 적용을 시키므로서 상단한 부분이 빠른 시일내에 모든 웹브라우저에 적용될 것입니다.

CSS3 – border-radius 속성 사용하기

CSS3의 border-radius는 CSS기초부분에서 많이 다루었는데 그만큼 웹페이지에서 많이 사용하는 속성입니다. 인터넷 익스프로러 8버전이하에서는 지원을 하지 않기 때문에 이미지 파일을 이용하여 여러가지 방법으로 둥근 모서리를 만들었죠. IE에서 이것만 지원해도 웹디자인은 쉬워질텐데 말이죠.

1. 웹브라우저별 접두어(Prefix)

 

border-radius 속성은 IE8이하 버전을 제외하고는 거의 모든 웹브라우저에서 지원합니다. 우리나라에서는 IE의 사용자가 아주 많습니다. IE8 이하 버전의 사용자도 아직도 많은 수를 차지합니다. 그렇기 때문에 이미지를 이용하여 둥근 모서리의 박스를 만들어서 사용할 수 밖에 없습니다. 위 표를 보면 파이어폭스 3.6이나 안드로이드 브라우저 2.1에 접두어(Prefix)인 -moz-와 -webkit-이 붙어있는데 이 버전에서 border-radius를 사용하기 위해서는 이 접두어를 붙여야 효과가 나온다는 의미입니다.

border-radius 속성은 아주 많이 사용하기 때문에 대부분의 웹브라우저에서는 접두어 없이 사용이 가능하지만 다른 속성들, 예를 들면 gradient 같은 경우 아래 사진과 같이 웹브라우저의 모든 버전에 접두어를 사용해야 원하는 효과가 나옵니다.

이와같이 접두어를 사용해야하는 것은 이전글 에서 알아보았듯이 이 속성들은 W3C의 웹개발 발표단계에서 Working Draft 단계에 있기 때문입니다. 이는 아직 시험단계로 웹브라우저 제작자들이 각자의 웹브라우저에 적용을 하여 모든 웹브라우저 같은 결과를 나타낼때까지 시험을 거치게 됩니다. 그래서 통일된 효과가 나오면 W3C에서 Candidate Recommendation단계로 승인을 하여 접두어를 뗄 수가 있게 됩니다. 그러면 위 표도 깨끗해질 것입니다. 그때까지는 웹브라우저 제작자들은 CSS3의 각 속성을 적용시키고 실험을 하므로 업그레이드가 빈번하게 일어납니다. 작년같은 경우 파이어폭스가 무려 6단계의 업그레이드를 했습니다. 파이어폭스에서는 4주간의 간격을 두고 업그레이드하기로 했답니다.

2. border-radius 속성 사용하기

border-radius.zip

#header {
background:#fff;
border:1px solid #888;
padding: 20px 20px;
border-radius:15px;
}

첨부파일을 다운받아 압축을 풀고 CSS파일을 텍스트에디터에 열고 #header 에 위처럼 border-radius:15px;를 추가 한 다음 저장하고 웹브라우저에서 확인합니다. 모서리가 둥글게 나타납니다. 속성값인 15픽셀은 반지름을 의미합니다.

모든 블럭요소의 성격을 가진 요소에 border-radius:15px;를 추가해 봅니다. #content, h2, #sidebar, blockquote, #footer에 추가하고 웹브라우저에서 보면 위처럼 나옵니다.

#header {
background:#fff;
border:1px solid #888;
padding: 20px 20px;
-moz-border-radius:15px;
-webkit-border-radius:15px;
border-radius:15px;
}

앞에서 알아본 것처럼 모든 버전에서 사용이 가능하게 하려면 위처럼 접두어가 붙은 속성과 값을 입력합니다. 접두어가 붙은 것을 상위에 놓고 없는 것은 아래에 배치합니다. 왜냐하면 접두어를 붙여야만 사용이 가능하다가도 나중에 수정을 하여 업그레이드되면 접두어가 없이 사용할 수 있는 것이 표준이므로 표준인 것이 표준이 아닌것보다 우선적용할 수 있기 때문입니다. CSS는 마지막에 선언된 것이 이전에 선언된 것보다 우선 적용하게 됩니다. CSS에서 C는 Cascading의 약자인데 이러한 우선적용원리를 의미합니다.

3. border-radius의 단축형

위에서 border-radius의 속성값으로 하나의 값을 입력했지만 사각형의 모서리는 4개이므로 4개의 값을 입력할 수가 있으며 서로 다른 값을 사용할 수도 있습니다.

#header {
background:#fff;
border:1px solid #888;
padding: 20px 20px;
-moz-border-radius:15px;
-webkit-border-radius:15px;
border-radius:15px 20px 30px 40px;
}

위처럼 사용하는 것은 단축형입니다. 4가지의 값을 다르게 하면 모서리의 둥근 정도가 다 다르게 나옵니다. 한곳만 수치를 입력하고 3곳을 0으로 하면 한곳만 둥글게 나오게 됩니다. 위 네가지 값의 순서는 다음과 같고 각 코너의 속성은 다르게 할 수도 있습니다.

border-top-left-radius:10px;
border-top-right-radius:10px;
border-bottom-right-radius:10px;
border-bottom-left-radius:10px;

좌측상단에서 시작하여 시계방향입니다. 위처럼 한곳의 모서리만 설정할 수도 있습니다. 원하는 부분만 사용할 수 있는 것이죠. Safari 4 와 Safari iOS 3은 단축형을 사용하지 못합니다.

4. border-radius의 다양한 사용법

위처럼 html에는 <div id=”circle”></div>를 추가하고 CSS에는 가로세로 100픽셀을 설정합니다. 배경색상과 테두릴 설정하고 border-radius를 50px/50px입력합니다. 이것은 앞에서 설정한 가로세로 100픽셀의 반이죠. 이처럼 설정하고 웹에서 보면 둥근 원이 나옵니다. 이것을 변형하여 50px/20px로 수정하면 어떤 모양이 나올까요.

세로를 50픽셀로 줄이고 50px/28px로 했더니 위처럼 나옵니다. 앞의 수치는 수평부분의 곡선이고 뒤의 수치는 수직부분의 곡선입니다.

슬래시를 없애고 수치를 입력하면 위처럼 나옵니다. 앞의 수치는 좌상과 우하의 수치가되고 뒤의수치는 우상과 좌하의 수치가 됩니다.

각 모서리에 대해서 별도로 설정하면 위처럼 나옵니다.

이것을 rotate를 사용해서 회전하면 눈모양이 되겠죠.

테두리를 서로 다른 수치를 넣으면 위처럼 나옵니다. 로고를 만들어도 되겠네요.

border-style 속성을 이용하면 여러가지 다양한 이미지가 나오게 됩니다.

%d 블로거가 이것을 좋아합니다: