2014-10-22 14 views
4
#elem { 
    -myCustom: 99; 
} 

또는 내가 온라인 위의 예에서 사용을 모두 보았다 사용자 정의 CSS 속성은 하나의 선행 대시 또는 두 대시를 사용합니까?

#elem { 
    --myCustom: 99; 
} 

. 둘의 차이점은 무엇입니까? 자바 스크립트에서 사용자 정의 속성에 액세스하려고하면 null을 반환

..

#elem { 
-myCustom: 99; 
} 

<div id="elem">some text</div> 

elem = document.getElementById("elem"); 
style= window.getComputedStyle(elem); 
value = style.getPropertyValue('-myCustom'); 
alert(value); 
+0

'-myCustom : 99;'가 유효하지 않으며 (대부분의) 웹 브라우저에서 무시된다는 것은 확실합니다. (나는 또한 모든 종류의 브라우저 해킹과 관련이 없다고 확신한다). –

+0

@HashemQolami 기술적으로 브라우저는 사용자 지정 속성이기 때문에 브라우저에서 무시해야하지만 getComputedStyle()을 통해 사용자 지정 속성에도 액세스 할 수 있어야합니다. –

+0

사실 그것은 * 잘못된 * 속성입니다 (사용자 정의 속성, 특별한 의미가 있습니다). 그러나 [비표준 CSS 속성] (http://stackoverflow.com/questions/249991/can-i-fetch-the-value-of-a-non-standard-css-property-via)을 잘 모르겠다. -javascript)는 JavaScript로 액세스 할 수 있습니다. –

답변

1

사용자 정의 속성은 렌더러/소프트웨어 다음 규칙에 따라, 하나의 대시를 사용합니다.

예를 들어

:

-webkit-상자 그림자

-moz-상자 그림자 ...

그러나이 두 개의 대시를 구현하는 새로운 기능이있는 것 같다,이 힘 당신을 위해 재미있을 :

http://www.broken-links.com/2014/08/28/css-variables-updating-custom-properties-javascript/

+0

이 기사를 읽고 있었지만 null을 제외하고 JavaScript를 반환 할 수는 없습니다. WTF? –

+0

아직 기사를 완전히 읽지는 않았지만 스 니펫을 게시 할 수 있습니까? – Ercksen

+0

내 원래 질문으로 수정 참조하십시오. –

5
지정 속성은 이름이 같은 두 개의 대시 --foo (U + 002D HYPHEN 마이너스)로 시작하는 속성이다. <custom-property-name> 프로덕션은 다음과 같습니다. 두 개의 대시로 시작하는 임의의 유효한 식별자 으로 정의됩니다. W3C에서

예 :

:root { 
    --main-color: #06c; 
    --accent-color: #006; 
} 
/* The rest of the CSS file */ 
#foo h1 { 
    color: var(--main-color); 
} 

CSS 변수가 파이어 폭스 (31)와 새로운 구현된다는 사실을 주목할 가치가있다.

+0

참고 : CSS 변수는 Firefox 31 이상에서만 작동하며 Chrome https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ScKw9zYRkBc에서 가져 왔습니다. Safari 및 IE에서도 작동하지 않습니다. :) –