점점 문제가 있습니다
<!--[if !IE]>
일하다. 내 문서에 이것을 가지고 있기 때문에 궁금합니다.
<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]> <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]> <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->
내가 추가하면
<!--[if !IE]><!-->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<!--<![endif]-->
어떤 이유로 든 헤더에 작동하지 않습니다. 그러나 내가 추가하면
<!--[if !IE]><!-->
<style>
All my css in here
</style>
<!--<![endif]-->
실제 html 페이지 (헤더)에 작동합니다. 어떤 제안? 건배
내 질문으로 업데이트
좋아, 내가 제거했을 때 나는
<!-->
IE에서 체크인했지만 지금은 FF로 돌아갔다. no-ie.css는 FF에도 적용되었다. 그래서 다시 추가 <!-->
하고 /를 제거하고 (주 템플릿에 추가하여 cm을 다시 추가하지 않음) 모두 FF에서 다시 작동하지만 이제 스타일 시트가 IE에 적용됩니다! 그래서 나는 시도했다
<!--[if IE]>
<link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/no-ie.css">
<![endif]-->
과
<!--[if !IE]> -->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<!-- <![endif]-->
그리고 그것은 효과가 없었습니다. 기본적 으로이 페이지가 http://css-tricks.com/examples/ResponsiveTables/responsive.php 작동 하지만 CSS를 스타일 시트로 이동 하려고합니다 . 분명히 간단해야합니다. 내가 무엇을 놓치고 있습니까? 필요하지 않으면 JQuery를 사용하지 않을 것입니다. 건배
답변
<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]-->
<!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->
참고 : 이러한 조건 주석은
더 이상 IE 10 이상에서 지원되지 않습니다 .
답변
IE 이외의 브라우저는 조건문을 주석 태그 안에 포함하므로 조건문을 주석으로 처리합니다.
<!--[if IE]>
Non-IE browsers ignore this
<![endif]-->
그러나 IE가 아닌 브라우저를 대상으로하는 경우 코드 앞뒤에 2 개의 주석을 사용해야합니다. IE는 그들 사이의 코드를 무시하지만 다른 브라우저는 코드를 일반 코드로 취급합니다. 따라서 비 IE 브라우저를 대상으로하는 구문은 다음과 같습니다.
<!--[if !IE]-->
IE ignores this
<!--[endif]-->
참고 : 이러한 조건 주석은 더 이상 IE 10 이상에서 지원되지 않습니다 .
답변
누군가 여전히이 페이지에 도달하면 ie 타겟팅이 작동하지 않는 이유에 대한 업데이트입니다. IE 10 이상에서는 더 이상 조건부 주석을 지원하지 않습니다. MS 공식 웹 사이트에서 :
상호 운용성 및 HTML5 준수를 향상시키기 위해 Internet Explorer 10 표준 및 쿼크 모드에서 조건부 주석 지원이 제거되었습니다.
자세한 내용은 여기를 참조하십시오 : http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
필사적으로 대상을 지정 해야하는 경우이 jquery 코드를 사용하여 ie 클래스를 추가 한 다음 CSS의 .ie 클래스를 사용하여 브라우저를 대상으로 지정할 수 있습니다.
if ($.browser.msie) {
$("html").addClass("ie");
}
업데이트 : jQuery 1.9 이후 $ .browser를 사용할 수 없습니다. 1.9 이상의 jQuery로 업그레이드하거나 이미 사용중인 경우 jQuery 뒤에 jQuery 마이그레이션 스크립트를 포함시켜 누락 된 부분을 추가 할 수 있습니다.
jQuery Migrate Plugin
또는이 스레드에서 가능한 해결 방법을 확인하십시오 : jQuery 1.9.1로 업데이트 한 후 browser.msie 오류
답변
나는 그것을 사용하고 작동합니다 :
<!--[if !IE]><!--> if it is not IE <!--<![endif]-->
답변
하위 수준에 공개 된 조건부 “설명”에 대한 Microsoft 권장 구문은 다음과 같습니다.
<![if !IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<![endif]>
이들은 주석이 아니지만 제대로 작동합니다.
답변
우선 올바른 구문은 다음과 같습니다.
<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="https://stackoverflow.com/stylesheets/ie6.css" />
<![endif]-->
이 게시물을보십시오 :
http://www.quirksmode.org/css/condcom.html
및
http://css-tricks.com/how-to-create-an-ie-only-stylesheet/
당신이 할 수있는 또 다른 일 :
jQuery로 브라우저를 확인하십시오.
if($.browser.msie){ // do something... }
이 경우 일부 요소에 대한 CSS 규칙을 변경하거나 새로운 CSS 링크 참조를 추가 할 수 있습니다.
이것을 읽으십시오 : http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx
답변
<!-- [if !IE] -->
IE8은 미디어 쿼리로 끔찍 하기 때문에 내 전체 CSS 블록에 다음과 같은 공간을 두어야 합니다.
<!-- IE 8 or below -->
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/Resources/css/master1300.css" />
<![endif]-->
<!-- IE 9 or above -->
<!--[if gte IE 9]>
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
href="https://stackoverflow.com/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
href="https://stackoverflow.com/Resources/css/master480.css" />
<![endif]-->
<!-- Not IE -->
<!-- [if !IE] -->
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
href="/Resources/css/master480.css" />
<!-- [endif] -->