- date
- 050624
IEでポラ風が上手くいかない理由
DEARDAYS別冊さんで紹介されている、写真をポラ風にするカスタマイズ。あちこちで見かける人気カスタマイズの1つですね。
ところがこのポラ風、winIEだと「ただの枠になってしまう」ということも。テンプレートによって上手くいく場合と枠線のみになってしまう場合がある様子。
この問題についてプチバレブログさんでは画像を個別にdivでくくる方法で解決策を紹介されていますが、何故かうちにも「ポラ風にならなくて…」という質問が以前から何度もきていまして…(苦笑)お返事がてら、そもそも何故winIEじゃダメなのかと、3秒でIEに適用させる方法を紹介しておきます。
▼何故IEでは上手くいかないのかまず、ポラ風のカスタマイズのCSSを見てみましょう。
.pict {
background-color: #f6f6f6; ←ポラ背景色
border-width: 2px; ←ポラの外枠の線の幅
margin: 5px 10px 5px 5px; ←ポラから記事までの距離
padding: 10px 10px 50px 10px; ←ポラ外枠から写真までの距離
border-style: solid; ←線の種類(これは実線タイプ)
border-color: #DCE3E3 #C1C1C1 #C1C1C1 #DCE3E3; ←ポラ外枠の色
}
ブログカスタマイズメモ DEAR DAYS別冊 | 写真をポラロイド風にする
ここで注目するのはポラ外枠から写真までの距離です。
そのpaddingの値がポラの白い台紙の部分です。このpaddingが有効にならないから枠線だけが残ってポラ風にならないということです。
▼じゃあなんでpaddingが効かないの?
winIEにはこの2つのバグがあります。
・XML宣言のあるXHTML文書に互換モードを適用させてしまう
・WinIE6.0互換モード及び5.5以前ではimg要素にpaddingが効かない
さらに付け加えるならば
・sbに限らず多くのブログで生成されるのはxhtml文書
・xhtml文書にはXML宣言が強く推奨される為、XML宣言有りの場合が多い
▼つまり、こういうことが起こっています。
1.記事を書くとxhtml文書で生成される
2.xhtml文書にはXML宣言が入っている
3.winIEが互換モードと思い込む
4.互換モードではimgのpaddingが無効
5.枠線だけになる
▼テンプレによって異なるのは?
テンプレによってXML宣言が入っているものといないものがあるからです。
うちの配布しているテンプレでもそうですが、基本的にはXML宣言は入れることを推奨されているものなので、デザイン的に問題がなければ入れてあります。
しかしwinIEの互換モードではCSS1/CSS2ではボックスの幅を算出するときにpaddingやborderのサイズは除外されるが、WinIEではこれらを含めて幅や高さを算出するというすごく嫌なバグがあります。
このバグが影響するようなデザインの時はXML宣言を予め入れていません。
▼じゃあどうしよう?
「WinIE6.0互換モード及び5.5以前ではimg要素にpaddingが効かない」のであれば、WinIE6.0の標準モードで表示させればpaddingは有効になるということ。
「XML宣言のあるXHTML文書に互換モードを適用させてしまう」のですからXML宣言がなければXHTML文書に互換モードを適用させないということになります。
つまり、XML宣言を抜けばオッケー。windowsでIE5.5以前をお使いの場合はセキュリティのためにもアップデートを推奨かな(笑)
▼とっとと3秒でできる解決方法を教えろ!
sbの場合はテンプレートのHTMLから最初のこの1行を削除します。
<?xml version="1.0" encoding="{site_encoding}"?>
以 上 !
ちなみに、その他のブログの場合は{site_encoding}が違う値になっていると思いますが、消すのは同じくこの1行です。
▼XML宣言を削除するデメリット
- HTML-Lintでちょっぴり点を引かれる。
(でもW3Cでは問題なくValidもらえるからいいかとw) - XML宣言を含むことを前提に作られたテンプレートでは、paddingやborderを含む要素において若干サイズが違いが発生する場合があります。
ただ、これはwinIE6だけでの話です。
winIE6以外では元々XML宣言のない標準モードで見えていますので、winIE以外(FirefoxやOpera等)でも動作確認されているテンプレートであれば大丈夫と思っていいでしょう。
blog*citronのは削除しても崩れないはずです(笑)
IEのCSS実装状況は余り良いとは言えないようなので、IE7では余計な新機能とかなくていいから、きっちり実装してくれないかなぁと思っています。
僕もうIE対策するの疲れたよパトラッシュ。
Comments
コメントエリアをスクロールする / スクロールを解除する
…ははぁ。IEって(^^;)
詳しい説明、お疲れ様でした。よおく理解できました、と思います(笑)
しかし、Firefoxにもブラウジングに問題点無しとは言えませんけれど、ここまでややこしくはないですよ、ね。
ご無沙汰しております。
DEARDAYS別冊のSuuです。
トラックバックありがとうございました。TB元クリックしたらユヅさんとこに飛んだんでチビリ(ビビリ)ました。
いやぁ、詳しい説明ありがとうございます。とても勉強になりました。私の稚拙な記事のお陰でご迷惑をお掛けしました(汗;)折を見て該当記事からコチラへリンク張らせて頂きます。
このテンプレステキですよねー。配布されるのを楽しみにしています♪
解説ご苦労様です。
>僕もうIE対策するの疲れたよパトラッシュ。
いや、ほんとにそう思います。
そして・・・
IE7できっちり実装してくれていても、
IE6がバグ(?)をもった状態で存在する限り
この対応は続けなくてはならないという罠wwww
なるほどー、そういう事なのですね。お勉強になりました。
うっかり<そもそも何故winIEじゃダメなのか>が<そもそも何故winIEを使わないとダメなのか>に見えてしまいました(おい)
わたしがタグを弄るより、カチカチっと狐さんに乗り換えて頂く方が早い・・・(笑)
初めまして。・・・では、ないですが。汗
いつも、読み逃げ&先日はアンケート答え逃げをしていました。(笑)
今回の、ポラ風にならない解説&対処方法。
とっても、勉強になりました!
私も、エントリーで「なぜ、ポラ風にならないのか?」と記した事がありました。
自分なりに、色々とやってみてもまったくダメだったので、プチパレブログさんにお世話になったのです。
でも、IEがこんなにウザいものだったなんて・・。
最近、Firefoxを目にしていましたが、IEより快適だ!と言うもの目にします。
私も、変更しようかな・・とこの記事で決心を固めてしまいました(笑)
今後は、読み逃げじゃなく堂々と?お邪魔させて頂きます!(笑)
ポラ風に見せるcssはずっと前からやってたんですが
IE・Sleipnirだけならないのはなんでだろーと思ってました。
すごく勉強になりまた!
削除してみたらちゃんとうまく表示されるようになりました♪
IE系統のブラウザってタグ間違ってても動いてた事あって、ベンリなブラウザだな~とか思ってたことありましたけど…(笑)。
うちのブログの名前が書いてあってちょっとビビッてしまいました。
なるほど、そういうことだったんですね。<XML宣言
私は試行錯誤して無理やりポラ風にしてしまいましたが、
原因が分かれば簡単にできるんですね。
勉強になりました。ありがとうございます。
私もコチラの記事をリンクさせていただきますね。
ところで、プチパレブログのリンクが引っ越す前のURLになっています。
(divでくくる方は今のURLです)
一応ご報告を・・・。
●小夜さん
FirefoxでもOperaでも何かしらバグはあるんですが、影響の大きさが違うんですよね…。
WEBデザイナーさんのブログを見ると、よく泣かされているのを目にします(笑)
●Suuさん
こんにちは。お久しぶりです。
アワワ、チビらないで下さい(笑)
関連記事を書かせていただいたので、えいやっとトラバさせていただきましたー^^
IEには苦労させられますが、原因と対処をはっきりさせることで、これまでポラ風が上手くいかなかった人の助けになればと思います^^
>このテンプレステキですよねー。配布されるのを楽しみにしています♪
ありがとうございます^^
でもこのテンプレは配布用にしては汎用性が低すぎるので、配布は今のところ未定です(ノ-`)
ちょっとややこしいソースでよければ色違いで出せなくもないんですが…orz
●orzmaruさん
こんにちは!
慣れないこと書くと説明下手がバレバレです…(ノ∀`)
徹底的にIE対策するなら、CSSファイルからわけるべきなのかもしれませんが、面倒臭がりなので無理サポシ(関係ない)
そしてIE7に儚い希望を抱いて逃避していたIE6という現実を思い出しました。
みんなそうそうすぐにはアップデートしませんよねorz
●かなめさん
解説とか下手なのでわかりやすく書けたか自信がありませんが、理解していただけて良かった!
狐さんでも歌劇さんでもゴジラさんでも大丈夫ですよ。
ゲイツじゃなければ(笑)
他ブラウザを試すきっかけになると思えば逆にいいことかも…!(ポジティブシンキン)
●こまちさん
こんにちは^^
読み逃げ書き逃げ歓迎ですよー。メッセージは強制されて書くものではないですからね^^
トラバもどうもです♪
IEはOSに組み込まれているだけあって起動も早いですし、どんな無茶苦茶なページでも表示できる(してしまう…と言うべきか)素敵なブラウザですが、ちょっとバk…ゲフン、実装が色々遅い点が困りますね^^
私はメインブラウザをOpera、サブでFirefox、動作確認でIEという順番です。タブブラウザは慣れると便利ですよー♪
●繭さん
こんにちは~。
ポラ風カスタマイズはsbユーザーさん中心にすごい広まってますよね。見栄えもいいですし^^
SleipnirはIEとエンジンが一緒らしいので、バグも共通なのかなぁと思います;;
拡張子がtxtでも表示しますからね、IE…。緩めるところ間違って無いか?とも思うんですがw
●ミキさん
こんにちは。
名前入りで、どどんといってみました。(Suuさんにもビビられてしまいましたが…)
リンクするとビビられるブログ。
ちょっと切ない...orz
テンプレが大幅に崩れるなどXML宣言を入れておきたい場合は、divやブロック化したインライン要素でくくるのが安全なのでしょうね^^
URLミス修整しておきました。ご指摘有難うございます。
大変失礼しました;;
はじめまして。
画像の枠が出なくて、
divタグで私も囲んでいました。
早速試したところ、バッチリ上手く行きました。
何種類かのブラウザで見てみましたけど、
テンプレ崩れも、なくホッとしています。
●真希さん
こんにちは。
コメント有難うございます。
上手くいって良かったですー^^
通常は小さな値ならそんなに大きな変化はないと思います。
paddingとfloatを余裕なくみっちり計算してあるようなものだと崩れやすいと思いますが(笑)
こちらのテンプレートをお借りしてます。
画像をポラロイドにするのも、こちらを参考にさせていただきました。
とても解りやすく、すんなり設定できました。ありがとうございました。
以前からスクロールバーを好みに変えるソースを入れていたのですが
ポラロイド風にしてからデフォルトに戻ってしまいました。
<?xml version="1.0" encoding="{site_encoding}"?>
を削除したことに関係があるんでしょうか?
ご指導よろしくお願いします。
●sumicoさん
スクロールバーのCSSは、インラインにいれるのではなく、CSSの
*{ }
の項目のところに追加すれば反映されると思います。
ユヅさん、ありがとうございました。
ちゃんと反映されました。
テンプレート大切に使わせて頂きます。
お世話になりました wヒwンwクwヨ(o_ _)o))
針ねずみのテンプレートを使ってブログ作成中です。
写真をポラ風にUPしたいのですが、そうしたくないときにも対応できるというのを見て設定してみたのですが、コレをやると画像の横に文章が入らなくなってしまいます。どうしたら解決できるでしょうか。教えてください。よろしくお願いします。
-----------------------
/* 枠無し画像 */
.img{
border-width: 0px;
margin: 5px 5px 5px 0px;
padding: 0px;
}
これをCSSに設定して
画像を入れるときに画像のさいごに入るclass=pictのpictの部分をimgに変えるそうなのですがそうすると上記のようになってしまいます
--------------------------
●鈴木さん
そもそもimgはタグの名前なので、classの名前にするのは避けた方が。
img.pict2 {
float:left;
margin:5px 5px 5px 0;
}
にして、class="pict"をのpictをpict2にしてはいかがでしょう。
ユヅさん、早速のお返事ありがとうございますm(__)m
上記のCSSをコピペさせていただいたのですが
やぱり画像の下に記事が表示されてしまいます・・・
画像の部分はclassのところを変えるだけですよね・・・
●鈴木さん
URLが書かれていないので、これ以上はわかりませんねー。
タグを間違えてる場合もあれば、全然違うところのCSSを書き間違えてるのが原因だったりもするし、実際に見てみないと原因が絞りきれません。
プラグインとかいれてて、回り込み解除タグを画像の直後に入れてしまっていて、そこで解除されていた・・・なんてこともあります。
記事を参考にさせていただきました。
とってもわかりやすかったです。
ありがとうございました
はじめまして
タグ初心者です。
ポラロイド風にできなくて、悩んでおりました。
検索してて、まさにぴったりのアドバイスがblog*citronさんだったので、引用させていただきました。事後報告で申し訳ないです。
他のページもすごく参考になるので、こちらのブログにblog*citronさんのリンクを張らせていただきたいです。
よろしくお願いします。
こんにちは。どうしても写真をポラロイド風にしたくて、このサイトにたどり着きました。家ではちゃんとポラロイド風になっているのに会社のパソコンで見るとただの枠になってしまっています。。
テンプレートの編集で”<?xml version="1.0" encoding="{site_encoding}"?>”の一行を削除すればいいのかなとおもいい探したのですが、その言葉が見当たりません。<meta http-equiv="Content-Type" content="text/html; charset={site_encoding}" />
という同じようなものはあるのですが。。。こちらを削除でよろしいのでしょうか??ここ1ヶ月ほどずーとパソコンとにらめっこしているのか、どうしても分かりません。PC初心者の為、かなり初歩的な質問かもしれませんが、よろしくお願いします。
sdeeさん>
こんにちは。
metaの方は削除しちゃダメなところです。
そこを削除すると文字化けの原因になりますのでそのままで。
原因は会社のパソコンのブラウザだと思います。
会社のOSやブラウザってちゃんとバージョンアップされていなかったり、古かったりするので、htmlやCSSをちゃんと解釈できないバージョンを使われているのかもしれません。特にIEはバグだらけですから…。
でも今普及しているIEや他のブラウザではちゃんとポラ風になっているので大丈夫ですよ。ご覧になっているお客さんはほぼ皆さんちゃんと見えていると思います。
もう一般的に使われなくなっているようなバージョンにあわせてソースをいじるのは、これから先のことを考えてもおすすめできません。自分では気になってしまうと思いますが、他の人の目にはきちんと映っていますのでそのままが一番いいと思います。
早速のお返事ありがとうございました。きっと会社のパソが古いんですね。。とりあえずほかのPCからでもきちんと見れてるということなので安心しました。
ありがとうございます♪♪♪