IE でどうにかして color:inherit を有効にする

  IE (6 も 7) では、CSS の color: inherit に対応していないので、以下のような場合に他のブラウザと異なる表示になります。

* {
  color: #000;
}
 
p {
  color: #f00;
}
 
span {
  color: inherit;
}

<p><span>ここは color: inherit を指定しています。</span></p>


- Internet Explorer 6.0
  color: inherit of IE

- Firefox 2.0.0.12
  color: inherit of Firefox

  見て分かるとおりに、IE の場合は、ユニバーサルセレクタで指定した #000 が有効になっています。
  要は、CSS 2 に準拠していないということなのですが、これをどうにかして他のブラウザのように #f00 で表示してやろうというのが趣旨です。

  結論から言うと JavaScript での処理になるのですが、はじめに以下のようなスクリプトを書いてみました。

window.onload = function() {
  if (document.all) {
    var e = document.getElementsByTagName('span');
    for (var i = 0, l = e.length; i < l; ++i) {
      e[i].style.color = e[i].parentNode.currentStyle.color;
    }
  }
};


  要は、親要素の color を適用していくという感じです。もちろん、これでうまくいきます。

  jQuery を利用している場合は、以下のような感じで、

$(function() {
  if ($.browser.msie) {
    $('span').each(function() {
      $(this).css('color', $(this).parent().css('color'));
    });
  }
});


  prototype.js を利用している場合は、以下のような感じです。

Event.observe(window, 'load', function() {
  if (Prototype.Browser.IE) {
    $$('span').each(function(e) {
      e.style.color = e.parentNode.currentStyle.color;
    });
  }
});


  さて、上記のスクリプトを見て分かるとおりに IE でしかこの処理は行ないません。
  となると、IE の CSS 拡張 expression が使えそうです。

span {
  color: inherit; /* NOT IE */
  color: expression(this.parentNode.currentStyle.color); /* IE */
}


  これだとシンプルに書くことが出来ます。
  ただし、expression も問題があって、何かしらのイベントが発生するたびに評価されてしまいます。
  例えば、mouseover だったり riseze だったり。
  あともちろん、validator には通りません。

  結論としては、上記の方法を時と場合によって使い分けるのが良いと思います。

# IE が color: inherit をサポートしてくれるのが一番いいんですけどね……
# IE 8 ではどうなっているんでしょう?

- hxxk.jp - IE 7 と color: inherit
  http://hxxk.jp/2006/11/19/2347

Fiddler が動作しなくなった

  Microsoft の Proxy 型の HTTP デバッガ Fiddler が突然 (?) 動作しなくなりました。
  それも IE (WinINET) からのみうまく動作しません。Firefox からだと問題なく動作します。

  2.1.4.4 beta にアップデートしたりしてもうまくいかないので調べてみたら、以下のフォーラムの記事を見つけました。

- Bugs: Fiddler started but browser ceased to work
  http://groups.msn.com/HTTPFiddler/bugs.msnw?action=get_message&ID_Message= ...

1> Close Fiddler.
2> Start the Registry editor.  START > RUN > REGEDIT.EXE
3> Navigate to HKEY_CURRENT_USER\Software\Microsoft\Fiddler2
4> Right-click in the pane on the right hand side and choose NEW > STRING VALUE.
5> Name the new string MapSocketToProcess and set its value to False
6> Restart Fiddler.

  つまり、レジストリを書き換えるということです。

  試しにこのとおりにやってみると、うまく動作するようになりました!
  原因は分かりませんが、とりあえず動くようになったのでこれで良しとします。

  環境は、上記の記事では Windows 2000 (SP4) でしたが、うちの環境は Windows XP (SP2) + IE 6.0 でした。

  以下に書き換え後のレジストリを書き出しておきます。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Fiddler2]
"MapSocketToProcess"="False"

キーボードを新調した

  2002 年に購入したキーボード (Realfirce 106) の調子が、ここ最近あまりよくありませんでした。
  解体して掃除したりしてもなんかいまいちだったので、久しぶりにキーボードを買いました。

  買ったものは、今のと全く同じで Realforce 106 LA0100。違うキーボードも試してみたかったのですが、結局ずっと使っていて手になじんでいるので同じにしました。

  ヨドバシカメラ吉祥寺店で 17,600 円。ポイントが 13% の 2,288 ポイント付いたので、実質 15,312 円でした。
  また、5、6 年はお世話になりそうです。

- 東プレ LA0100 REALFORCE106
  B000EQHU4Y
  amazon.co.jp 詳細ページへ
  東プレ
  ASIN: B000EQHU4Y
  17,115 円

天国のビーフシチューを作ってみた

  経営コンサルタントの渡辺千賀さんのブログ (On Off and Beyond) の昨年末のエントリーにとても美味しそうなシチューのレシピがありました。

- On Off and Beyond: 天国のビーフシチュー
  http://www.chikawatanabe.com/blog/2007/12/post-5.html

  ずっと気になっていたのですが、今日お休みで時間が取れましたので、作ってみました。

材料 (4 人分)

  

  • 牛肉 500g
  • 人参 2 本
  • ジャガイモ 2 個
  • タマネギ 2 個 (写真には 3 個写っていますが、実際は 2 個使用しました)
  • セロリの茎 2 本
  • マッシュルーム 10 個
  • ホールトマト (トマトジュース漬け) 400g
  • 赤ワイン (500cc)
  • カラメル用の砂糖 大さじ 3
  • ブールマニエ用に小麦粉とバター各 30g
  • ブーケガルニ (市販品)

作り方

  渡辺さんのレシピと全く同じです。
  ジャガイモは煮込みの半分の時間 (20 分) が過ぎたあたりで投入しました。

天国のビーフシチュー

  
  

  実は、そこまで期待はしていなかったのですが、食べているうちに『これはもう大変なものが出来てしまった』というヨロコビがじわじわと湧き上がってきました!
  そんなに面倒でもなかったし、とても美味しいので是非オススメです!