<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
	xml:lang="ja">
	<channel rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/index.rss">
		<title>Studencheskie Programmisty</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi</link>
		<description>とある学生の奮闘記</description>
		<dc:creator>nodaguti (mailto:nodaguti@gmail.com)</dc:creator>
		<admin:generatorAgent rdf:resource="http://www.blosxom.com/?v=2.0"/>
		<admin:errorReportsTo rdf:resource="mailto:nodaguti@gmail.com"/>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/2010-3-10_ie7-ghost-bug.htm"/>
				<rdf:li rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-2-22_H22-2-22.htm"/>
				<rdf:li rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/2010-1-26_ie-dom-cannot-reference.htm"/>
				<rdf:li rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.htm"/>
				<rdf:li rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-1-7_index-page-renewal.htm"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/2010-3-10_ie7-ghost-bug.htm">
		<title>IE7の:hoverに関するバグ</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/2010-3-10_ie7-ghost-bug.htm</link>
		<description>ちょっとIE7向けにサイトを作らなければならないことがありまして、IE7以上であればli要素への:hoverにも対応しているので、このサイトの左メニューをそのまま採用したわけです。そうしたら、案の定と言うか大きくわけて2つの問題が発生した。1つは、各項目の間に隙間が生じること。IE7ではli同士の間には隙間は生じないはずなんだけど、なぜかできてしまう。仕方がないので苦し紛れに*:first-child+html #menu{   margin-left: -10%;}*:first-child+html #menu li{   margin-top: -1px;   margin-left: 2px;}*:first-child+html #menu ul{   margin-left: 2px;}*:first-child+html #menu &gt; li &gt; ul{   margin-left: -5%;}みたいな感じでとりあえず応急処置をしておいた。原因は未だ不明。で、ここからが本題なんだが、2つ目は、hoverしていないサブメニューの外枠だけが表示されるというもの。言葉で表すのはちょっと厳しいので以下の画像を見ていただきたい。これは、一度３つ目の部分までカーソルを動かし、そのまま外に動かしてメニューを閉じ、再び一番左のところにカーソルをのせると発生する。どうやらこれはIE7 ghost bugと呼ばれているらしく、IE7:hover ghosts bugなどで紹介されているが、日本語で説明しているサイトが見つからなかったので記事を書いてみた次第である。この現象は、前の記事によると、:hover状態ではない要素がhasLayout = trueになっているのがいけないらしい。だが、hasLayout = trueにしないとそれはそれでメニューが展開できない状態になってしまうので、&lt;ul id=&quot;menu&quot;&gt;  &lt;li&gt;    &lt;a href=&quot;#&quot;&gt;Alpha&lt;/a&gt;    &lt;ul&gt;      &lt;li&gt;        &lt;a href=&quot;#&quot;&gt;Bata&lt;/a&gt;        &lt;ul&gt;          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Gamma&lt;/a&gt;&lt;/li&gt;        &lt;/ul&gt;      &lt;/li&gt;    &lt;/ul&gt;  &lt;/li&gt;&lt;/ul&gt;というHTMLのとき、CSSを/* 装飾関連は省略 *//* 展開処理 */#menu li &gt; ul{   width: 12em; /* hasLayoutをtrueに */   display: none;}#menu li:hover &gt; ul{   display: block;}とするのではなく、/* 展開処理 */#menu li > ul{   display: none;}#menu li:hover > ul{   width: 12em;   display: block;}のように、hoverの時のみhasLayoutがtrueになるようにする必要がある。</description>
		<dc:subject></dc:subject>
		<dc:creator>nodaguti (nodaguti@gmail.com)</dc:creator>
		<dc:date>2010-03-10T10:21+09:00</dc:date>
		<content:encoded><![CDATA[<p>ちょっとIE7向けにサイトを作らなければならないことがありまして、IE7以上であればli要素への:hoverにも対応しているので、このサイトの左メニューをそのまま採用したわけです。</p>
<p>そうしたら、案の定と言うか大きくわけて2つの問題が発生した。1つは、各項目の間に隙間が生じること。<a href="http://redline.hippy.jp/lab/css/post_17.php">IE7ではli同士の間には隙間は生じない</a>はずなんだけど、なぜかできてしまう。仕方がないので苦し紛れに</p>
<pre class="prettyprint">
*:first-child+html #menu{
   margin-left: -10%;
}
*:first-child+html #menu li{
   margin-top: -1px;
   margin-left: 2px;
}
*:first-child+html #menu ul{
   margin-left: 2px;
}
*:first-child+html #menu &gt; li &gt; ul{
   margin-left: -5%;
}
</pre>
<p>みたいな感じでとりあえず応急処置をしておいた。原因は未だ不明。</p>
<p>で、ここからが本題なんだが、2つ目は、hoverしていないサブメニューの外枠だけが表示されるというもの。言葉で表すのはちょっと厳しいので以下の画像を見ていただきたい。</p>
<img src="http://nodaguti.usamimi.info/img/ie7-ghost-bug.png" alt="IE7のGhost bugの実例" />
<p>これは、一度３つ目の部分までカーソルを動かし、そのまま外に動かしてメニューを閉じ、再び一番左のところにカーソルをのせると発生する。どうやらこれはIE7 ghost bugと呼ばれているらしく、<a href="http://murphy.cz/ie7-hover-ghosts-bug/">IE7:hover ghosts bug</a>などで紹介されているが、日本語で説明しているサイトが見つからなかったので記事を書いてみた次第である。</p>
<p>この現象は、前の記事によると、:hover状態ではない要素がhasLayout = trueになっているのがいけないらしい。だが、hasLayout = trueにしないとそれはそれでメニューが展開できない状態になってしまうので、</p>
<pre class="prettyprint">
&lt;ul id=&quot;menu&quot;&gt;
  &lt;li&gt;
    &lt;a href=&quot;#&quot;&gt;Alpha&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=&quot;#&quot;&gt;Bata&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Gamma&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>というHTMLのとき、CSSを</p>
<pre class="prettyprint">
/* 装飾関連は省略 */
/* 展開処理 */
#menu li &gt; ul{
   width: 12em; /* hasLayoutをtrueに */
   display: none;
}
#menu li:hover &gt; ul{
   display: block;
}
</pre>
<p>とするのではなく、</p>
<pre class="prettyprint">
/* 展開処理 */
#menu li > ul{
   display: none;
}
#menu li:hover > ul{
   width: 12em;
   display: block;
}
</pre>
<p>のように、hoverの時のみhasLayoutがtrueになるようにする必要がある。</p>

<div class="posted">
カテゴリ：<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/index.html">CSS</a>
| <a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/2010-3-10_ie7-ghost-bug.htm#writebacks">Comments/Trackbacks (0)</a>
</div>
		]]></content:encoded>
		<trackback:ping rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/css/2010-3-10_ie7-ghost-bug.trackback"/>
	</item>
	<item rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-2-22_H22-2-22.htm">
		<title>平成22年2月22日</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-2-22_H22-2-22.htm</link>
		<description>2月最初の投稿がこれというのもどうかと思うけど。表題のまんま。次は平成33年3月3日とかかねえ。暦なんて人間が勝手に決めたものだし、ぞろ目になったからどうというわけでもないし、2月23日と今日がどう違うのかといえばまあ対した違いはないだろうけど、それでもやはり記念切符を売り出したりするらしい。別に買う人が悪いとか、そういうわけじゃないけどなんだかなあ、と。最近何やってたかについてはまたもうちょっとしたら書く（つもり）。</description>
		<dc:subject></dc:subject>
		<dc:creator>nodaguti (nodaguti@gmail.com)</dc:creator>
		<dc:date>2010-02-22T20:31+09:00</dc:date>
		<content:encoded><![CDATA[<p>
2月最初の投稿がこれというのもどうかと思うけど。表題のまんま。次は平成33年3月3日とかかねえ。
</p>
<p>
暦なんて人間が勝手に決めたものだし、ぞろ目になったからどうというわけでもないし、2月23日と今日がどう違うのかといえばまあ対した違いはないだろうけど、それでもやはり<a href="http://mainichi.jp/area/yamaguchi/news/20100221ddlk35040229000c.html">記念切符を売り出したりする</a>らしい。
</p>
<p>
別に買う人が悪いとか、そういうわけじゃないけどなんだかなあ、と。最近何やってたかについてはまたもうちょっとしたら書く（つもり）。
</p>

<div class="posted">
カテゴリ：<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/index.html">日記</a>
| <a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-2-22_H22-2-22.htm#writebacks">Comments/Trackbacks (0)</a>
</div>
		]]></content:encoded>
		<trackback:ping rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-2-22_H22-2-22.trackback"/>
	</item>
	<item rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/2010-1-26_ie-dom-cannot-reference.htm">
		<title>IEのDOMがおかしい</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/2010-1-26_ie-dom-cannot-reference.htm</link>
		<description>導入したie6-upgrade-warningが実はうまく動いていなかったので、原因を探っていたら、IEのバグらしきものに遭遇した。具体的には、以下のような感じ。var input = document.createElement('input');input.id = "test_i_1";input.type = "checkbox";document.body.appendChild(input); //きちんとチェックボックスが追加されるvar input = document.createElement('input');input.id = "test_i_2";document.body.appendChild(input);var i = document.getElementById('test_i_2');i.type = "checkbox";  //エラーがでるなぜか、getElementByIdしたやつだとDOMがうまく動かないみたい。ちなみに、i.setAttribute("type", "checkbox")でも結果は同じだった。やはりIEのDOMはよく分からん...</description>
		<dc:subject></dc:subject>
		<dc:creator>nodaguti (nodaguti@gmail.com)</dc:creator>
		<dc:date>2010-01-26T18:30+09:00</dc:date>
		<content:encoded><![CDATA[<p>
<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.htm">導入したie6-upgrade-warning</a>が実はうまく動いていなかったので、原因を探っていたら、IEのバグらしきものに遭遇した。
</p>
<p>具体的には、以下のような感じ。</p>
<pre class="prettyprint">
var input = document.createElement('input');
input.id = "test_i_1";
input.type = "checkbox";
document.body.appendChild(input); //きちんとチェックボックスが追加される

var input = document.createElement('input');
input.id = "test_i_2";
document.body.appendChild(input);
var i = document.getElementById('test_i_2');
i.type = "checkbox";  //エラーがでる
</pre>
<p>
なぜか、getElementByIdしたやつだとDOMがうまく動かないみたい。ちなみに、<code>i.setAttribute("type", "checkbox")</code>でも
結果は同じだった。
</p>
<p>
やはりIEのDOMはよく分からん...
</p>

<div class="posted">
カテゴリ：<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/index.html">javascript</a>
| <a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/2010-1-26_ie-dom-cannot-reference.htm#writebacks">Comments/Trackbacks (0)</a>
</div>
		]]></content:encoded>
		<trackback:ping rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/javascript/2010-1-26_ie-dom-cannot-reference.trackback"/>
	</item>
	<item rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.htm">
		<title>ie6-upgrade-warningを導入</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.htm</link>
		<description>IE6を使っている人にやんわりアップグレードを勧める8kbの軽量スクリプト『ie6-upgrade-warning』 - IDEA*IDEA ～ 百式管理人のライフハックブログを見て、うちも導入してみることにした。ただ、私の場合はIEが全般的に嫌いなので全てのバージョンで表示させる方向でｗところどころ改造しています。オリジナル版からの変更点は以下の通り。表示される文ブラウザーの選択肢の中からIEを削除「次から表示しない」機能を追加「閉じる」ボタンを追加「次から表示しない」機能は一応30日間効果（？）が継続するようにしている。動作した時のスクリーンショット。これで少しはIEを使わない人が増えてくれるといいのだけれど。</description>
		<dc:subject></dc:subject>
		<dc:creator>nodaguti (nodaguti@gmail.com)</dc:creator>
		<dc:date>2010-01-10T21:10+09:00</dc:date>
		<content:encoded><![CDATA[<p>
<a href="http://www.ideaxidea.com/archives/2009/04/ie6-upgrade-warning.html">IE6を使っている人にやんわりアップグレードを勧める8kbの軽量スクリプト『ie6-upgrade-warning』 - IDEA*IDEA ～ 百式管理人のライフハックブログ</a>を見て、うちも導入してみることにした。
</p>
<p>
ただ、私の場合はIEが全般的に嫌いなので全てのバージョンで表示させる方向でｗ
</p>
<p>
ところどころ改造しています。<a href="http://code.google.com/p/ie6-upgrade-warning/">オリジナル版</a>からの変更点は以下の通り。
</p>
<ul class="section">
<li>表示される文</li>
<li>ブラウザーの選択肢の中からIEを削除</li>
<li>「次から表示しない」機能を追加</li>
<li>「閉じる」ボタンを追加</li>
</ul>
<p>
「次から表示しない」機能は一応30日間効果（？）が継続するようにしている。動作した時の<a href="http://nodaguti.usamimi.info/img/ie6-upgrade-warning.png">スクリーンショット</a>。これで少しはIEを使わない人が増えてくれるといいのだけれど。
</p>

<div class="posted">
カテゴリ：<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/index.html">サイト運営</a>
| <a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.htm#writebacks">Comments/Trackbacks (0)</a>
</div>
		]]></content:encoded>
		<trackback:ping rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/site/2010-1-10_ie6-upgrade-warning.trackback"/>
	</item>
	<item rdf:about="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-1-7_index-page-renewal.htm">
		<title>トップページ変更</title>
		<link>http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-1-7_index-page-renewal.htm</link>
		<description>http://nodaguti.usamimi.info/ にアクセスした時に、単純にリダイレクトするのは面白くないと思ったので「サイト入り口」的な感じにしてみた。なんとなくフォクすけのロゴを置いてみた。ENTERキーをフォクすけに持たせるのに結構苦労し、かなり時間がかかってしまった。慣れない画像編集なんてしないで素直にそのまま置けば良かった...本当はふぉくす子を住ませたかったんだけど、画力がだいぶ足りなかったｗまあまたそのうちいい画像があったらということで。</description>
		<dc:subject></dc:subject>
		<dc:creator>nodaguti (nodaguti@gmail.com)</dc:creator>
		<dc:date>2010-01-07T17:11+09:00</dc:date>
		<content:encoded><![CDATA[<p>
<a href="http://nodaguti.usamimi.info/">http://nodaguti.usamimi.info/</a> にアクセスした時に、単純にリダイレクトするのは面白くないと思ったので「サイト入り口」的な感じにしてみた。
</p>
<p>
なんとなく<a href="http://foxkeh.jp/">フォクすけ</a>のロゴを置いてみた。ENTERキーをフォクすけに持たせるのに結構苦労し、かなり時間がかかってしまった。慣れない画像編集なんてしないで素直にそのまま置けば良かった...
</p>
<p>
本当は<a href="http://inu.imagines.jp/gallery/firefox.htm">ふぉくす子</a>を住ませたかったんだけど、画力がだいぶ足りなかったｗ<br />
まあまたそのうちいい画像があったらということで。
</p>

<div class="posted">
カテゴリ：<a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/index.html">日記</a>
| <a href="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-1-7_index-page-renewal.htm#writebacks">Comments/Trackbacks (0)</a>
</div>
		]]></content:encoded>
		<trackback:ping rdf:resource="http://nodaguti.usamimi.info/blosxom/blosxom.cgi/diary/2010-1-7_index-page-renewal.trackback"/>
	</item>
</rdf:RDF>
