문제

사용했었는데 요한의 레식 getStyle 에서 기능 Pro JavaScript 기술을 얻을 수의 스타일 요소:

function getStyle(elem, name) {
    // J/S Pro Techniques p136
    if (elem.style[name]) {
        return elem.style[name];
    } else if (elem.currentStyle) {
        return elem.currentStyle[name];
    }
    else if (document.defaultView && document.defaultView.getComputedStyle) {
        name = name.replace(/([A-Z])/g, "-$1");
        name = name.toLowerCase();
        s = document.defaultView.getComputedStyle(elem, "");
        return s && s.getPropertyValue(name);
    } else {
        return null;
    }
}

그러나 이 방법을 반환에 대한 기본적인 스타일 요소를 지정한 스타일이 없는 경우:

http://johnboxall.github.com/test/getStyle.html

체 텍스트 http://img.skitch.com/20081227-8qhxie51py21yxuq7scy32635a.png

은 그것을 얻을 수만의 스타일 지정한 스타일 요소(과는 경우 null 을 반환합 스타일은 정의하지 않은 상태로 유지함)?

업데이트:

왜 필요한 승?나는 건설 작은 구성 요소는 사용자를 허용하는 스타일 요소입니다.하나의 스타일에 적용할 수 있는 것입 text-align - left, center, right -사용 getStyle 스타일이 적용되지 않은 요소를 기본값으로 center.이것은 불가능하는지 여부를 알 요소가 중심이기 때문에 사용자가 원하는 그것을 중심으로 또는 중심으로하기 때문에 그것이 기본 스타일입니다.

도움이 되었습니까?

해결책

스타일 지정된 스타일의 요소 만 얻을 수 있습니까 (스타일이 정의되지 않은 경우 NULL 리턴 NULL)?

그것은 당신이 제시하는 일상에 의해 효과적으로 수행되는 일입니다. 문제는 대부분의 시나리오에서 대부분의 스타일은 ~ 아니다 정의되지 않은 - 개별 브라우저의 내부 스타일 시트에 의해 상속 및/또는 정의됩니다.

많은 노력으로 반복 할 수 있습니다. 모두 문제의 스타일을 정의하는 규칙의 모두 문서의 현재 관점에서 스타일 시트 중에서 해당 요소에 대해 평가하고, 적용되지 않은 경우 ... 부모에게 적용되지 않은 경우 (또는이 특정 스타일이 상속되지 않은 경우) ... 정의되지 않은 것으로 간주하십시오. 이것은 느리고 놀랍도록 발생하기 쉬운 오류. 나는 그것을 시도하지 않는 것이 좋습니다.

아마도 물러서서 왜 그런 것이 필요한지 물어 보는 것이 더 좋을까요?

다른 팁

어쩌면 당신의 구성 요소를 포장 할 수 있는 스타일 제어?그런 다음 경우 스타일의 설정을 통해 구성 요소의 구성 요소는 무엇을 알고 사용자.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top