Category Archives: XHTML+CSS

SSIでincludeするときにIEで謎のスペースが!

0
Filed under XHTML+CSS

ひょんなことから管理することになった情報サイトの直帰率が異常に高いので、とりあえず新規のページだけフッターに関連記事や新着記事等のリンクをincludeさせる事にした。

phpでやろうかと思ったのですが(includeくらいしか使えないレベルですが)、それもいろいろ設定するのが面倒なので、とりあえずしばらくはテストと割り切ってssiで実験してみた。

一通り作り終わった後に気づいたのですが<ul>とひとつめの<li>との間に謎の20px程のスペースが入るのです。

最初は「あーまた変なところにマージン付けちゃったかな」と思ったのだが、何度CSSを見直してもそれらしきモノが見当たらない。困った困ったという事でGoogle先生にご相談。

それで出てきた答えがこちら
Webアクセシビリティについての覚書
何も悪いことをしていないのに、SSI(インクルード)を使ったらIEで謎の半角スペースが入ってしまう問題

なんとか問題は解決。UTF-8の場合BOMをつけてるとIEで半角スペースが入るようです。それプラス読み込む方読み込まれる方のダブルパンチが原因で変な20px程の謎マージン?が入ってしまったのですね!><;

覚えておこう。

mediaboxとzoomifyで簡単に楽して画像をリッチに見せる

0
Filed under javascript, wordpress, XHTML+CSS

mediaboxとzoomifyのサンプル

「手軽にネット上でチラシを配信したいんだけど…できればFlashを使った今風な感じで・・・」という相談を持ちかけられたのでお手軽な方法を考えてみた。忘れないうちにメモを。

今回はまずサンプルページをご覧ください。
mediabox&zoomifyサンプルページ

では下準備として今回Zoomifyで表示させたい画像を用意してください。今回は利用者にFlashでズームしながら画像を見てもらうわけなので、準備する画像もそこそこの解像度のものを選びましょう。ちなみにサンプルページの画像は2400x1800pxです。

用意をするのが面倒な方はサンプルで使用した変な画像をお使いください
sample.jpg – 2.08MB
つかえるもんならフリー素材として使っていただいて結構です。

Read More »

リキッドレイアウトの最大横幅を固定する-minmax.js

0
Filed under javascript, Web Design, XHTML+CSS

まずリキッドレイアウトの説明からですが、横幅100%で2カラムのリキッドレイアウトを作ります。3カラムはその応用になるので割愛。また現実問題としてサイドバーは固定の方が使いやすいので200pxで固定します。今回の肝はリキッドさせながらサイドバーを固定させる所でしょうか。投稿記事の表示される部分はwidth:100%;を指定してサイドバーは200pxを指定します。

全然目新しいことでもなんでもないのですが、とりあえず忘れないようにメモっときます。

CSS

#container {
float: left;
width: 100%;
margin-right: -200px;
}

#content { margin-right: 200px;}

.post {
width: 90%;
margin: 0 auto;
}

#sidebar {
float: right;
width: 200px;
}

XHTML

<div id="container">
<div id="content">
<div class="post">テスト</div>
</div>
</div>
<div id="sidebar">サイドです</div>

これに背景色等を加えるとこうなります
サンプル1

これはこれで良いのですが、最近は解像度が高いディスプレイも増えてきているので、100%だと間延びしてしまいかねません。

ですのでリキッドを生かしながら、サイトの横幅の最小値を従来どおりの760px、最大値を最近増えてきている960pxで固定させてみます。つまりサイトの横幅がユーザーのディスプレイにあわせて、760px~960pxの間で可変するようなります。

今回は簡単に#liquid-fixを作り、上で使ったXHTMLの全体をそれで包み込みます。その為には#liquid-fixに最大幅と最小幅を指定します。
指定にはmax-width / max-height / min-width / min-heightを使います。

対応ブラウザについてはHTMLクイックリファレンス – max-width をどうぞ。それに加えIE7でも正式対応しております。

ではmin&max-widthを利用して#liquid-fixに横幅を指定します。

CSS

#liquid-fix {
min-width: 760px;
max-width: 960px;
}

これを上のCSSに書き足して、あとはHTMLで全体を包むとこうなります。
サンプル2

しかしこのままでは先ほど説明したとおり、IE6ではmin-width等をサポートしていないためサンプル1と変化がありません。ここでdoxdesk.comminmax.js を使います。

利用は簡単で、minmax.jsをサーバーにアップロードしてhead内に
<script type=”text/javascript” src=”○○/minmax.js”></script>
と書くだけです。

するとIE6でもmin-width等を利用することができるようになります。
サンプル3

DreamweaverでCSSを開くと文字化け

コメントは受け付けていません。
Filed under XHTML+CSS

僭越ながら他所の方が作られたhtmlをチェックして欲しいと言われて、「じゃやりましょうか」ということで何の気なしにFirefoxを立ち上げたが文字が何か変。

なんてことはないCSSでの文字指定がちゃんとされてないんじゃないかなと。

なのでDreamweaver(以下DW)にCSSを投げ込んで見たところ…
css-bake.png
あぁ化けてる…てかcharsetすら無い
とりあえずhtmlを見てみると
html-moji.png
ふむShift_JISね

お次はCSSの確認、DWだと文字化けしてしまうので秀丸で開いてみる。
hide-css.png
あぁFont-familyがDWの初期設定のままなのか。
それで肝心のCSSでのエンコードはどうなってるんでしょうか…
hide-enko.png
あぁやっぱり。

結局htmlとCSSとのエンコードが違うのが原因かなということで、
shift_JISで再保存。

するとFirefoxでもソース通りに表示されました。

うんで何が言いたいかというと、別に「charsetくらい書きましょう」とか「文字エンコードは確認しましょう」とか参考書みたいな事がが言いたいのではなく(そりゃちゃんとしてくれる事にこしたことはないけど)納品されたデータをサーバーに上げる直前になって初めてソースをチェックするっていうのは勘弁してください(><;

次はもっと大きな問題が発覚するかもしれないので…というお話。

なのでCSSファイルが文字化けしちゃった方はエンコードを確認してみてください。

<!--早く自分のブログのテーマ作らないと一々Style指定するのが面倒だorz-->

[追記]CSSでロールオーバーをするときは

コメントは受け付けていません。
Filed under XHTML+CSS

久しぶりにCSSでナビゲーションメニューをロールオーバーさせようと思ったものの、2時間程IE6の擬似クラスhoverで詰んでました。

IE6だとulにカーソルを合わせるとhoverの呪いで高さが変わっちゃうあるアレです。

絶対また忘れて試行錯誤しそうなのでメモを
ブロック要素の内から3番目がどうとか、2番目の幅が・・・マージンが・・・(確実に不確か)ってうろ覚えの知識で色々試したものの解決せず。

結局原因はたぶん

CSS

ul#nav {
width: 596px;
padding-top: 12px;  /* ←こいつ */
}

とりあえず意図したように動いたんでよかったのですが、
忙しいのに貴重な2時間が・・・

1×138 pxの画像をリピートさせて
ロールオーバー+現在開いているページのボタンの色を変えるCSS

CSS

ul#nav {
margin: 0;
padding: 0;
width: 720px;
}

ul#nav li {
float:left;
width: 100px;
font-size: 77%;
text-align:center;
line-height: 3.7;
border-left: 1px dashed #ccc;
list-style-type: none;
background-color: #E0E0E0;
}

ul#nav li a {
position: relative;
display: block;
height: 3.7em;
background-image: url(n-bg.gif) repeat-x;
color: #3e3e3e;
text-decoration: none;
}
ul#nav  li  a.here { background-position: 0px -92px;}
ul#nav li a:hover,ul#nav li a active { background-position: 0px -46px; }
ul#nav li.top { border-left: none;}

XHTML

<ul>
<li><a href="#" id="here" name="here">test1<a></li>
<li><a href="#">test2<a></li>
<li><a href="#">test3<a></li>
</ul>

みたいな感じです
間違いがあったら教えてください><

[追記]
手直ししたものを用意しました
こういう感じになります

サンプル
これに使ってる部品は
n-bg.gif
これ一つです

表現したいものによっては他の手法を使わなければならない場合もあるのですが、CSSでロールオーバーをする場合は、text-indent: -9999px;よりかはこちらの方が好きです。
テキストも残りますしね

まぁそこは柔軟に対応しますが