こんにちは、Windows 7 RC

2月末から使っていたWindows 7 Betaですが、このほどRC版(リリース候補版)が出たそうなので、さっそくインストールしてみました。

ダウンロードは Windows 7 Release Candidate: Download instructions から

例によってダウンロードできるのはDVDのISOファイルなわけですが、焼かずに仮想ドライブにマウントしてGO!です。

インストール画面

続きを読む

さようなら Vista、こんにちは Windows 7

Windows 7のインストール

今年のはじめにDell Studio 17を買いました。プリインストールのWindows Vistaでしばらく使っていて、さすがにシステムスコアが5.9がつく位のマシン、普段使いではまったく問題ないのですが、うわさ通りゲーム系のパフォーマンスが悪く、FFXIなんぞは一定時間ごとにカクカクするようなひどい有様でした。

一方でWindows 7の評判がとてもよいようなので、これはもう乗り換えるしかない!思った時がやり時だ!っと勢いでbetaに飛びつきました。

続きを読む

おで流WordPressテーマの作り方(4)

脱線続きでしたが、いよいよCSSを書いてデザインしていきます。

7. CSSをリセットする

ブラウザはHTML/XHTMLを描画する際にデフォルトの見栄えを持っていますが、その見栄えはブラウザごとに微妙に異なります(入力フォームを見ると分かりますよね。Internet ExplorerとSafariのフォームは全然違います)。

このデフォルトスタイルをリセットして、ブラウザごとの設定を統一するのがこの項目の目的です。

以前は下記のようにユニバーサルセレクタ(*)を使ってリセットする方法が用いられていましたが、

* {
  margin: 0;
  padding: 0;
  line-height: 1;
  border: 0;
  text-decoration: none;
  font-size: 100%;
}

 

最近では必要な要素だけをリセットするのが望ましいとされています。

このあたりを参考にして、以下のようにリセットしてみました。

reset.css

CSSをリセット

最近は、ブラウザが持っているデザインを活かすべきだということで、CSSをリセットしない作り方をするサイトも増えてきているようです。ということは、サイト訪問者のブラウザによって見栄えが微妙に違ってくることになります。

サイト製作側のポリシーなんてサイト訪問者に押し付けてはいけないし、訪問者にはブラウザによらず同じ見栄えで見てほしいと思います。また、ブラウザごとの見栄えの差異に頭を悩ませるのは嫌だったので、今回はリセットを選択しています。

8. XHTMLの構造を見極める

CSSでデザインしていくにあたって、XHTML構造を把握しておくことが大事です。どのタグ、id、classにスタイルを加えればよいのか、というあたりをつけられるからです。

SandboxテーマのXHTML構造は大雑把に表現すると、以下のようになっています。

SandboxのXHTML構造

※#top-imageのdivはぼくが追加したもので、オリジナルのSandboxにはありません。

この構造をデザインモックに近づけるため、以下のようにもっていきます。

20080515b

この図から、div#containerを左に、div.sidebarを右にフロートし、footerの手前でフロートを解除してやればよさそうです。また、これだけだとdiv#containerの包含要素(主にブログの本文)が少ない(短い)場合に2つに別れているサイドバーが横に二段並んでしまうので、div#primary、#secondaryそれぞれでフロートをクリアして、再度右にフロートしています。

(注:フロート、フロートと書いているのはfloatは必ずしも回り込みをするものではないからです。通常の流れから取り除いて、左または右に寄せるものと考えると誤解がないと思います。参考:てんぽ : floatは「回り込み」ではない

このようにfloatで段組してまとめたのが以下のファイル。大枠のレイアウトはすべてこのファイルにまとめています。

layout-2column-right-sidebar.css

フロートの解除については、いわゆるclearfixの手法を使っています。

これはページ内でフロートを繰り返すことで発生するレイアウト崩れを防ぐ手法で、従来<div style="clear: both;"></div>という空ボックスをXHTML内に書いてフロートを解除する方法がよく取られていましたが、見た目の制御のために情報構造上まったく意味のないコードを書くことを嫌う流れから、CSSのみでフロートを解除できるよう開発されたものです。

様々な方法が開発されていますが、今回はモダンブラウザを対象にしているということで、

div#フロートしたボックスの親要素 {
  zoom: 100%;
}
 
div#フロートしたボックスの親要素:after {
  content: ""; 
  clear: both;
  display: block;
}

 

こんな感じにしてみました。これをフロートしているボックスの親にあたるボックスに指定してやればOKです(参考:スタイルシートをめぐる冒険: clearfixの決定版を作る -モダンブラウザ編-。上記方法だとNetscapeで不具合があるようですが、すでに開発終了しており、Firefoxへの誘導がされていること、アクセスログを見てもほとんどこのブラウザからのアクセスがないことから、問題視はしていません。)

9.ロゴを画像置換する

情報と見た目の分離を(過度に?)徹底するための方法として、ロゴ等をXHTMLではテキストで記載し、CSSで画像を定義して置き換える画像置換というテクニックがあります。

方法論やSEOの観点などから様々議論されていますが、以下のようなメリットとデメリットがあります。

メリット

  • XHTMLに依らず、画像を使った多彩なデザインが実現できる
  • (ロゴなど)プリインストールフォントが貧弱な日本語環境でフォントを擬似的に実現できる
  • CSSを切り替えることで、XHTMLを変更せずに画像を変更できる

デメリット

  • (方法によっては)CSS有効でJavaScript無効の環境で何も表示されなくなる=アクセシビリティ上問題が出てしまう
  • (やろうと思えば)テキストの情報とはまったく無関係の画像を表示できるため、SEOスパムと判定される恐れがある

ということが言われています。画像置換を行ったからといって、ただちに検索エンジンからスパム扱いされるわけではない一方で、alt属性をきちんと付与したimgタグを書いたとしてもSEO的に不利になることはないという考え方から、画像置換を使わないアプローチをするサイトも増えてきているようです。

今回はSandboxのテーマは後から変更することのないように、またデザインをCSSで差し替えられるように、最低限に止めつつ画像置換を使っています。

画像置換の手法は日々改良が加えられており、今回採用したのはGilder/Levin Methodの改良版です。

<h1 id="blog-title"><a href="<?php echo get_option('home') ?>/" title="<?php bloginfo('name') ?>" rel="home"><?php bloginfo('name') ?><span></span></a></h1>

 

h1#blog-title {
  position: relative;
  float: left;
  width: 230px;
  height: 62px;
}
 
h1#blog-title span {
  cursor: hand;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 230px;
  height: 62px;
  background: url(images/title.gif) no-repeat;
}

 

空のspanタグを追加する必要があるのが若干気持ち悪いですが、画像無効・CSS有効の際にはaタグの中の文字が表示されるため、弱点を克服したものになっています。

ただし、spanタグを拡大して文字を塗りつぶしているような手法になるので、spanタグの背景に指定する画像が透過していると下にある文字が透けて見えてしまうのでご注意を。

その他の画像置換はmezzoblue § Testing Grounds: Revised Image Replacementから。画像置換は英語でImage Replacementといいます。このワードで検索しても様々な情報が得られるでしょう。

次回はいよいよ最終回。Sandboxに緻密に組み込まれた仕掛けを利用したテクニックをいくつかご紹介します。

Outlook Express 6で消えたメールを取り戻す

うちの会社はいまだに標準のメールソフトにOutlook Express(バージョンは6 sp1)を採用しているので、たびたび大量のメールが消えた!助けて!!というトラブルが発生します。

今日も上司の8月~12月までの4ヶ月分のメールが天に召されたため、泣きつかれました。

こういうことがあるたびに、「YOU、さっさとThunderbirdにしちゃいなよ!」と耳打ちするのですが、システム部門からサポートされなくなるのが怖いのか一向に聞き入れません。OEを使っていたからといってシステム部門がメールを元に戻してくれたことなんてただの一度もないわけで、僕みたいなブラックジャックが呼ばれるわけですが。

原因

Outlook ExpressはMicsosoftの悪しき仕様によって起動100回毎にメールフォルダを最適化する作業を行うようになっています。しかし…

  • 大量のメールを扱っている人もいない人も同様に最適化を要求してきます。
  • 標準状態ではどうやっても最適化を要求してきます。止められません。
  • 最適化しても効果は体感できません(当社比)。

…とまぁこの最適化、時間がかかるうえ猛烈に重くなるためキャンセルしたくなりますが、キャンセルで止めるのにも時間がかかりOEを強制終了してしまったらアウト!最適化をしていたフォルダにあたるdbxファイルが破損し、Outlook Expressを開いたときにそのフォルダおよびそのフォルダに入っていたメールが認識できなくなってしまいます。

対処方法

世の中には破損したdbxファイルを復旧するソフトウェアを公開してくださっている方がいるので、これを利用しましょう。今回使ったのはDbxRescue。破損したdbxファイルからeml形式で(できる限り)メールを取り出すソフトウェアです。

Outlook Expressのツール>オプション>メンテナンスタブ>保存フォルダでdbxファイルの保存場所が確認できます。これを参考に、DbxRescueで復旧したいdbxファイルを指定するとメールが取り出せる(かも)。取り出したメールはOutlook Expressにドラッグ&ドロップすれば元通りです。

再演防止策

1.Outlook Expressをやめる…というわけにもいかないでしょうから、2.Outlook Expressに勝手に最適化させないToolを使うことをオススメします(ダウンロードは、左フレームのオンラインソフトコーナー>Outlook Expressに勝手に最適化させないToolから)。これにより、100回起動毎の最適化を止める事ができます。

VISTA Troublesome: ユーザーアカウントコントロールを無効化する

ここまでのあらすじ:HDDの転送モードの認識不具合を乗り越えて、Windows VISTAをインストールしたおで。意外とVISTAいけてるんちゃう?と思った矢先、思わぬ罠がおでを待っていた……。

IMEに登録した単語を変換できないんですけど……

変換しにくい名前とか、自分の住所とかIMEに登録すると文字入力楽になるじゃないですか。わたしの場合、HTMLタグやらなにやらまで登録していたりします。ブログ書くときも「ぱら」→「<p></p>」なんて変換してるんですね。TinyMCEのボタン押すのとか面倒だし。

ところがいくらIMEに単語を登録しても変換できないのです。これじゃあブログが書けない!さぼっちゃえ!(まて。

これがIE7上なら分からなくもないのです。VISTAのIE7には保護モードというのがあって、IME辞書も通常モードと保護モードと二つ持っています。通常モード辞書に登録した単語は、保護モードのIE7上では変換できないのです。でも、わたしの場合はFirefoxなのです。

きちんと単語が登録されていなかったのかな?と思って、Firefoxにフォーカスしたまま辞書ツールを開いてみたら、この表示。

スタンダード機能ないってばよ

頼むからPCに詳しい人が使いづらくするのやめてよね……

これを見てはたと気づいたのがWindows VISTAから導入されたユーザーアカウントコントロール機能。

要約すると、XPまではアプリやドライバのインストールなど管理者権限レベルにしか認められていない行為をするためには、一度ログアウトして権限を上げた上で実行しなければいけなかったものを、ログアウトせずとも一時的に権限を管理者レベルまで昇格させることができる機能です。権限レベルをいろいろ見てるんですね。こいつがどっかで悪さしてるんじゃないかと。ということでこれを切ってしまいます。

毎度おなじみコントロールパネルから、「ユーザーアカウント」を選んで、その中の「ユーザーアカウント制御の有効化または無効化」を選びます。

ユーザーアカウント

ユーザーアカウント制御(UAC)を使ってコンピュータの保護に役立たせる」のチェックを外して再起動して完了!

ユーザーアカウント制御の有効化または無効化

こうすることで無事Firefoxで登録した単語を変換できるようになりました。また画面を暗くして本当に実行するか聞いてくることも無くなります。PCに詳しくない人に配慮したつもりなのかもしれないけど、詳しくない人は結局うちらに聞いてくる→うちらは扱いづらくなってる→マズー(‘д’)ーなのですよねぇ。こまったもんだ(´・ω・`)