2007年8月31日

Deep recursion on subroutine ...

Class::Accessor を 間違えて use base せずに、単純に use したら、"Deep recursion on subroutine..." とか言われて少しハマッタ。。。

2007年8月29日

publicfile と CSS

今日のバッドノウハウは、なかなかレアだww

publicfile 配下の HTML を読み込んだ際に、Firefox だと CSS が読み込まれない、、というか、適用されない、、。回避する方法をいくつか発見したので紹介。。ちなみに、IE6では、ちゃんと適用されている、、。

1. DOCTYPE宣言を書かない
2. DOCTYPE宣言を XHTML → HTML に変更する ※DTDのURLは指定しない
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
3. CSS のファイル名を、example.css → example.css.text=css に変える

原因は、publicfile が CSS ファイルを返すヘッダーに、Content-Type: text/plainとして出力するため、Firefox では CSS として読み込まれず、適用してくれない。。

どうやら、Firefox で XHTML としてDOCTYPE宣言をすると、サーバーの返すヘッダーもちゃんとチェックしているようです、、ただ、IE6 は、その辺がユルユルみたい。。

【参考】
publicfile においてファイル名でヘッダーを操作する
publicfile home
Mozilla Webページ作者 FAQ - スタイルシートが機能しない! どうして?

2007年8月9日

IEで overflow: hidden と、 position: relative。

IE6 で、overflow: hidden が上手くいかないケース。。っというか、Firefox と挙動が違うので、苛立った件。
#wrapper {
background: #fcc;
border: 1px solid gray;
overflow: hidden;
width: 50px;
height: 50px;
}
#container {
background: #ccf;
border: 1px solid gray;
position: relative;
}
<div id="wrapper">
<div id="container">
<span>aaaaaaaaaaaaaaaaaaaaa<br />aaaaaaaaaaaaaaaaaaaaaaaaa</span>
</div>
</div>
Firefox だと、ちゃんとoverflow: hiddenで、範囲外の部分が切り落とされるのだが、、IE6 だと、、切り落とされない。。しかも、面白い事に、width と height を、0px 指定すると IE6 でも、隠される。。。ちなみに、1px 指定だと全部表示される。。
何故かと原因を探していたら、id=container の、position: relative が原因らしい、、何故だ?? position: static にすると、正常な動作をするみたい、、、。。

追伸:Hash Mitz先生へ
メッセージ頂いていたのに返信しなくて、すみません、、今度、fieldset の件も合わせて機会のあるときに、いろいろお聞きいたします。。宜しくお願いいたします(><)
って、これメッセージ返信すればいいじゃん、、orz