2013-07-19 3 views
0

길게 이야기하기 : HTML 요소 자체에 인라인으로 표시 : 인라인이있는 일부 요소에서 display : none! 중요 사항을 재정의해야합니다.IE7 표준 모드의 CSS 속성 선택자

이것은 IE7 표준 모드가 설정된 IE에서 작동해야합니다.

자세한 내 페이스트 빈 링크에서보세요 : http://pastebin.com/m06YXwHq 결과 : http://cdpn.io/sgrjz

이 IE7 표준 모드와 IE9 표준 모드 (및 기타 모든 최신 브라우저도),하지만 함께 IE9에서 작동합니다.

도움을 주셨습니다.

+1

이 질문은'! important'이 그렇게 나쁜 습관으로 간주되는 이유를 설명해주는 좋은 사례입니다. – Spudley

+0

예, 저는이 문제점을 알고 있습니다. 나는 코드를 완벽하게 제어 할 수는 없으므로 이것이 내가 엉망인 이유입니다. – jBoive

답변

1

솔직히 CSS에서 원하는 것을 할 수있는 방법을 알지 못합니다. 처음에는이 길을 걸어온 나쁜 습관을 제거하기 위해 코드를 수정하는 것 이외에는 말이죠.

IE7은 이러한 방식으로 사용되는 속성 선택기를 지원하지 않으므로 앞에서 scuppered되므로 다른 유용한 솔루션은 요소 및 스타일에 클래스를 추가하는 것입니다 (하지만 그 일을 할 수 있었을 것입니다.

그 외에도 Javascript 솔루션이 있습니다.

이전 IE에 최신 CSS 기능을 추가하는 polyfill 스크립트 중 하나를 사용해보십시오. IE9.js 또는 Selectivizr입니다. 이 두 스크립트는 일반적으로 구형 IE에 CSS 선택기에 대한 지원을 추가하는 데 꽤 유용합니다. 그러나 여기에서 여러분이하는 일은 진정한 의미의 사례이며, 대처하지 않으면 전혀 놀랄 일이 아닙니다. 부단히 노력해주십시오. 그러나 기적을 기대하지 마십시오.

좀 더 수동적 인 방법이 더 효과적 일 수 있습니다. jQuery 또는 유사한 라이브러리를 사용하는 경우 필요한 요소를 매우 쉽게 선택할 수 있어야하며 거기에서 작업 할 수 있어야합니다. (jQuery 나 내장 된 선택기 엔진이있는 라이브러리를 사용하지 않는다면 어려울 것이다. 그러나 IE7을 지원한다면 이미 jQuery를 사용하고 있지 않다는 소식을 듣고 놀랄 것이다.)

그러나이 메시지에서 나오는 실제 메시지는 인라인 스타일과 CSS !important 수식어가 나쁜 습관이며 다시 물어 뜯을 것입니다. 그리고 당신은 꽤 열심히 물 렸습니다.

+0

실제로, IE7은 속성 선택자를 지원합니다. 하지만 분명히 당신은 스타일 속성을 사용할 수 없습니다. http://reference.sitepoint.com/css/attributeselector – jBoive

+0

제 생각에는 IE7에서는 전혀 지원되지 않습니다. 그러나 제가 시도한 이후로 꽤 오래되었습니다. IE7에서 사용하기 때문에 틀릴 수도 있습니다. 어쨌든 우리는 당신이 필요로하는 특정한 경우가 효과가 없기 때문에 결과에 아무런 영향을 미치지 않는다는 데 동의합니다.(비록 그것이 polyfill 라이브러리가 도움이 될 것 같지는 않지만) – Spudley

+0

IE7은 CSS2/CSS3 속성 선택자를 지원하지만 엄청나게 patchy합니다. – BoltClock

0

내가 말했듯이, IE7은 style-attribute를 CSS selector로 사용할 수 없다.

나는 그럭저럭 그럭저럭 주위를 해결할 수 있었다. 그래서 나는 숲에서 나왔다. 다른 어떤 솔루션도 내 설정과 관련하여 용도를 찾을 수 없습니다.

어쨌든 모든 입력에 감사드립니다.

/j

+0

문제를 해결하기 위해 무엇을했는지 알려주는 데 아무런 해가되지 않습니까? 그렇지 않으면 첫 번째 장소에 답변을 게시하지 못할 수도 있습니다. – BoltClock

+0

나는 "해결책"을 올렸다. 나의 유일한 단서는 막 다른 길이었다. 그게 충분히 이유라고 생각합니다. 괜찮 았던 것 : 동일한 것을 달성하기 위해 스타일 속성을 사용하는 대신 내 HTML 페이지의 계층 구조를 사용했습니다. – jBoive