브라우저에있는 모든 스타일 속성을보고하는 간단한 Javascript 루틴을 만들었습니다.브라우저에서 지원하는 모든 스타일 속성을 읽는 방법
var list = new Array();
var div = document.createElement('div');
for (var style in div.style)
list.push(style);
그리고 작동합니다. 결과는 JavaScript 형식이므로 예를 들어 borderTopLeftRadius
은 border-top-left-radius
, MozAnimationTimingFunction
은 -moz-animation-timing-function
을 의미합니다.
여기에 a fiddle이 있습니다. 어디서 볼 수 있습니까?
(예 : Firefox 및 IE의 경우 목록에 float
이 포함되어 있지 않지만 Chrome에서는 Firefox 및 IE에 cssFloat
이 포함되어 있습니다. 그.)
지금까지 그렇게 좋았어.
그러나 제 목표는 CSS 속성 이름 목록 만 사용하는 것입니다. 그러나 결과에는 getPropertyPriority
및 length
과 같은 속성 이름이 전혀없는 항목도 포함됩니다. 그리고 제 질문은, 어떻게 이들을 걸러 낼 수 있습니까? 이 항목들을 구분하는 방법 (일부는 자바 스크립트 기능이고 일부는 읽기 전용 속성 임)과 실제 CSS 속성 이름은 무엇입니까?
편집 :
SVG에만 적용되는 속성에 대해서는 신경 쓰지 않습니다. 그것을 지키는 것이 좋습니다.
Mr_Green이 지적한 것처럼 속성에 'string'유형이 있는지 확인하여 대부분의 문제를 필터링 할 수 있지만 (updated fiddle 참조) 여전히 CSS 속성 이름이 아닌 일부 항목이 목록에 있습니다. cssText
및 marks
(일부 브라우저에서만 후자). 나는 그것들을 걸러 내기를 원하지만 그렇게 할 방법을 찾지 못했습니다.
W3C에는 supports()
이라는 기능이 있지만 그 기능을 수행하지 못했습니다. 아무도 나에게 모범을 찾을 수 있을까? 당신의 목표는 속성 지원 여부 만
function isPropertySupported(property)
{
return property in document.body.style;
}
는 속성이 지원되는지 여부를 확인 할 수 있습니다 여부를 확인하는 경우
불행히도 브라우저에 속성이 있다고해서 그것이 그것을 지원한다는 것을 의미하지는 않습니다. – Keith
@Keith "inspect element"목록에 나타나는 속성 인 "support"라는 단어의 광범위한 정의를 사용합니다.비록 많은 요소들이 많은 속성들을 가지고 아무것도하지 않는다는 것을 알고 있습니다. 아니면 뭔가 다른 것을 의미 했습니까? 그렇다면 예제를들 수 있습니까? –
[** fiddle **] (http://jsfiddle.net/SawmJ/2/) 필터가 다소 가깝거나 완벽합니까? 확신하지 못하기 때문에 나는 CSS의 모든 속성을 알고 : D –