定義済みリスト

2008/1/22 火曜日

カテゴリー: (X)HTML — ぴ @ 10:32:00

さて問題です。
定義済みリスト(<dl> <dt> <dd>)は、ブロック要素でしょうか、それともインライン要素でしょうか。

答えは両方です。
たいていはブロック要素という答えが返ってきますw

どういうことかというと、 <dt>部分がインライン要素で、 <dd>部分がブロック要素になのです。昔のテーブルレイアウトと違って、定義済みリストを使ってフォームレイアウトを組むのが主流になってきた近頃のweb標準では、慣れない人なんかだと、<dt>内で、マークアップが間違ってることが多々見受けられます。<dd>部では<p>要素はOKですが、<dt>部ではインライン要素の中にブロック要素が入るのはNGです。

<p>要素ではなく<span>要素を使うのが正解になります。

テーブルレイアウトからweb標準が段々とスタンダードになりつつある現在ですが、ブロック要素とインライン要素の違いについてきちんと理解できている人はまだな感じが。(そんな僕もまだな感じで…。)

mixi wordpress テーマ ver.0.0.4(バグ取り完了っぽい)

2007/12/22 土曜日

カテゴリー: (X)HTML, CSS, wordpress, ヲチらせ — ぴ @ 2:45:49

僕が作ってるwordpress用のmixiっぽいテンプレートですが、最後のバグ取り(Safariでカレンダーのボーダーが正しく表示されない)が完了しました。

safariって、Web標準に一番近い挙動で動くブラウザですが、これが結構対応がわかんなかった。

厳格なのか何なのかわかんないんですが、tableのwidthが178pxなのに、captionのwidthが180pxになっていたので、caption分がtableの枠からはみ出して、 右ボーダーを正しく表示できてなかったようです。サイズ揃えたら、いとも簡単に表示されたお(´ω`)

そんな、最新版のmixi風wordpressテンプレートのダウンロードはこちら

デザインちょっちリニューアル

2007/12/20 木曜日

カテゴリー: (X)HTML, CSS, ヲチらせ — ぴ @ 17:38:17

ひろぽっぽれすのデザインをちょっちいじりました。ヘッダー部分をもちっといじっていこうと思います。

CSS画像置換について

カテゴリー: (X)HTML, CSS — ぴ @ 15:58:36

こんちゃす。海外のCSSデザインを見ていたら、text-indent: -9999px; とは違う画像置換方法を見つけました。(既出かも)

旧式では、CSS側で、text-indent: -9999px; などと指定して、テキストを飛ばして、バックグラウンドに画像を指定する下記のようなテクニックを使います。

text-indent: -9999px を使ったテクニック

(X)HTML側

<div><a href="#"><span>テキスト</span></a></div>

CSS側

div a {
	display: block;
	width: 45px;
	height: 45px;
	background: url(images/bg_off.gif) no-repeat 0 0;
	text-indent: -9999px; /*ここでテキストを飛ばす*/
}
div a:hover {
	background: url(images/bg_on.gif) no-repeat 0 0;
}

しかし、これでは、キーボードでのタブ移動の際に選択がわかりにくくなって、アクセシビリティ的によくないとのことから、display: none; を使った画像置換テクニックもあります。

display: none; を使った画像置換テクニック

(X)HTML側

<div><a href="#"><span>テキスト</span></a></div>

CSS側

div a {
	display: block;
	width: 45px;
	height: 45px;
	background: url(images/bg_off.gif) no-repeat 0 0;
}
div a:hover {
	background: url(images/bg_on.gif) no-repeat 0 0;
}
div span {
	display: none; /*テキストを表示させない。*/
}

自動改行されない

2007/12/18 火曜日

カテゴリー: (X)HTML, CSS, バグ — ぴ @ 18:06:05

FirefoxやNetscape 等、Geckoエンジンを用いたブラウザでは、連続した半角文字(長いURLや半角空白のないスクリプト等)を途中で折り返せない
という既知のバグがあります。

【前提:連続する半角英数字が改行されない】
通常、テキストは右端で折り返しされるはずですが、URL (URI) 等の連続する半角文字は一つの単語と扱われ、折り返さない場合が多いです。

つまり、

>”aaaaaaaaaaaaaaaaaaaaaaaaa”はコンピュータからみれば一つの単語で、途中に改行が入ることが許されません。

ということです。

参考資料:
・半角文字列の折り返し(ブラウザ毎の比較があります)
http://pinotan.blog15.fc2.com/file/word-break.html

【通常の対処方法】

  1. htmlタグbrで強制改行。
  2. はみ出し部分をCSS(overflow:hidden)で切り落とす。(IE6は親ボックスの幅が広がるバグがあるので、widthで直接的に幅を指定しないと効かない)
  3. CSSにword-break:break-allを指定し、IEだけ右端で改行。(ボックス幅の広がりを防げるが、単語区切りにならず英数字が読み辛い)
  4. CSSにword-break:keep-allを指定し、IEだけ右端で改行。(単語区切りのみで改行。区切りが無いと全角でも改行されない)
  5. 区切り記号を全角にする。(稀に折り返さないケースもある)
  6. 半角記号を空白(スペース)で挟む。
  7. 単語の区切りなどに<wbr>(<wbr />)を入れる。

参考資料:
7以外は以下の引用です
http://pinotan.blog15.fc2.com/blog-entry-106.html

Firefoxの場合、折り返すようにする拡張機能(url_breaker、url_breker_plusもしくはGreaseMonkeyを使う方法)があります

ただ、この場合、ユーザーにインストールしてもらわないといけないので、入れていない人にも効かせて欲しい場合は、これをjs化することで対応できます。

参考資料:
Firefox・Netscapeで連続した半角文字を折り返す
http://www.koikikukan.com/archives/2005/08/04-235647.php

NN7やmozillaでは、なんと全角数字も同じように扱われてしまいます。
しかし記号もそうなのだとは知りませんでした。
参考ページ。
http://www.mozilla.gr.jp/forums/?mode=al2&namber=6847&rev=&&KLOG=47

次ページへ »