'CSS'에 해당되는 글 12건

  1. 2013.01.08 CSS 레이아웃-중간 정렬하기
  2. 2013.01.08 CSS로만 만드는 툴팁
  3. 2013.01.08 CSS 링크 스타일
  4. 2013.01.08 CSS 핵과 필터
  5. 2013.01.08 CSS 포지션(position) 정리
728x90

CSS 레이아웃 기법은 1.포지션 ,2.플로팅, 3.마진 다루기 이렇게 크게 세 가지 개념으로 구성됩니다.

핵심 개념을 이해한다면 여러 가지 다양한 기법들은 그렇게 큰 차이가 없다는 걸 알게 되고 여러분 자신만의 방법으로 그리 어렵지 않게 직접 레이아웃을 만들 수 있습니다.

 

 

디자인 가로 중간에 배치하기

큰 모니터가 널리 보급되면서 화면 가독성을 위해 근래 계발된 사이트 대부분은 화면 중간 배치를 하고 있습니다.

중간 배치하는 디자인 크게 두가지가 있습니다.

하나는 auto마진을 이용하 방법이고 하나는 포지션과 마진에 음수값을 지정하는 방법입니다.

auto마진 이용 방법

전체를 감싸는 div가 수평 중앙에 오도록 하는 전형적인 레이아웃을 만들어 보겠습니다.

레이아웃

스타일

<body>

<div id="wrapper"></div>

</body>

#wrapper{

width: 900px;

margin: 0 auto;}

포지셔닝과 음수 마진값 이용 방법

auto마진 방법을 가장 많이 사용하지만, 이 방법은 인터넷 익스플로러 문제를 해결하기 위한 핵을 불가피하게 써야하는

경우가 발생하기도 합니다. 또한 두 개의 엘리먼트에 스타일을 적용해야 하기도 합니다. 이런 이유로 이 방법 대신

포지션과 음수 마진갑을 이용해 중간 배치를 하기도 합니다.

너비 폭을 지정하고, position 속성값을 relative로 지정합니다. 그리고 left 속성에 50%를 지정하면 왼쪽 끝에서 중간으로 오게 됩니다.

하지만 레페의 왼쪽 끝을 페이지 중간에 놓으려는 게 아니라 래퍼의 중간 점이 페이지 가운데로 오게 해야겠죠. 이를 위해서 래퍼의 왼쪽 면에 래퍼 너비 반으로 나눈 길이를 음수값 마진으로 적용하면 됩니다. 이렇게 정가운데 지점이 화면의 중간에 오게 됩니다.

레이아웃

스타일

<body>

<div id="wrapper"></div>

</body>

#wrapper{

width: 900px;

position:relative;

left:50%;

margin-left:-450px;}


출처: 네이버 블로그

주소: http://baraem2005.blog.me/20169490375

 

728x90

'CSS' 카테고리의 다른 글

CSS 스타일시트 속성정리  (0) 2013.01.08
CSS레이아웃-플로트를 이용한 2단 레이아웃  (0) 2013.01.08
CSS로만 만드는 툴팁  (0) 2013.01.08
CSS 링크 스타일  (0) 2013.01.08
CSS 핵과 필터  (0) 2013.01.08
Posted by 정망스
,

CSS로만 만드는 툴팁

CSS 2013. 1. 8. 02:53
728x90

툴팁은 title 태그를 사용한 엘리먼트에 마우스를 올리면 웹 브라우저가 표시하는 노란색 작은 텍스트 상자입니다.

자바스크립트와 CSS를 이용해서 멋진 스타일의 툴팁을 직접 만드는 사례가 있었습니다만, CSS 포지셔닝을 이용하면 순수하게 CSS만으로도 툴팁을 만들 수 있습니다.

 

먼저 의미를 살리면서 구조화된 마크업을 만듭니다.

1

2

3

4

<p><a href="http://www.baraem.net/" class="tooltip">
바램<span> 홈페이지로 이동합니다</span></a>
은 경남창원시 홈페이지 제작업체 입니다.

</p>

여기 사용한 링크와 구분하기 위해서 tooltip이라는 클래스를 지정했습니다.

링크 안에는 링크 텍스트로 표시할 글을 넣고, 그 뒤에 튤팁으로 표시할 글을 span으로 묶어 넣었습니다.

튤팁 텍스트는 괄호안에 넣어서 스타일이 적용되지 않더라도 의미를 읽을 수 있도록 했습니다.

가장 먼저 앵커의 position 속성을 relative로 지정합니다.

이렇게 하면 span의 내용을 부모 엘리먼트인 앵커의 위치를 기준으로 해서 원하는 자리에 표시되도록 할 수 있습니다. 그리고 처음부터

툴팁 텍스트가 표시되면 안되기 때문에 display속성을 none으로 지정합니다.

 

1

2

a.tooltip{position:relative;}
a.tooltip span{display:none;}

 

이제 앵커 위로 마우스가 올라오면 span의 내용이 나타나게 해야 합니다.

먼저 span의 diaplay속성값을 block으로 지정하는데, 마우스가 올라오는 상태에만 지정해야 합니다.

이 상태에서 코드를 실행해 보면, 링크 위로 마우스를 올렸을 때 링크 옆에 span에 지정한 텍스트가 표시되는 게 보일 겁니다.

앵커 오른쪽 하단에 span 텍스트가 표시되도록 하려면 span position 속성을 absolute로 바꾸고 위에서 1em만큼, 왼쪽에서 2em만큼에

해당하는 위치를 지정합니다.

 

a.tooltip:hover span{
display:block;
position:absolute;
top:1em;
left:2em;
padding:0.2em 0.6em;
border:1px solid #996633;
background-color:#ffff66;
text-decoration:none;
color::#000;
}

 

좀더 툴팁다운 모양을 만들기 위해 패딩,테두리선, 배경색까지 지정해 봅니다.

 


<마우스 롤오버시 나타난다>
 

출처: 네이버 블로그

주소: http://baraem2005.blog.me/20169490375

 

 

728x90

'CSS' 카테고리의 다른 글

CSS레이아웃-플로트를 이용한 2단 레이아웃  (0) 2013.01.08
CSS 레이아웃-중간 정렬하기  (0) 2013.01.08
CSS 링크 스타일  (0) 2013.01.08
CSS 핵과 필터  (0) 2013.01.08
CSS 포지션(position) 정리  (0) 2013.01.08
Posted by 정망스
,

CSS 링크 스타일

CSS 2013. 1. 8. 02:46
728x90

링크를 꾸미는 기본적인 코드는 아래와 같습니다.

코딩 전 스타일시티에 우선적으로 선언해 주는 것이 편리합니다.

a:link {color:#blue; text-decoration:none;} /* 방문하지 않은 링크는 파란색 */
a:visited {color:#green; text-decoration:none;} /* 방문했던 링크는 녹색 */

a:hover {color:#red; text-decoration:underline;} /* 마우스오버시 빨간색 + 언더라인 */
a:active {color:#black; text-decoration:none;} /* 마우스클릭시 검은색*/

* :link와 :visited 스타일이 :hover와 :active 스타일을 덮어쓰게 되니 링크 스타일 순서를 지켜 적용하는게 좋습니다.

a:link, a:visited, a:hover, a:active

버튼과 롤오버 효과 만들기

a {
display :block;
width:8em;
padding: 0.2em;
line-height:1.4;
background-color:#94b8e9;
border:1px solid black;
color:#000;
text-decoration:none;
text-align:center;
}

a:hover {
background-color:#369;
color:#fff;
}

이미지를 사용한 롤오버 효과

 

      (button.gif)
    
 (button_over.gif)

a {
display :block;
width:125px;
height:35px;
line-height:35px;
color:#000;
text-decoration:none;
background-image:url(button.gif);
text-indent:10px;
}

a:hover {
background-image:url(button_over.gif);
color:#fff;
}

픽시 방법을 이용한 롤오버 효과

픽시 방법은 이미지 하나를 위치 조정을 통해 불러오는 방법으로 서버 요청을 줄이고 버튼을 한곳에 모아둘수 있다는 장점이 있습니다.

   

      

(pixy-rollover.gif)

a {
display :block;
width:125px;
height:35px;
line-height:35px;
color:#000;
text-decoration:none;
background-image:url(pixy_rollover.gif);
background-position:left;
background-repeat:no-repeat;
text-indent:10px;
}

a:hover {
background-image:url(pixy_rollover.gif);
background-position:right;
background-repeat:no-repeat;
color:#fff;
}

출처: 네이버 블로그

주소: http://baraem2005.blog.me/20169490375

 

728x90

'CSS' 카테고리의 다른 글

CSS 레이아웃-중간 정렬하기  (0) 2013.01.08
CSS로만 만드는 툴팁  (0) 2013.01.08
CSS 핵과 필터  (0) 2013.01.08
CSS 포지션(position) 정리  (0) 2013.01.08
CSS 박스 모델 정리  (0) 2013.01.08
Posted by 정망스
,

CSS 핵과 필터

CSS 2013. 1. 8. 02:44
728x90

CSS코드를 올바로 작성하면 CSS를 지원하는 모든 브라우저에서 올바로 동작해야합니다. 하지만 불행하게도 브라우저에는 버그도 있고 일괄적으로 동작하지도 않습니다. 이를 해결하기 위한 아주 강력한 무기가 바로 핵(hack)과 필터(filter)입니다.

하지만 이런 강력한 기능을 사용할 때는 그에 따른 의무사항도 지켜야 하겠죠.

이런 핵과 필터에 대한 기능과 사용방법을 이번 포스팅에서 설명하겠습니다. ㅋㅋ

필터는 브라우저에 따라서 특정 규칙을 적용되도록 하거나 적용되지 않도록 하는 방법입니다.

은 원하는 방법대로 브라우저를 동작시키려고 사용하는 쉽게 말해 꼼수입니다;;

핵은 브라우저에 따라 각기 다른 규칙을 적용하기 위해 필터를 사용합니다. 또한 핵을 이용해 브라우저에서 원하는 결과를 얻기 위해 올바르지 않은 CSS를 사용하기도 합니다. 다시말해 CSS필터는 브라우저마다 다른 규칙을 적용하기 위해 사용하는 핵의 한 종류라고 할 수 있습니다.

핵 사용시 유의점

핵과 필터에 많이 의존하게 되면 오히려 복잡한 코드로 인해 기존의 코드를 읽기 어려워지게 될 수도 있습니다.

따라서 핵을 사용하기 전 단순하고 명료한 코드 관리를 우선시 하고 핵을 위한 스타일시트 파일을 별도로 만드는 것이 좋습니다.

유용한 핵


01. 언더바 핵 ( _ ) : div { _width:100px; } - Win IE 4~6에서만 스타일만 적용

02. 닷 핵 ( . ) : div { .width:100px; } - Win IE 6~7에서만 스타일 적용

03. 해시 핵 ( # ) : div { #width:100px; } - Win IE 5.5~6, Mac IE 5, Opera 7, Mozilla 계열, Firefox에 스타일 적용

04. 스타 핵 : *html div { width:100px; } - Win IE 4~6, Mac IE 4~5에 적용

05. 스타7 핵 : html*div { width:100px; } - Win IE 5.5~6, Mac IE 5, Safari에 적용

06. xmlns 속성 핵 : html[xmlns] div { width:100px; }
- Mozilla, Firefox, Opera, Safari 등 속성 선택자를 지원하는 브라우저에 적용

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

08. IE 8에서만 적용 : div { width/***/:100px; } - IE 8에서만 적용

09. IE 8을 포함한 IE버젼에서만 적용 : div { width:100px\; } - IE에서만 적용

10. IE 7, Opera 적용 : *+html body div { width:100px; }

- IE 7, Opera 8 이후 버전 적용, Opera를 배제한 IE7전용으로 하고 싶을 때는

*+html>/**/body 로 Opera 전용 속성 기술

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

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

13. 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 지원하지 않음

14. Mac IE 5 제외시키기 : div { /*\*/width:100px; /* */ } - Mac용 IE 5에서는 적용시키기

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

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

17. Win IE 6 제외시키기 : div { width/**/:100px; } - Win용 IE 6에서는 적용 제외시키기

18. IE 7, IE 8에 적용: html>body div { width:100px; } - IE 7, IE 8에서만 적용

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

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

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

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

출처: 네이버 블로그

주소: http://baraem2005.blog.me/20169490375

728x90

'CSS' 카테고리의 다른 글

CSS로만 만드는 툴팁  (0) 2013.01.08
CSS 링크 스타일  (0) 2013.01.08
CSS 포지션(position) 정리  (0) 2013.01.08
CSS 박스 모델 정리  (0) 2013.01.08
'CSS'란 무엇인가?  (0) 2013.01.08
Posted by 정망스
,
728x90

보통 p, h1, div 같은 엘리먼트를 블록 엘리먼트라고 부릅니다.

이런종류는 화면에 표시될 때 블록상자처럼 표시하기 때문에 이렇게 불리우게 되었습니다.

반면에 strong, spen 등과 같은 엘리먼트는 한줄이거나 한줄의 박스로 표시되기 때문에 인라인 엘리먼트라 불리웁니다.

블록박스는 하나씩 세로 방향으로 나타나고

인라인박스는 수평방향으로 자리를 잡게됩니다.

여기에 포지션 방식인 normal flow(일반흐름방식), float(플로트방식), absolute positoin(절대위치방식) 방식을 이용하면 위치를 조정할 수 있게됩니다.

상대위치

상대위치(relative positioning) 개념은 쉽게 이해할 수 있을 겁니다. 해당위치를 유지하면서 시작점으로 부터 top, bottom, left, right 값에 따라 수평, 수직방향으로 이동합니다.

 


 

절대위치

절대위치(absolute positioning)은 문서의 흐름에서 벗어나 절대위치로 동작하게 됩니다. 상대위치가 지정된 조상 엘리먼트 중 가장 가까운 엘리먼트의 위치에서 수평, 수직방향으로 이동하게 됩니다.

 

 

* 이런 위치값을 이용하다보면 박스간 겹치는 일이 발생하게 됩니다. 이때 유용한 속성이 z-index입니다. 여러개의 박스가 위아래로 겹칠때 z-index값이 높은 박스가 위로 올라오게 됩니다.

고정위치

고정위치(fixed positioning)은 절대 위치 지정의 하위 분류에 속합니다. 이 방법을 이용하며 브라우저 창에 항상 동일한 위치에 표시되는 엘리먼트를 만들 수 있습니다.

플로팅

박스를 플로트로 띄우게 되면 그 박스를 둘러싸고 있는 박스나 플로트가 지정된 다른 박스의 왼쪽이나 오른쪽 끝면에 닿도록 이동시킬 수 있습니다.

 

 

라인박스와 플로트 해제방법

라인박스가 플로트된 박스 옆으로 흐르지 않도록 하려면 clear를 적용해서 플로트를 해제해야 합니다.

clear 속성에 들어갈 수 있는 값으로는 left, right, both, none이 있어서 박스의 어느쪽에서 이어서 표시되지 않도록 지정할 수 있습니다.

문단 왼쪽에 그림 하나를 플로트로 띄우고 싶다면 다음과 같은 코드를 작성할 수 있습니다.

 

.news { background-color:gray; border:solid 1px black;}

.news img {float:left;}

.new p {float:right;}

<div class="news">

<img src="new-pic.jpg"/>

<p>텍스트 표시 부분</p>

</div>

 

 

.news { background-color:gray; border:solid 1px black;}

.news img {float:left;}

.new p {float:right;}

.clear {clear:both;}

<div class="news">

<img src="new-pic.jpg"/>

<p>텍스트 표시 부분</p>

<div class="clear"></div>

</div>

위와 같이 별로의 엘리먼트를 추가하여 플로트를 해제하는 방법이 있는가 가면 CSS를 이용한 방법도 있습니다.

:after라는 유사 클래스와 content라는 속성을 활용하며 엘리먼트의 내용 끝 부분에 새로운 내용을 추가할수도 있습니다.

.news:after{content:"."; height:0; visibility:block; clear:both; }

 

하지만 이러한 방법은 6이하 버전에서는 실행되지 않습니다.

이같은 익스버전에 따른 문제를 해결하기 위해 가장 많이 사용하는 방법으로는

홀리 핵이 있습니다.

출처: 네이버 블로그

주소 :http://baraem2005.blog.me/20169490375

728x90

'CSS' 카테고리의 다른 글

CSS로만 만드는 툴팁  (0) 2013.01.08
CSS 링크 스타일  (0) 2013.01.08
CSS 핵과 필터  (0) 2013.01.08
CSS 박스 모델 정리  (0) 2013.01.08
'CSS'란 무엇인가?  (0) 2013.01.08
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침