レッドトイプードル・チョコタンチワワ・ブルーマールチワワ・ヨークシャーテリアの子犬を紹介するレッドトイボックスです。

レッドトイボックス

ママと一緒にまってるよ♪

uO@bhgCv[hDI

2010 年 8 月 のアーカイブ

メニューを固定させる

2010 年 8 月 19 日 木曜日

今回メニュー部分を固定させるデザインの案件を受けて丸3日戦ってやっと勝ちました。
誰にかと言うと もちろん! IE6!

cssとjavaを使った方法があって cssを使った方法ってサイト全体が左寄せのばっかりで
1個だけ中央寄せに対応したのを見つけたのですが
現在閉鎖されている英語サイトで配布されているもので もちろんシェアーでした。

でもサイトが閉鎖されているからお金を払うことも出来なくて
で もしそのサイトが復活して 使っているのが見つかったら・・・(以下ry)

で 左寄せで作ってあるjavaをちょっこし改造して 中央寄せ対応にしたのですが
なぜかカクカク動くんです。
その修正方法が載っているサイトも見つけたのですが 気力が・・・

と言う事で完成したのが↓です。
CSS Lectureさんのを参考にさせていただきました。と言うかまんまです。^^;

もちろんIE6のXML宣言のバグの対応もしてます。対応方法は、こちらです。

◆htmlの記述です。

<!--#if expr="$HTTP_USER_AGENT != /MSIE 6.0/ || $HTTP_USER_AGENT != /Windows/ " --><?xml version="1.0" encoding="UTF-8"?>
<!--#endif -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>レッドトイボックス</title>
<meta http-equiv=”Content-Style-Type” content=”text/css” />
<link rel=”stylesheet” type=”text/css” media=”screen, print, tv, projection, tty” href=”css/common.css” />
</head>

<body>

<div id=”container”>

<div id=”content”>
<h1>レッドトイボックス</h1>
<p>内容</p>
</div><!– /div#content –>

<div id=”main_menu”>
<ul>
<li><a href=”../../index.html” title=”HOME”>HOME</a></li>
<li><a href=”../../koinu/index.html”>トイプードルレッドの子犬</a></li>
<li><a href=”../../koinu/chihuahua-koinu.html”>チョコタンチワワの子犬</a></li>
<li><a href=”../../info/index.html”>子犬お渡しまでの流れ</a></li>
<li><a href=”../../various/index.html”>特定商取引表示</a></li>
<li><a href=”../../various/inq.php”>お問い合せ</a></li>
<li><a href=”../../breed/policy.html”>私たちのブリーディングポリシー</a></li>
</ul>
</div><!– /div#main_menu –>

</div><!– /div#container –>

<div id=”footer”>
<address>Copyright (c) 2010 <a href=”index.html”>レッドトイボックス</a> All Rights Reserved.</address>
</div><!– /div#footer –>

</body>

</html>

◆次は、cssの記述です。

#container {
width:1000px;
margin:0 auto 0 auto;
padding:0;
text-align:left;
position: relative;
}
#content {
width:800px;
margin:0;
padding:0 0 0 200px;
}
#main_menu {
width:174px;
margin:0;
padding:0;
}
#main_menu ul {
margin:20px 0 0 0;
paddig:0;
position: fixed;
top:60px;
z-index:20;
}
* html div#main_menu ul {
position:absolute;
top: expression(eval(document.documentElement.scrollTop+60));
}

IE6のXML宣言のバグに勝!

2010 年 8 月 19 日 木曜日

いやぁ~もぉ~~ 今回もIE6と戦いました!戦いましたよ。(>.<)

で 行き着いた結論が 『IE6のXML宣言のバグ』 だったのです。
ネットを徘徊する事丸3日間 やっと見つけました。
と言う事で忘れないようにこちらのRyota Weblogさんより 転記させていただきます。

XHTMLでは、XML宣言を一番初めに書くことが推奨されています。
と言うか これ書かないと w3cのチェックで大幅な減点をされてしまいます。

でも 今回メニューを固定する案件を受けてjavaを使った方法とcssで制御する方法の
二つでいろいろ試したのですが どうしてもIE6だけが反応してくれなくて
でも、その方法を紹介しているサイトのDEMOでは、ちゃんと動いてて

で ハッって気が付いたら犯人は、『XML宣言』だったのです。

で クライアントに電話してデザインを取るかXML宣言を取るか
相談しようかと思っていたところRyota Weblogさんを見つけたんです。
その方法と言うのは、PHPとかややこしいことをせずにSSIを使ったお手軽な方法です。

と言う事で本題に

◆犯人のXHL宣言と言うのは、こいつ→ <?xml version="1.0" encoding="UTF-8"?>

普通の記述は、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

こんな感じなんですが 

それを
<!--#if expr="$HTTP_USER_AGENT != /MSIE 6.0/ || $HTTP_USER_AGENT != /Windows/ " --><?xml version="1.0" encoding="UTF-8"?>
<!--#endif --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

こんな感じにします。

◆でサーバーでSSIを使えるようにする為に 『.htaccess』ファイルを作ります。

内容は、
AddHandler server-parsed html
これ1行 

.htaccessを書くときの注意点は、最終行に必ず改行を入れる事です。
でこの『.htaccess』ファイルをサーバーのindex.htmlと同じ場所にアップロードすれば完了です。
ちなみにローカルな環境では、『.htaccess』ファイルが効きません。

これで完了♪

◆XML宣言を別ファイルにする時は、
<!--#if expr="$HTTP_USER_AGENT != /compatible; MSIE 6/" --><!--#include virtual="/xml.inc"--><!--#endif --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
と書いて

この時の注意点は、↑を改行しないで一行にする事です。
でないと IE6で一番上に空白の一行が出来てしまいます。

xml.incファイルには、「XML宣言」を書いてサーバーの同じ場所にアップロードします。
<?xml version="1.0" encoding="UTF-8"?>

Ryota Weblogさんには、感謝感謝でございます。

̃y[W̃gbv

Copyright (c) Red Toybox 2007 All Rights Reserved.