묻고답하기
ie6 핵 관련
2011.12.19 16:21
오전에 질문을 드렸었는데, ie6에서만 불필요한 공간이 너무 넓어서 ie6에만 적용되는 별도의 css 파일을 만들었습니다.
(파일명 : ie6only.css)
layout.html에 ie6인 경우에만 위의 파일을 불러오는 코딩을 하고 싶은데요
<!--[if IE 6]> <link rel="stylesheet" type="text/css" href="css/ie6only.css" /> <![endif]-->위와 같이 입력을 하니까 불러와지질 않습니다. 그래서
<!--[if IE 6]> <link type="text/css" media="screen" href="css/ie6only.css" /><!endif]-->
이렇게 입력을 하니까 그래도 불러와지질 않네요.
위의 두 개의 코딩은 어디가 잘못된 것이며,
어떻게 입력을 해야 ie6으로 볼 때에 한해서 ie6only.css 파일을 불러올 수 있는 것인지요?
댓글 4
-
송동우
2011.12.19 17:17
-
디쎔버
2011.12.19 17:40
답변 감사합니다. 경로는 맞습니다. 그런데 ie6가 아닐 때 다른 것들은 불러오지 않도록 하는 코딩은 어떻게 해야 하는지요? -
송동우
2011.12.19 18:03
예를 들자면
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css1.css" />
<![endif]--><link rel="stylesheet" type="text/css" href="css2.css" />
이렇게 되어 있다고 치면
ie 6 일때 css1을 불러 오겠죠...
그런데 바로 밑에 아무 조건없이 css2를 불러옵니다.
css1은 불러오나 마나....쓸데없는 뻘짓이 되어버린다는 거죠......
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css1.css" />
<![endif]--><!--[if !IE 6]>
<link rel="stylesheet" type="text/css" href="css2.css" />
<![endif]-->
이런식으로 구분이 되어 있다면 그런 오류는 없어지겠죠...
물론
전체적인 소스를 공개하지 않아서 어디에 오류가 있어서 못 불러오는지 모르겠지만
전체적으로 잘 훑어보라는 의미로 예를 든 것입니다.
-
디쎔버
2011.12.19 18:50
아하 이유를 알겠습니다. <load target="css/default.css" cond="$layout_info->colorset=='default'" /> <load target="css/white.css" cond="$layout_info->colorset=='white'" /> <load target="css/black.css" cond="$layout_info->colorset=='black'" /> 이걸 다 지워버리고 바로 위에 두 번째 답글에서 적어주신 조건문만 파일명과 경로를 제 상황에 맞추어 올려놓으면 해결되겠군요. 상세한 답변에 깊이 감사드립니다. -
디쎔버
2011.12.19 19:25
그런데 적용해 보니 안되어 아래에 답글로 올렸습니다. 혹시 아시면 한 번만 더 답글을 달아주시면 감사하겠습니다. -
디쎔버
2011.12.19 19:16
아 정말 이상하네요. 위의 답변대로 아래와 같이 했는데도 ie6으로 들어가서 소스보기를 해보니까 아직도 계속 white.css를 불러오고 있네요.
layout.html의 내용은 다음과 같습니다.
<load target="js/xe_official.js" />
<load target="js/app.js" />
<!--[if IE 6]> <link rel="stylesheet" type="text/css" href="css/ie6only.css" /> <![endif]-->
<!--[if !IE 6]> <link rel="stylesheet" type="text/css" href="css/white.css" /> <![endif]-->
<style type="text/css" cond="$layout_info->background_image">
body{background:url({getUrl()}{$layout_info->background_image}) repeat-x left top;}
</style>
<!--@if(!$layout_info->colorset)-->{@$layout_info->colorset = "default"}<!--@end-->
<div class="xe">
<div class="header">
<center>
<h1>
<a href="{$layout_info->index_url}" cond="$layout_info->logo_image"><img src="{$layout_info->logo_image}" alt="logo" border="0" class="iePngFix" /></a>
<a href="{$layout_info->index_url}" cond="!$layout_info->logo_image">{$layout_info->logo_image_alt}</a>
</h1>
</center>
<div class="gnb">
<ul>
<li loop="$main_menu->list=>$key1,$val1" class="active"|cond="$val1['selected']"><a href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'">{$val1['link']}</a>
<ul cond="$val1['list']">
<li loop="$val1['list']=>$key2,$val2" class="active"|cond="$val2['selected']"><a href="{$val2['href']}" target="_blank"|cond="$val2['open_window']=='Y'">{$val2['link']}</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="content xe_content">
{$content}
</div>
</div>
<ul id="footer">
<!--@foreach($bottom_menu->list as $key => $val)-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['link']}</a></li>
<!--@endforeach-->
<li class="first-child">
<address>
</address>
</li>
</ul>
</div>
-
송동우
2011.12.19 19:48
그럼 이렇게는 되나 안되나 한 번 해 보세요
<load target="css/ie6only.css" cond="preg_match('/ie 6/i', getenv('HTTP_USER_AGENT'))" />
<load target="css/white.css" cond="!preg_match('/ie 6/i', getenv('HTTP_USER_AGENT'))" /> -
디쎔버
2011.12.19 20:13
그래도 안되네요. 계속 white.css를 불러들이고 있습니다. 고맙기도 하지만 너무 죄송해서 이제 더 질문도 못하겠네요. ㅠㅠ
첫번째 것으로 하면 됩니다.
ie6가 아닐때 다른 것들은 불러오지 않도록 코딩을 해 줬나요?
그 부분도 살펴보시기 바랍니다.
물론 옳바른 경로를 적어줬는지도 확인하구요.....