이번에는 제가 2007년 11월 29일에 강의할때 알려드렸던 가상 선택자를 사용하지 않은 활용 방법입니다.
- 내용
- 내용
- 내용
로 많이 들 사용하고 계십니다. 이렇게 사용하는
이유는 IE 구 버전에 수도 클래스인 “first-child”(IE6 미지원), last-child(미지원) 이 되기 때문에 일일히 클래스명을 삽입할 경우가 생깁니다.
고정인 경우 “first”같은 클래스를 넣어도 상관없지만 유동적인 부분에서 사용하면 개발에서 조건문을 한번더 사용해야하는 번거로움이 있습니다. 이를 해결하기 위해서 margin의 음수 값과 overflow:hidden; 을 이용하여 제작을 할수 있습니다.
단점 : div를 한번더 감싸고 overflow:hidden; 속성 때문에 외부로(클릭시 레이어) element가 빠져 나가지 않는다.
사용처 : 위의 조건이 아닌경우는 사용하여도 무방하다.
HTML –
- 갤러리1
- 갤러리2
- 갤러리3
CSS –
1 2 3 4 5 6 7 8 | .gallery {width: 300px;position:relative; overflow: hidden; /* 레이아웃 넓이 */ } .gallery ul {margin-left: -11px; /* 여백만큼 이동 */ width: 400px; /* 컨텐츠 총 넓이 */ } .gallery ul li { float: left; width: 80px; height: 20px; padding-left: 20px; border-left: 1px solid #666; } |
2. 상하로 디자인된 형태 입니다
디자인
보통은 아래의 코드와 같이 사용합니다.
HTML –
- 갤러리1
- 갤러리2
- 갤러리3
- 갤러리1
- 갤러리2
- 갤러리3
- 갤러리1
- 갤러리2
- 갤러리3
CSS –
1 2 3 4 5 6 7 8 | .gallery {width: 300px; /* 레이아웃 넓이 */ } .gallery ul {border-bottom: 1px solid #000;} .gallery ul li { float: left; width: 80px; height: 20px; padding:10px; } .gallery ul.end {border-bottom:0;} |
변경된 형태
준비할 이미지
갤러리의 높이+라인과 같이 자른다 라인을 자를때 라인을 제외한 배경은 투명으로 처리하는게 좋습니다. (위에 이미지 있음)
HTML –
- 갤러리1
- 갤러리2
- 갤러리3
- 갤러리1
- 갤러리2
- 갤러리3
- 갤러리1
- 갤러리2
- 갤러리3
CSS –
1 2 3 4 5 6 7 8 9 10 11 12 | .gallery { width: 300px; position: relative; overflow: hidden; /* 레이아웃 넓이 */ } .gallery ul {background: url('이미지') 0 0 repeat; margin-top: -1px /* 라인만큼 위로 당겨줍니다. */} .gallery ul li { float: left; width: 80px; height: 31px; /* 라인을 포함한 높이를 줍니다. */ padding:10px; } .gallery ul.end {border-bottom:0;} |
이제 적용하시면 원하는 효과를 얻을 수 있습니다.
주의 : 소스에 overflow:hidden; 과 position: relative;를 같이 사용하였는데
position: relative;를 사용하지 않으면 컨텐츠가 밖으로 노출이 됩니다.
overflow:hidden과 margin음수값을 이용하면 보다 편리하게 퍼블리싱이 가능합니다.
하지만 너무 많은 남발의 경우 많은 버그 및 사용성의 불편함이 생길수 있습니다. 확실한 테스트후에 응용하세요
처음에 적은 글 처럼 컨텐츠가 확대 되거나 특정 이벤트 후 absolute로 동작되는 element가 있으면 overflow:hidden;때문에 컨텐츠가 사라지니
충분한 주의를 기울여서 사용하셔야 합니다.