고유 한 문제가 있습니다. 이전에이 문제가 발생하여이를 해결했거나이 문제에 대해 알고 있고 이로 인해 원인이 무엇인지 잘 알고 싶습니다. ...IE 조건문에 조건이 나와 있지 않아도 표시됩니다.
나는 HTML5 - 상용구 V4.3.0을 사용하여 사이트를 생성하고 그에 내가 IE (최신 렌더링 엔진을 사용하는 브라우저를 강제로) 여기에 표시된 것처럼위한 일반 조건문이
<!--[if HTML5]><![endif]-->
<!doctype html>
<!--[if lt IE 7]> <html class="ie ie6 lte9 lte8 lte7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="ie ie7 lte9 lte8 lte7" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="ie ie8 lte9 lte8" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="ie ie9 lte9" lang="en"> <![endif]-->
<!--[(gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->
<meta charset="utf-8"> ....
<!--- End Meta tags -->
은 지금은 이러한 link here, this link에 따라 코드와이있는 SO
나는 또한 IE를 대상으로 body 태그에있는 작은 조건문이 앤드류 here.에 의해 게시 대답 할 버전은 다음 미만 9 경우 여기에 표시된 div를 표시합니다 ...
<body>
<!--[if lt IE 9]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please upgrade your browser to improve your experience. This site was designed to work with modern browsers like Internet Explorer 9 or above, Firefox, Chrome, etc.</p>
<![endif]-->
.......
</body>
클래스 "browsehappy"에 대한 CSS 요소는
.browsehappy {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
position:fixed;
top: 0;
left: 0;
z-index: 1000;
background-color: #fff;
font-size: 14px;
width: 100%;
text-align: center;
}
내가 내 웹 서버로 XAMPP를 기반으로 IIS7 및/또는 아파치를 실행하고 ... 이런 식으로 간다. 또한 많은 온라인 도움말 사이트에서 IE를 특정 모드에서 강제로 열도록하는 가장 좋은 방법은 서버 구성 파일을 사용하는 것입니다. 따라서 내가 파일 ... IIS7에 대한
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=10" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
의 web.config와 ... 아파치에 대한 htaccess로의
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=edge"
# `mod_headers` can't match based on the content-type, however, we only
# want to send this header for HTML pages and not for the other resources
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe? g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svgz?|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
부분 I 서버가있는 경우
모든 것이 잘 작동을 생성 config 파일을 html 파일과 함께 내 폴더에 저장하십시오.
하지만 내 문제의 일부는 사이트가 상주 할 최종 웹 서버에 대한 제어권이나 액세스 권한이 없다는 것입니다. 따라서 서버 구성 파일을 포함하지 않는 솔루션을 찾아야합니다.
이제 head 태그 앞에있는 조건문이 작동하는 것 같습니다. IE9에서 열면 IE9 호환성보기 브라우저 모드로 열리고 IE9 표준 문서 모드 (IE7 문서 모드 및 IE9 가능성에 반대)
그러나 본문 태그 내부의 조건문은 올바르게 작동하지 않습니다. 이제 내가 사이트의 최종 웹 서버를 제어 할 수 없기 때문에 언급 한 바와 같이 루트 폴더에서 구성 파일을 제거하고 메타 태그 접근 방식을 사용하여 브라우저를 강제 실행했습니다. 루트 폴더에서 서버 설정 파일없이 IE9에서 열 때 내 스크린 샷입니다
. 구성 파일을 사용하면 올바르게 작동합니다.
지금 내 질문은 브라우저가 IE9 모드로 열리는데 왜 부서가 표시됩니까?
도움을 주시면 감사하겠습니다. 미리 감사드립니다. p.s : ie11에서 열면 출력이 정상적으로 작동합니다. ie10에서 테스트하지 않았습니다.
지연 응답. IE 9에서 열리기 때문에, body 태그의 조건이 false 여야하므로 div가 표시되지 않아야합니다. 맞습니까? 또는 나는 무엇인가 여기에서 놓치고 있냐? – Sai
하지만 아마도 인트라넷 영역에 있기 때문에 페이지의 브라우저 모드가 호환성을 위해 IE7로 설정되어있을 것입니다. 이 사이트가 궁극적으로 인터넷에있을 경우 먼저 repro의 인트라넷 영역을 제거하는 것이 좋습니다. 예상대로 작동하는 것일 수 있습니다. – adrianba
감사합니다. 그게 내 문제를 해결 한 것 같습니다. (Div는 나타나지 않습니다.) 하지만 나는 여기서 또 다른 근본적인 질문을하고 있음을 알고 있습니다 ... 왜 IE는 인트라넷 사이트와 인터넷 사이트를 구별합니까? 이 질문을하기 위해 부르짖습니다. 만약 당신이 그 연구에 대한 올바른 방향으로 나를 가리켜 주시면 감사하겠습니다. 다시 한번 감사드립니다. – Sai