'web standard/css'에 해당되는 글 7건

  1. 2016.10.06 브라우저 핵 종결자
  2. 2012.08.23 줄바꿈 완련 style
  3. 2010.11.17 파폭용핵
  4. 2010.03.05 CSS 이야기: overflow 속성의 float 해제 효과
  5. 2008.07.29 css 핵
  6. 2008.07.29 css제대로 사용하기
  7. 2008.07.29 CSS적용 체크포인트 4가지
web standard/css2016. 10. 6. 17:45

[출처]http://naiyumie.inour.net/archives/2471


Internet Explorer -인터넷 익스플로러

Selector Hacks

/* IE 6 and below */
* html .selector  {}
.suckyie6.selector {} /* .suckyie6 can be any unused class */


/* IE 7 and below */
.selector, {}


/* IE 7 */
*:first-child+html .selector {}
.selector, x:-IE7 {}
*+html .selector {}


/* Everything but IE 6 */
html > body .selector {}


/* Everything but IE 6/7 */
html > /**/ body .selector {}
head ~ /* */ body .selector {}


/* Everything but IE 6/7/8 */
:root *> .selector {}
body:last-child .selector {}
body:nth-of-type(1) .selector {}
body:first-of-type .selector {}
Property ⁄ Value Hacks


/* IE 6 */
.selector { _color: blue; }
.selector { -color: blue; }


/* IE 6/7 – any combination of these characters:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */
.selector { !color: blue; }
.selector { $color: blue; }
.selector { &color: blue; }
.selector { *color: blue; }
/* … */


/* IE 6/7 – acts as an !important */
.selector { color: blue !ie; }
/* string after ! can be anything */


/* IE 8/9 */
.selector { color: blue\0/; }
/* must go at the END of all rules */


/* IE 9/10 */
.selector:nth-of-type(1n) { color: blue\9; }


/* IE 6/7/8/9/10 */
.selector { color: blue\9; }
.selector { color/*\**/: blue\9; }


/* Everything but IE 6 */
.selector { color/**/: blue; }


 Media Query Hacks


/* IE 6/7 */
@media screen\9 {}


/* IE 6/7/8 */
@media \0screen\,screen\9 {}


/* IE 8 */
@media \0screen {}


/* IE 8/9/10 & Opera */
@media screen\0 {}


/* IE 9/10, Firefox 3.5+, Opera */
@media screen and (min-resolution: +72dpi) {}


/* IE 9/10 */
@media screen and (min-width:0\0) {}


/* IE 10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {}


/* Everything but IE 6/7/8 */
@media screen and (min-width: 400px) {}

  

 

 JavaScript Hacks


/* IE <= 8 */
var isIE = ‘\v’==’v’;


/* IE 6 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 6]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 7 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 7]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;
navigator.appVersion.indexOf(“MSIE 7.”)!=-1


/* IE 8 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 8]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 9 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 9]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 10 */
var isIE = eval(“/*@cc_on!@*/false”) && document.documentMode === 10;


/* IE 10 */
var isIE = document.body.style.msTouchAction != undefined;

 


  

Firefox -파이어폭스

Selector Hacks


/* Firefox 1.5 */
body:empty .selector {}


/* Firefox 2+ */
.selector, x:-moz-any-link {}


/* Firefox 3+ */
.selector, x:-moz-any-link; x:default {}


/* Firefox 3.5+ */
body:not(:-moz-handler-blocked) .selector {}


Media Query Hacks


/* Firefox 3.5+, IE 9/10, Opera */
@media screen and (min-resolution: +72dpi) {}


/* Firefox 3.6+ */
@media screen and (-moz-images-in-menus:0) {}


/* Firefox 4+ */
@media screen and (min–moz-device-pixel-ratio:0) {}


 JavaScript Hacks


/* Firefox */
var isFF = !!navigator.userAgent.match(/firefox/i);


/* Firefox 2 – 13 */
var isFF = !!window.globalStorage;


/* Firefox 2/3 */
var isFF = /a/[-1]==’a’;


/* Firefox 3 */
var isFF = (function x(){})[-5]==’x’;
Miscellaneous


/* Firefox 3+ */
@-moz-document url-prefix() {}

 



 

Chrome -크롬

 Selector Hacks
/* Chrome 24- and Safari 5- */
::made-up-pseudo-element, .selector {}


 Media Query Hacks
/* Chrome, Safari 3+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {}


 JavaScript Hacks
/* Chrome */
var isChrome = !!window.chrome;

 

 


 

Safari -사파리

Selector Hacks


/* Safari 2/3 */
html[xmlns*=””] body:last-child .selector {}
html[xmlns*=””]:root .selector  {}


/* Safari 2/3.1, Opera 9.25 */
*|html[xmlns*=””] .selector {}


/* Safari 5- and Chrome 24- */
::made-up-pseudo-element, .selector {}


 Media Query Hacks
/* Safari 3+, Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0) {}


 JavaScript Hacks
/* Safari */
var isSafari = /a/.__proto__==’//’;



Opera -오페라

 Selector Hacks


/* Opera 9.25, Safari 2/3.1 */
*|html[xmlns*=””] .selector {}


/* Opera 9.27 and below, Safari 2 */
html:first-child .selector {}


/* Opera 9.5+ */
noindex:-o-prefocus, .selector {}

 Media Query Hacks

/* Opera 7 */
@media all and (min-width: 0px){}

/* Opera 12- */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {}


/* Opera, Firefox 3.5+, IE 9/10 */
@media screen and (min-resolution: +72dpi) {}


/* Opera, IE 8/9/10 */
@media screen {}


 JavaScript Hacks
/* Opera 9.64- */
var isOpera = /^function \(/.test([].sort);


/* Opera 12- */
var isOpera = !!window.opera;

'web standard > css' 카테고리의 다른 글

줄바꿈 완련 style  (0) 2012.08.23
파폭용핵  (0) 2010.11.17
CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
css 핵  (0) 2008.07.29
css제대로 사용하기  (0) 2008.07.29
Posted by 수라
web standard/css2012. 8. 23. 13:58

div에 글을 써넣으면 '\n'이 먹히지 않는다. 그리고 같은 글자가 반복되어서 나오면("+++++++++..." 같은것)
div영역을 뚫고 나가버린다. 이를 해결하기 위해서 CSS의 white-space와 word-break를 써야한다.

white-space
줄바꿈 해주는 property로 normal, nowrap, pre, pre-line, pre-wrap이 있다.

normal은 보통의 경우로 옵션을 주지 않아도 된다.
nowrap은 줄바꿈을 하지 않는다.(div를 뚫고 나간다.)
pre는 html의 <pre>태그처럼 내부의 태그를 실행시켜주지만 이역시 줄바꿈은 하지 않는다.
pre-line은 normal + pre. 줄바꿈도 해주고 태그도 실행한다.
pre-wrap는 pre-line과 비슷 하지만 pre-line은 연속되는 공간("     ")을 한칸으로 압축하지만
                   pre-wrap는 압축하지 않고 그대로 보여준다.

word-break
한단어가 길게 이어질때 자동으로 잘라주는 property이다.

normal은 자르지 않는다.
break-all은 영역을 넘어가면 무조건 자른다.
hyphenate는 영역을 넘어가더라도 단어를 유지해준다.
keep-all은 한글일 경우 띄어쓰기 기준으로 자른다.(only IE)
현재 word-break는 5대 브라우저중 FF와 Opera만 지원하지 않는다.

word-wrap
normal은 자르지 않는다.
break-word는 단어단위로 자른다.

(CSS3를 지원하는) 모든 브라우저에서 단어별로 줄바꿈하고 반복되는 단어를 자르려면(한글 제외)

white-space: pre-wrap;
word-wrap: break-word;
옵션을 추가하면 된다.

출처1:
[CSS] 텍스트 줄바꿈 처리 word-break, white-space

출처2:
pre-line과 pre-wrap 차이

출처3:
word-break와 word-wrap


'web standard > css' 카테고리의 다른 글

브라우저 핵 종결자  (0) 2016.10.06
파폭용핵  (0) 2010.11.17
CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
css 핵  (0) 2008.07.29
css제대로 사용하기  (0) 2008.07.29
Posted by 수라
web standard/css2010. 11. 17. 09:28

@-moz-document url-prefix()
{
.class 네임
{
padding: xxx px;
}
}


ex)

@-moz-document url-prefix()
{
#recruitAll .yamada{
position:absolut;
top:파폭에서의 수치px;
left:파폭에서의 수치px}
}

'web standard > css' 카테고리의 다른 글

브라우저 핵 종결자  (0) 2016.10.06
줄바꿈 완련 style  (0) 2012.08.23
CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
css 핵  (0) 2008.07.29
css제대로 사용하기  (0) 2008.07.29
Posted by 수라
web standard/css2010. 3. 5. 17:08

예전에 float을 제거하는 방법이라는 글에서 overflow 속성을 이용하는 float 해제 방법을 다뤘습니다. 그 내용을 아래에 일부 인용하겠습니다.

“만약 width만 지정한 상태에서 overflow: hidden;을 적용하면 박스가 내용물의 크기만큼 아래로 늘어나니까요. 이 때 박스 안에 있는 float된 요소의 높이까지도 같이 계산됩니다. 결국 박스가 float된 요소를 포함할 만큼 커지기 때문에 float을 제거하는 효과가 나타나게 됩니다.”

글을 쓰던 당시에 overflowfloat된 요소를 포함하도록 박스 크기를 늘리는 명확한 이유는 몰랐습니다. CSS 2.1을 열심히 찾아봤는데 overflow 속성 설명에는 관련 내용이 전혀 없었거든요. 그래서 경험적인 추측일 뿐이었습니다.

그런데 어제 마진 병합에 관한 글을 쓰면서 그 원리가 CSS 2.1에 정확하게 명시되어 있다는 사실을 알게 되었습니다.

그 내용은 시각적인 서식 모델의 세부 사항(visual formatting model details)을 다루는 10장의 6.6, 6.7절입니다.

마진 병합을 다루면서 블록 레벨 요소의 height 결정 방식을 찾아봤는데 overflowvisible일 때에만 적용되는 내용이었습니다. 그래서 visible이 아닌 경우를 찾아봤는데 6.6절에 있더군요.

6.6절은 일반적이지 않은 상황에서의 height 결정 방식을 다룹니다. 핵심적인 내용은 아래와 같습니다.

“일반적인 문서 흐름(normal flow)에서 블록 레벨 요소의 overflow 값이 visible이 아니고 heightauto면 그 자손 요소에 따라서 6.7절에 명시된대로 높이가 결정된다.”

6.7절에서 실제 높이 결정 방식을 다루는데 float된 자식 요소과 관련된 부분은 다음과 같습니다.

“만약 요소가 float된 자손 요소를 갖고 이 자손 요소의 하단 마진 경계(bottom margin-edge)가 요소 박스 아래에 있으면 요소 박스의 높이는 자손 요소의 하단 마진 경계를 포함하도록 늘어난다.”

따라서 overflow를 이용한 float 해제는 CSS 2.1에 정의된 정확한 동작 방식입니다. 그동안 참 많이 궁금했었는데 결국은 궁금증이 풀렸네요. ^^

'web standard > css' 카테고리의 다른 글

줄바꿈 완련 style  (0) 2012.08.23
파폭용핵  (0) 2010.11.17
css 핵  (0) 2008.07.29
css제대로 사용하기  (0) 2008.07.29
CSS적용 체크포인트 4가지  (0) 2008.07.29
Posted by 수라
web standard/css2008. 7. 29. 10:38
웹표준 교과서에서 소개하는 CSS 핵 & 필터 안내 페이지

그 외에 평소에 자주 사용하는 팁으로서의 CSS 핵 정리는 아래에 정리.

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

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

Mac IE 5 배제하기
H1 { /* \*/ color:red; /* */ }
Holly 핵이라 하며, 주석 안의 내용이 적용되지 않음.

Win IE 4~5 배제하기
H1/**/ { color:red; }
셀렉터 뒤에 /**/ 삽입.

Win IE 4~5, Mac IE 4.5~5 배제하기
H1 { color/* */:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 /* */ 삽입.

Win IE 4~6, Mac IE 4, Netscape 4 배제하기
html>body H1 { color:red; }
셀렉터 앞에 html>body 삽입.

Win IE 6 제외시키기
H1 { color /**/:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 스페이스와 /**/ 삽입.

언더스코어 핵 (_)
H1 { _color:red; }
Win IE 4~6 에 적용.

닷핵 (.)
H1 { .color:red; }
속성 앞에 . 삽입. Win IE 6~7 에만 적용. 타 브라우저는 정확히 확인하지 못했습니다.
이 핵에 대해선 계속 확인중인데 블로그스피어나 여타 서적에는 전혀 언급이 없는 이상한 핵(?)입니다.

해시 핵(#)
H1 { #color:red; }
속성 앞에 # 삽입. Win IE 4~6, Mac IE 5, Opera 7, Mozilla계열, Firefox 에 적용.

스타 핵
*HTML H1 { color:red; }
셀렉터 앞에 *html 삽입. Win IE 4~6, Mac IE 4~5 에 적용.

스타7 핵
HTML*H1 { color:red; }
셀렉터 앞에 html* 삽입(공백없이). Win IE 5.5~6, Mac IE 5, Safari 에 적용.

xmlns 속성 핵
HTML[xmlns] H1 { color:red; }
셀렉터 앞에 속성 선택자를 삽입. Mozilla, Firefox, Opera, Safari 등 속성 선택자를 지원하는 브라우저에 적용.

:root 가상클래스 핵
:root H1 { color:red; }
셀렉터 앞에 :root 가상클래스 삽입. Mozilla, Firefox, Mac IE 5, Safari 등 가상클래스를 지원하는 브라우저에 적용.

Tantek 박스모델 핵
H1 {
    width:500px;
    voice-family: ""}"";
    voice-family:inherit;
    width:400px;
}
Tantek Celik 이 고안한 유명한 박스모델 핵. Win IE 4~5, Mac IE 4, Netscape 4 에서는 voice-family 속성 이전의 스타일 적용. 그외의 브라우저는 뒤의 속성 적용.

단순 박스모델 핵
H1 {
    width:500px;
    w\idth:400px; //Win IE 6, Mac IE 5, Mozilla, Opera, Safari
    \width:450px; // only Win IE 5
}

속성의 첫번째, 두번째 글자 사이에 \를 삽입하면 Win IE 6, Mac IE 5, Mozilla, Opera, Safari 에 적용.
추가로 속성의 앞에 \를 삽입하면 Win IE 5 에만 적용.

IE 7, Opera 적용하기
*+html body H1 { color:red; }
셀렉터 앞에 *+html body 삽입. IE 7, Opera 8 이후 버전 적용. Opera를 배제한 IE7 전용으로 하고 싶을 때는 *+html>/**/body 로 Opera 전용 속성 기술.

IE 7 적용하기
*:first-child+html H1 { color:red; }
셀렉터 앞에 *:first-child+html 삽입. IE 7에만 적용되고, 이외의 브라우저는 앞에서 기술한 셀렉터의 속성 적용.

Win IE 5 패스필터
@media tty {
i{content:"";/*" "*/}}; @import '/css/style.css'; {;}/*";}
}/* */


Win IE 5.5 패스필터
@media tty {
i{content:"";/*" "*/}}@m; @import '/css/style.css';/*";}
}/* */


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

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

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



저의 주 작업 브라우저는 IE6, IE7, FF2, OP9 입니다. 개인적으로 CSS 핵은 거의 사용하지 않지만, 폼 (특히 체크박스, 라디오 버튼) 의 형태가 각 브라우저마다 틀려서 IE 6~7 에서 폼의 마진을 조절하기 위해 언더스코어 핵, 닷핵 만을 사용하고 있습니다.
덧붙여... 우리나라에서 최고의 사용률을 보여주는 IE가 CSS Spec을 제대로 지원하지 않으면서도 이를 업데이트하지 않는 이유는, 아이러니컬하게도 브라우저간 버그를 보정하기 위한 CSS핵도 큰 이유를 차지하고 있는 듯.
IE 6에서 갑자기 IE 7 또는 표준스펙 풀 지원으로 CSS 지원 스펙을 수정하면 현재 IE 6 기준으로 만들어진 사이트나 IE 6용 패스필터, 핵을 사용한 엄청난 수의 사이트(특히 우리나라)는 어떻게 될지...

중요 포인트!!
1. 구조를 설계할 때 절대 CSS핵 위주로 설계하지 말 것.
2. 단발성 CSS 핵보다는 패스필터 사용 권장.
3. CSS핵은 어쩔 수 없는 경우에만 사용할 것.


출처:http://kaludin.egloos.com/967831

'web standard > css' 카테고리의 다른 글

줄바꿈 완련 style  (0) 2012.08.23
파폭용핵  (0) 2010.11.17
CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
css제대로 사용하기  (0) 2008.07.29
CSS적용 체크포인트 4가지  (0) 2008.07.29
Posted by 수라
web standard/css2008. 7. 29. 10:36

01 / html과 css의 관계

    • html : 컨텐츠의 내용과 구조 표시
      • 컨텐츠가 문단인지<p>, 인용문인지<blockquote>, 리스트형태<ul>인지에 따라 적합한 엘리먼트로 표기
      • 컨텐츠가 문서내에서 가지는 의미에 따라 <div>와 적절한 id, class 속성표기(나타내고자 하는 컨텐츠를 의미에 맞게 기술하여 웹페이지로의 접근성을 높이는 방법으로 markup을 만드는 것이 웹표준의 목적)
      • 웹표준의 목적 : 컨텐츠의 의미에 맞게 기술하여 웹페이지로의 접근성을 높이는 방법으로 markup하는 것.

    • css : 문서의 내용과 표현을 분리하는것
      • 문서의 내용은 html로 작성하고 표현은 css로!!

 

 

02 . css의 일반선택자

  • 일반선택자(selector) 종류
    • (*) : 공용선택자 ㅣ 모든 태그에 적용
    • (a) : 타입선택자 ㅣ 태그 <a> 지정
    • (.A) : class 선택자 ㅣ 클래스가 A인 태그에 적용
    • (#A) : id 선택자 ㅣ 아이디가 A인 태그에 적용


  • (*)공용선택자
     * {
        margin: 0;
        padding: 0;
     }
    페이지 내의 모든 <h1>,<h2>,<p>,<form>,<blockquote> 등의 브라우져 기본 마진과 패딩을 가지고 있는 엘리먼트들의 여백을 없앤다.

     div.search * {

                        vertical-aling: middle;

     }

    div.search안의 모든 엘리먼트가 세로로 가운데 정렬이 되게 된다.


  • (a)타입선택자 : 해당엘러먼트를 선택하여 속성 부여

  • 클래스선택자 : 한페이지에서 여러번 사용가능

  • 아이디선택자 : 한페이지에 한번만 사용할 수 있다.
  • 'web standard > css' 카테고리의 다른 글

    줄바꿈 완련 style  (0) 2012.08.23
    파폭용핵  (0) 2010.11.17
    CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
    css 핵  (0) 2008.07.29
    CSS적용 체크포인트 4가지  (0) 2008.07.29
    Posted by 수라
    web standard/css2008. 7. 29. 10:35

     

    • HTML, XHTML, XML 등의 markup 문법 확인 감사(DTD선언에 기초한 문법 확인)http://validator.w3.org
    • XHTML  의미와 구조적 구성
       <title> 각각의 문서 내용에 적합하게 사용해야 한다.  
       <h1>~<h6>

      문서내 중요도의 단계에

       <ol>,<ul>,<p>

      <blockquote>,<del>

       각 엘리먼트들이 의미에 맞게 사용되도록 한다.
       <div>,<span>,id,class  문서작성 후 의미에 따라 구분해준다.

    • 표준문법사용
       주석문처리
      1. css주석처리 /*comment*/
      2. html, 다른 언어
        • <!--여러줄 주석처리-->
        • //한줄주석처리
       단위 표기
      1. 0을 제외한 모든 값에 단위표기
      2. 구문이 끝날때는 세미콜론 표시(;)
       색상 표기

       #rrggbb형식 - color: #ff0000; (color: #f00;)

      rgb(r,g,b) 형식 - color: rgb(255,0,0); (color: rgb(100%,0%,0%);)

    •  표준에 적합한 브라우저를 기본으로 작업

    'web standard > css' 카테고리의 다른 글

    줄바꿈 완련 style  (0) 2012.08.23
    파폭용핵  (0) 2010.11.17
    CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
    css 핵  (0) 2008.07.29
    css제대로 사용하기  (0) 2008.07.29
    Posted by 수라