레이블이 css인 게시물을 표시합니다. 모든 게시물 표시
레이블이 css인 게시물을 표시합니다. 모든 게시물 표시

2007년 7월 4일 수요일

[css] overflow-x, -y

overflow:scroll을 사용하면 수직,수평방향으로 스크롤바가 모두 생기기 때문에 보기가 안좋은 경우가 있습니다. 이런 경우에는 overflow-x, overflow-y를 사용하세요. 수직 또는 수평 한쪽 방향만 스크롤 출력이 가능합니다.

w3 문서를 보니
'Overflow' is a shorthand for 'overflow-x' and 'overflow-y'. It sets both to the same value.
라고 되어 있네요 =. =;;

출처 : CSS3 module in w3.org


P.S. Safari에서는 overflow-x, overflow-y가 설정이 되지 않더군요. overflow:auto로 설정하는 경우 x 또는 y축 방향으로 자동적으로 설정됩니다. {overflow:auto; overflow-x:hidden; overflow-y:auto;}로 설정하면 Safari나 다른 브라우져에서도 y축방향으로만 설정되게 됩니다.

2007년 5월 10일 목요일

JavaScript와 CSS를 하나의 파일안에서 사용하기

Ajaxian에 재미있는 기사가 올라왔습니다.
JavaScript와 CSS를 하나의 파일로 쓰는 방법에 관한 기사(Squeeze CSS and JS into one file)인데요. 브라우져의 JavaScript파서와 CSS파서가 <!--에 대해서 동일하게 주석(또는 무시)처리를 한다는 점을 이용하였더군요.
<!-- /*
    function t(){}
<!-- */
<!-- body {background-color:Aqua;}
- CSS 파서의 경우 <!--를 만나는 경우 무시를 해버립니다.
- JavaScript 파서의 경우 <!--를 만나는 경우 한 줄을 주석처리합니다.

따라서, 위의코드를 CSS파서에서 보면 다음과 같이 인식을 합니다 .
<!-- /* CSS파서는 여기를 주석처리 합니다.
    function t(){}
<!-- */
<!-- body {background-color:Aqua;}
<!--를 무시하고 /* */ 부분을 주석처리하고 남은 나머지 부분을 CSS로 인식합니다.

반면에, JavaScript 파서에서는 다음과 같인 인식을 합니다.
<!-- /*
    function t(){}
<!-- */
<!-- body {background-color:Aqua;}
<!-- 부분을 한 줄 주석으로 판단하고 남은 부분을 JavaScript로 인식합니다.
<!-- 말고도 //로도 동일하게 처리가 가능합니다.

출처 : "Combine CSS with JS and make it into a single download!" by Ajaxian

2007년 4월 12일 목요일

또 다른 태그 추가없이 CSS float을 지우기

CSS에 'float:left'가 설정된 경우 float속성을 추가 태그없이 clear시키는 방법에 대한 소개가 올라왔네요.

1. Floating the containing element as well.
.container-with-float {
float: left;
width: 100%;
}

width를 100%로 설정함으로서 float설정을 준 다음의 위치에 줄 바꿈(line-break)을 준 효과를 냅니다.
단점으로 a) 원하는 패딩효과가 다를 수 있습니다. b) IE6에서 아래쪽 마진(bottom margin)이 들어가는 경우가 있습니다.

2. Using overflow: hidden on the container.
.container-with-overflow {
overflow: hidden;
height: 1%;
}

container에 overflow:hidden을 추가함으로서 자동적으로 높이를 조절하고, floating된 컨텐츠를 알아서 처리해줍니다.

단점으로 a) 유동적인 높이를 원하는 경우, 원하는 동작과 다른 동작이 발생할 수 있습니다. b) IE6에서는 floating 되었음을 알리기 위해서 height:1%; 또는 zoom:1;을 사용해야 합니다.

3. Generating content using the :after  CSS pseudo-class
.container-with-generated-content {
height: 1%;
}
.container-with-generated-content:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

container 뒤에 올 element에 :after(pseudo-class)의 css 속성을 추가함으로서 clear시킬 수 있습니다만 container 뒤에 element가 추가되어야 하는 문제점을 가지고 있습니다. . 단점, IE에서 :after를 지원하지 않는 가장 큰 문제점이 있습니다.

출처 : How to clear CSS floats without markup via Vitamin News

2007년 1월 3일 수요일

Vox에서 사용된 toolbar의 css hack

Vox의 toolbar에 적용된 css를 보면 처음 보는게 한가지 있는데요.
<a class="command-bold toolbar button" id="test3"><b>C</b></a>
특정 element의 class에 공백을 주는 방법이 있더군요. (저는 처음 봤습니다.)
a.button
a.button.toolbar
a.button.toolbar.command-bold
a.command-bold
a.toolbar
a.toolbar.command-bold
...
각각이 css에 적용이 될 수 있더군요. 각각은 우선순위를 가지고 있구요.
단계를 상세히 적을수록 우선순위가 더 높은 것 같습니다. vox에서는 각각의 비슷한 element들이 병렬로 연결됬을 때 공통된 style은 a.button에 정의하고 상세한 style은 a.button.command-bold와 같은 형태로 적용을 했더군요.

참으로 신기한 css의 정신세계라고나 할까요 ^^

Copyright
코드의 모든 권한은 Six Apart에 있습니다. Six Apart의 JavaScript 코드는 Copyright과 Disclaimer를 포함하는 조건하에서 재배포가 가능합니다.

Copyright (c) 2005, Six Apart, Ltd.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.

   * Neither the name of "Six Apart" nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


P.S. IE6에서 다중 클래스 적용 문제

<a class="command-bold toolbar button" id="test3"><b>C</b></a>에 대해서 command-bold class 적용하고 toolbar에 대해서 적용한 class에 대해서 각각에 대한 적용은 됩니다.

그런데 a.toolbar.command-bold와 같은 css는 적용이 안되고 에러가 납니다.
제가 실험을 제대로 안했네요. 죄송합니다. (__)