あー。また、IE6のアレだ
腐れIEだ。
zoom:1
とか。
<!--[if IE 6]>
<link rel="stylesheet" href="./css/ie6.css" type="text/css" media="screen,projection,print" />
<![endif]-->
とっとと退場しくされ。
なんとか今月末にはリニューアルしようと思って、バグ取りやってんのに、こんなどーでもいいところに割く時間とか労力とか1ミリもねえぞ。ちくそお。
MSの生産物にはうんざりさせられることばかり、だ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
問題の切り分け
昨日は一日悶絶。朝から頭痛、眼痛、吐き気で、トイレと布団の往復。吐きまくりの青息吐息だった。
いや、たしかに、金曜の夜はワインを一本空けてるけど、ワイン一本ぐらいでこんな目にあったことはない。なんか寒気もするなあ、と思って熱を計ったら37度。でも、37度ぐらいでこんな目にあったことはない。
どっちがどっちなんだか問題の切り分けができん、と、朦朧とした頭で考えつつ、風邪でちょっと弱ってるところにワイン一本流し込んだ相乗効果。ビジネス用語でシナジー効果というやつだろうと、くそったれ。
抜けるような青空だったのに(かんべむさしの短編のラストに、青空にむかっておちてくサラリーマン、てのがあったなあ)本当にもったいない。
天気予報どおり、案の定、多少マシになった今日はどんより曇り空。ついてないなあ。どうせ今日もまだ軽く寒気することだし、部屋で転がるしかないんだけど。
おとなしくスクリプトでもいじって過ごすか。
ありがちなタブもどきメニュー。
やりかたはいろいろあって。スタイルシートだけでpositionとz-indexを使ってやったり、背景画像を利用したり。
このスクリーンショットは画像利用のパターン。
外枠の中に3つのタブ、という構成で、一番外枠の背景に高さ1ピクセルの罫線用の画像を用意(幅はなんでもいい)
background:url("keisen.jpg") left bottom repeat-x
するだけ。あとはハイライトしているタブのborder-bottomを背景色にして、外枠の罫線を殺す、という仕掛けだ。
スタイルシートが簡単なので、ブラウザ間の差もなさそうだし、これでやってみることにした。
ちょっと検索するだけでいろんな種類が出てくる。タブ形式のメニューって流行りだったんだなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
せっかくの週末なのに
曇天雨混じりの寒空、だ。おまけに、週末まで、ブラウザ間の解釈に違いにムカつく。
Ajaxで取ったデータをコンテナに流し込んで、そいつをポップアップ風に表示する、てのはありがちなこと。で、「ポップアップ風」てのはページ上の最前面に表示するのが当然なので、z-indexというのを使う。
こいつの解釈が、FireFoxやSafariと、IEで違ってるので悶絶。ありえねえ。
firefox safari
z-indexが最優先。z-indexの大きいものが必ずページ上最前面に表示される。
z-indexの指定がなければ、HTMLの順番(後ろのものが上に)
ie
HTMLの順番がz-indexよりも優先される、っぽい。z-indexの指定に関わらず、HTMLの後ろに別のコンテナが書かれていたら、それが上となってz-indexで表に出したいコンテナは下に潜りこんでしまう。
ieでz-indexの指定を、別のコンテナに適用するには、z-indexを指定したコンテナの親コンテナにもz-indexを指定して前面に出すか、後ろのコンテナにz-indexを指定して背面にまわすか。
if(document.all){
$(c).parentNode.style.zIndex=999;
}
って、なんでieだけのために、と思いつつ入れてみた。とりあえず、直後のコンテナに対しては意図どおり…だけど、さらにコンテナをまたがってポップアップすると、さらに後ろのコンテナにz-indexの指定が勝てなくて、下に潜り込んでしまった。
もうなんかね。ieにイラついたので、ieの時だけ。
HTMLのフッター部分に(最後に)ポップアップ用の空コンテナを用意、
body左上(0,0)から表示位置にある該当div要素の座標を取得して、
絶対位置指定で表示
function get_offset(ele) {
var ele = (typeof ele == 'string') ?
document.getElementById(ele) : ele;
var valuetop = 0, valueleft = 0;
do {
valuetop += ele.offsetTop || 0;
valueleft += ele.offsetLeft || 0;
ele = ele.offsetParent;
} while (ele);
return {left:valueleft, top:valuetop};
}
body左上から、divなどblock要素の座標を取得するスクリプトを、検索しまくり。ありがたくいただいた。
ううううむ。しかし、こんなしょーもないことに半日も取られてしまって…ふぁっきんIEが。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
裏技スタイルシート…
高さの異なるカラムを揃えるスタイルシートというのがあって、見てみたら、padding-bottom: 32768px; と margin-bottom: -32768px; とoverflow:hidden; だそうだ。intめいっぱいか、という妙な数字だけど、ほんとにそんな意味なのか疑問。
でもなあ、こんなのがスタイルシートに入ってると、後々ハマるもとになるだろう。いまでも、その場目先のリクエストにこたえるために、アンダースコアの要素だなんだと、妙なものがどっさり入ってしまっていて、ちょっとした変更や修正のたびに大騒ぎ。HTMLにstyleを埋め込むのを堪えたので、cssだけでいいとはいえ、「なんでここのmarginがつまらないんだ」「だれ、ここのpadding」と、毎度右往左往で吐血だ。
妙なものが混じる奇怪なcssはうんざりなので、最近のウチのリニューアルは、わかりやすいhtmlとシンプルなcssを目指してみた。
(ブログパッケージのMTもスクリプトの構成なんかは素直に勉強になるな、と思ったけど、cssの方はクラス名があれこれてんこもりで見通しが悪くてよくわからなかった)
雑記帖とお言葉データベースさえリニューアルしてしまえば、ウチはほぼ終了。更新のない一部のページを除いてUTF8に移行できたし。
さて、今日はもう帰るか。ちっ。
[08/07 22:47:03]
もともとリニューアルの目的のひとつにzaurusでも使えるように、てのがあったんだ。
perl5.8.8、mod_perl2前提で作っちゃったんで、perl5.6.0で普通に動くcgi版でも考えてみるかしらん。一番の問題は、utf8。5.6.0だとJcodeを使えばutf8も扱えるはず…うーん、あちこちに必要で、書き換えるのはかなり面倒くさい、か。そのうち。まだやる気があったら、だな。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
めも
アイテムコンテナを等間隔にして頭を揃えて並べるんだけど、高さ、幅も違うので、ガタガタ。横幅に応じて一行に並べる個数を変えるので、横幅がわかるまで、どこで折り返しになるのかわからない。float:leftで送り込むにしても高さが違うんじゃ引っ掛かってしまう。
そこでちょっとインチキを思いつく。
各アイテムの直後にダミーの空divをdisplay:noneでこっそりコバンザメ。
折り返しにきたらそのダミーをdisplay:block、width:100%だ。疑似キャリッジリターン、か。無駄にdisplay:noneとidが増えるので、ブラウザに負荷をかけそうだ。縦横が決まってれば決め打ちできるんだけど、ばらばらなので苦肉の策。
しかし。IEて、ページ読み込みでリサイズも起こるっぽい。onloadで一度だけでいいのに、resizeも呼ばれて、同じ処理が無駄に二度も走る。FireFoxだと意図どおりページ読み込みでは一度だけ。
うーむ。どうなってんだ。ぐーぐるさまに聞いてもうまくヒットしないし、どこが間違ってるのかよくわからん。仕様ってやつなんかなあ。
今日、真剣にびっくりしたんだけど。JavaScriptってexitがないんだ。
ドスパラパソコン。久しぶりの新規インストール(FreeBSD-6.3)なのでメモ。
standardでフルインストール。インストール時にパッケージとしてインストールするものはbash2とjlessぐらいで、あとはすべてportsでコンパイルから。その方がひっかかるところも少ない。
まずはcvsup-without-guiをportsでインストール。/usr/share/exsamples/cvsupにあるsup-stableとsup-portsを別の場所にコピーして編集…ても、cvsのサーバーを設定するのとsup-portsの不要なものを外すだけ。
csvupで、ソースツリーを最新にしたら
make buildworld
カーネルを再構築するんで、GENERICをコピーして編集。
cd ../../compile/
config KERNELCONFIG
/etc/make.confに編集したconfigファイルを設定したら
make buildkernel
make installkernel
カーネルでいじったのは
dmesgをみて不要っぽいものを外したのと、postgresql用にセマフォがどーしたという設定
まず必要なのは mod_perl2
www/mod_per2/
依存関係でapache2がインストールされる(どっちが依存してるんだか)
mail/qmail
localtimeパッチにチェックした以外はデフォルト。
graphic/Imagemagick
デフォルト…あきらかに不要なものをインストールされるんだけどいちいち選別するのは面倒だったんで。perl supportにチェックが入ってるかどうかだけ確認。
[04/16 01:33:27]
database/postgresql83-server
database/postgresql83-client
8.2から8.3へ、バージョンが上がることになるけど、セキュリティとか機能面で新しいに越したことはないので。デフォルトで、インストール
database/p5-DBD-Pg
database/p5-DBI
これがなければ始まらない
japanese/kakasi
japanese/nkf
定番ふたつ
japanese/p5-Jcode
Encodeはあるけど使い勝手で
security/ssh2-noX11
security/openssl
sysutils/ucspi-tcp
オプションでRSS_DIFF と SSL
security/sudo
オプションでLDAPとSHELL_SETS_HOME
net/samba3
net/p5-Net-Amazon
もう古いけど、依存関係で必要なものをいれてもらうため
mail/fetchmail
devel/p5-Time-Local
今日はこんなとこで。とりあえず。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
落ち目弱り目たたり目
若者はキレて老人は癇癪をおこす。現象も実体も同じなんだけど、わたしはもう癇癪組かあ、と感慨深い今日この頃だ。
てのはともかく。もう3月だ。なんかあっと言う間に一年の4分の1が過ぎようとしている。今、蟹工船とか天城越えの世界で、時間のやりくりができないままだし。
実り多き晩年を迎えるための仕組みを作らなきゃなあ。ちんたらやってると脳みそがヘタレて体もいうことをきかなくなってしまうぞ。
にしても、考えなしにやってきた40年のツケがまわって、すっかり落ち目。
とはいえ、後悔はするけど反省などしない性格が、今さらなにかの啓示で変わるとも思えないし、さらにツケをため込み続けるだけだろう。後ろ暗いところも恥じるところも特に見当たらないし、まあ、それはそれでOKかもしれん。
ちょっとハマったんでメモ。
Javascriptで画面のリサイズを監視。幅が変化したらそれに合わせてテーブルのカラムをdisplay。
td にdisplay:blockすればいいんだろうと。IEでは意図どおり。ところがFireFoxだとdisplay:blockにしたところが意図どおりになってくれない。横幅を取得できてないというか。
検索しまくりの結果、FireFoxなどでは tdには、display:blockじゃなくて display:table-cellが正しい、と。
なんでまたテーブルかというと。
FireFoxはきっと正しいんだろうけど
a b
□ □
とあって、bは固定幅でネガティブマージンを使って右寄せ、aは固定幅でfloat:left。ここにfloat:leftした横幅を可変の c をいれたい。
a c b
□□□
↑ieだと意図どおり。
ところがFireFoxはcの「幅を明示」してやらないとaとbの間に入ってくれなくて、下に落ちてしまう。
横幅可変でやってんのに、ここに幅を決め打ちなんてできない。あれこれ調べたけどうまくない。前回のようにJavaScriptで幅を取得して渡してやってもいいけど、いろいろ面倒になりそうなのでテーブルにした。
すんなり意図どおりのレイアウトになったけど、テーブル使うとちょっとした変更する時にもhtmlとcssとJavaScriptで整合性を取ることになる。cssだけいじってりゃレイアウトも変更ができる作りが理想なんだけどなぁ。しょぼい。
また悶絶しそうだ。癇癪起こさないようにしないと。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」