zoomでなんとかなっちゃうの(ーー;;;

すみません、変なタイトルつけて・・・。

今月から一ヶ月だけ、違う部署での作業が続いています。はじめ聞いてたよりあんまり忙しい、という感じではなく、ボチボチ作業をこなしています。あんまり応援に来た意味がなかったんじゃないかと思うぐらいに・・・(^^;;;

で、今日もInternet Explorer 6のCSSのバグに悩まされていました。背景画像が意図しないところにレンダリングされてホトホト困っていて、隣の机の方に教えを乞いました。

素人の僕 「ちょっと助けてください (>_<) 変なところに背景画像が・・・」
隣のプロ 「あ、これはねぇ・・・(カチャカチャカチャ)・・・・ハイっ」
素人の僕  「あ、直った・・・(ポカーーーーン)・・・・」

ってな具合に・・・さすがはプロですね・・・。

今日の備忘録です。

IE6のCSSバグで、行き詰まったら・・・

html *
{
  _zoom: 1;
}

を追加。この一行を追加すると、ほとんどのバグはなんとかなっちゃうそうです(笑)
あまりにも無知すぎるぞ、俺。っていう自己嫌悪はさておき、一気に解決。

いやぁ~、知らなかったなぁ・・・。

複数背景とグラデーション

週末にFireFox3.6がリリースされたので、早速バージョンアップ。
この際なので、ついでにThunderBirdも3.0にバージョンアップです。
ThunderBirdはタブインターフェイスになってますね。

で、FireFox 3.6です。外観的に特に変わった点はなく、外観を再起動なしに変更できるペルソナってのが積まれたぐらいでしょうか。。。

バージョン3.5のときは、HTML5対応やJavascriptの実行速度が向上したぐらいだったんですが・・・、今回の3.6は、リリースノートを見ると、CSSにいろいろ機能追加されているみたいです。

目立ったものは、2点。グラデーション背景と複数背景のサポートでしょうか。
より詳しくは・・・Firefox 3.6 for developers に詳しく載ってます。

グラデーションは、background と background-imageのプロパティとして使えるようです。
線形のときは-moz-linear-gradient 、 円形では、-moz-radial-gradient でサポートされています。

/*簡単な一例*/
div.box
{
  background : -moz-linear-gradient(black,red,white);
}

のようにすると、黒・赤・白のグラデーションが描画されます。
角度や色の割合をいろいろ指定できるみたいです。

二つめの複数背景サポートは、背景画像や背景色などを、レイヤーのように重ねるようなイメージで一つのbackground属性に複数の背景プロパティを指定することができます。

たとえば、従来なら、

<style type="text/css">
div.outer
{
 padding: 5px;
 color: white;
 background: -moz-linear-gradient(-30deg,black,red,white);
}
div.inner_outer
{
 background: url(a.png) no-repeat bottom right;
}
div.inner
{
 height: 120px;
 background: url(b.png) no-repeat bottom left;
}
</style>

<div class="outer">
 <div class="inner_outer">
  <div class="inner">
   &nbsp;
  </div>
 </div>
</div>

のようにタグを入れ子にして背景を重ねていたものが、

<style type="text/css">
div.box
{
 padding: 5px;
 color: white;
 height: 120px;
 background: url(a.png) no-repeat bottom right,
             url(b.png) no-repeat bottom left,
             -moz-linear-gradient(-30deg,black,red,white);
}
</style>

<div class="box">
 これはテストボックスです。
</div>

描画例が・・・

のようになります。

グラデーションの描画は、Internet Explorerでは、filter属性でかなり前からサポートされてますし、Safariも-webkit-プレフィックス付きですがサポートされているようです。

いちいちグラデーション画像を用意しなくて済むとか、スクリプトで背景を動的に変えて表示したりするようなケースで重宝されそうです。

標準仕様案がどんどん追加されている現状では、一つの記述の仕方で、どのブラウザでも同じ表示をさせるようになるまでには、まだまだ時間がかかるようです。。。

WordPress with Stats

iPod Touch を車の中でも使おうと思ってFMへ飛ばすトランスミッターを買おうと思っていろいろ調べてます。バッファローのやつが安くて良さそうなんですが・・・レビューでは評価が分かれてますね・・・う~ん・・・週末までにはゲットしたい。

で、そんなことはともかく・・・。

仕事で管理中のWordpressで運用しているサイトがあるんですが、アクセス状況が知りたい、ということで、まぁ、定番の プラグイン、Stats を導入したんですが、設定・・・というか、Wordpressの仕様?でハマってしまいました。

Statsのインストール・設定は、すんなりいってダッシュボードに統計情報が表示されるようにはなったんですが・・・、問題点が一つ。

そのサイトは、一般には公開してなくて、閲覧するにはユーザー登録して常にログインをしないと見れないのですが、問題は、Statsは、「ログインしたユーザーはカウントしない」、という点。閲覧する人は常にログインするので何時まで経ってもアクセス状況がゼロです・・・それは非常困る(笑)

ログインしたユーザーをはじくのは、Statsの仕様みたいなので・・・諦めて他のプラグインを・・・と思ったんですが・・・StatsのカッコイイUIは捨てがたい(^^;;;

ということで、Statsの本体、Stats.php を改造することにしました。

で、改造自体は簡単です。ログインしたユーザーをはじいている部分は、function stats_footer(){} で、要するに、ログインしているユーザーは、アクセス解析タグを出力しない設定になっているようですね・・・。

変更部分は、stats_footer関数の次の部分。

if ( !empty($current_user->ID) || empty($options["blog_id"]) )
 return;

これだと、ログインしたユーザー全てをはじいてしまうので・・・結果的に

  if(!empty($current_user->ID))
    {
      if($current_user->ID == 1 || $current_user->user_level == 10)
        return;
    }

  if(empty($options['blog_id']))
    return;

としました。

はじめ、管理者権限があるユーザーをはじくように、はじく条件を$current_user->user_level == 10 とだけしていたんですが・・・ID が 1の要するにブログを作ったときに初期状態で設定されるadminユーザーは user_level は空なんですね・・・これは分からなかったです。adminユーザーで検証していたので しばらく????でした(^^; でも、ドキュメントでは、DBの項目に user_levelが載っているのですが、実際にphpmyadminで直接インストールしたwordpressのDBを覗いてみてもuser_levelというカラムがないんですよね・・・??? よく分からない・・・が、まぁ解決したので良しとしよう(^^;;;

で、結果的に ユーザーIDが1(つまりadminユーザー)とuser_levelが10のユーザーをはじくようにすると、上手いこといきました。午後の三時間ほど無駄にしたな・・・。

ふう。

HTMLソース・サーフィン

FireFox3.5になってからだと思うんですけど・・・ページ・ソースを表示すると、<a>タグや<link>タグのhref属性、<img>や<script>タグのsrc属性にリンクが張られるようになってます。そのリンクをクリックすると、リンク先の、これまたソース表示してくれる。これは便利だ。

FireFox3.5 ソース表示

FireFox3.5 ソース表示

わざわざページ上で、右クリック >> ページのソースを表示 を選択しなくても、ロケーションバーに、

view-source: http://xxxx.xx.xx/

などと入力すれば、タブ内でソース表示してくれる。ウェブアプリケーションをテキストエディタで作ってるときなど、クライアントの挙動確認にはHTMLソースを見ながら、という時、かなり快適になった。

ここまでしてくれるんなら、「HTMLソース・モード」みたいな表示モードを追加してくれないかな(^^;;; 拡張アドオンでそういうのあるのかな? また暇なときに探してみよう。

危なそうなページを見るときは・・・頭にview-source: をつけてやると安心です(笑)

Webブラウザの本命

マイクロソフトが対FireFox,chrome,Safari用にリリースした、といっても過言ではないでしょう、Internet Explorer 8が正式リリースとなったので、まずは Virtual PC上のXPに入れてみた。特に問題はなく、Web開発者用のツールが標準でつくようになり、IE8,IE7,互換モードとその表示を簡単に切り替えられるのは非常に嬉しい機能。

一通り試してみて、問題らしい問題もなく、メインのPCにもインストールしました。

ただ、気づいたのですが、インストール後、一部のアドオンが無効になってしまいました。現在、エクスプローラ(IEじゃないよ)のアドレスバーの代わりに QT Address Bar というVista風のアドレスバーをインストールしているんですが、これがIE8のインストール後、無効になってました。おそらくデジタル署名かなんかの関係でしょうか?とりあえず、インターネットオプション画面の「アドオンの管理」で有効にすることで解決。

なかなかIE6と違ってかなり速くなっている感じがします。デフォルトブラウザをIE8に戻そうかな・・・。

Internet Explorer 8

Internet Explorer 8

で、VAIO君にインストールしているWindows7βにもインストールしてあげよう・・・と思ってVista用のIE8をダウンロードしたんですが・・・見事にインストーラに蹴られました。OSが違うってさ。

Windows7βにはもともと IE8のβ2が入っているんですが・・・これのアップデートは・・・なさそうな感じ。まぁもともとWindows7のβ版であって7β用のIE8 なんてわざわざリリースする意味がないのは分かってますが(^^;;;

まぁ・・・IEは使ってないし。いいや。

Windows7からIE8はオプション扱いになるそうで・・・おそらく独禁法の裁判がらみだとは思いますが・・・PCメーカーがIEを抜いて他のブラウザを入れた状態でPCを出荷しだしたら、IEのシェアも急落しそうですねぇ・・・。一般のエンドユーザーに限っていえば、「ブラウザなんてどこでもいいよ」っていうのが現状ですから。。。