2010-07-14 6 views
2

Firefox에서 직면 한 문제를 단순화했습니다 (원래 코드는 서버 측 컨트롤에 의해 생성되었습니다). 파이어 폭스 IE와에 다음 코드를 엽니 다 IE에서스크립트 블록에 스타일을 적용하는 Firefox

<html> 
<style> 
    .AllInline, .AllInline * { display: inline; } 
</style> 
<span class="AllInline"> 
    Test 
    <script type="text/javascript"> 
     <!-- var obj = {}; //--> 
    </script> 
</span> 
</html> 

를, 내가 얻을 :
테스트
파이어 폭스에서, 내가 할 동안 :
테스트 <!-- var obj = {}; //-->

스크립트 블록의 내용이된다 어떻게 든 보입니다.

스타일 룰이 스크립트 블록에 적용될 것으로 기대하지 않았습니다. 왜 이런 스타일이 필요한지 알 수 없습니다.

아무에게도 설명이 있습니까?

+0

Firefox에서 정확히 어떻게 동작합니까? – mcandre

+0

내가 얻은 결과를 추가했습니다. – Locksfree

+0

크롬이 FireFox와 동일하게 동작합니다. – Yisroel

답변

1

base, basefont, datalist, head, meta, script, style, title, noembedparam 태그는 (a UA 스타일 시트이다) html.cssdisplay: none;를 설정하는 간단한 방편으로 숨겨져있다. 그래서 그들은 당신의 예제와 같은 페이지 CSS에 의해 숨겨지기 쉽습니다. 반면에 area에는 특수 내부 처리 (이미지가 효과적으로 영역을 소유 함)가 있기 때문에 display: none ! important;이 있습니다.

0

여기에 JavaScript를 넣지 마십시오. </body></html> 직전에 삽입하십시오.

HTMl을 Echochamber에서 테스트하십시오.

+0

이것은 짧은 재생산 샘플입니다. 내가 그것을 쓰고 있다면 나는 여기에 js를 두지 않을 것이다. 이는 스타일링과 DevExpress 컨트롤이 교차하는 사이의 불화에서 비롯된 것입니다. – Locksfree

0

매혹적인 버그!

당신은 당신의 CSS에 .AllInline script {display: none;}을 추가하여 그것을 숨길 수 있습니다.

+0

두 번째 선택기 .AllInline * 제거 또한 작동합니다. 왜 아직도 누군가가 이것을 원할 지 이해하지 못한다. – Locksfree

관련 문제