MT100本をAmazonで購入!

タグクラウドみたいなのの単語の折り返しに関して

06月28日(土)01:56

category
CSSテンプレート, ビジュアル・小技

単語の禁則処理のサンプルサイト

単語の禁則処理に関しては、結構無頓着であんまりそういう事がなかったのもあり、イマイチ分かってないんですけど、ブラウザによる差異が激しい問題の一つだと思います。たぶん。

Firefox3になってから、URLなどが長い場合折り返されるようになったみたいだけど、単純な半角英数の羅列だとやっぱり折り返してくれないんですね。ちと残念。

で、今回はむしろ折り返さないで欲しいっていう状況の時の処理に悩んだのでメモがてら。

サンプルは以下より確認できます。

---- こっから続き

取りあえず、サンプル見てもらうと2つ似たようなのがあるんですが、タグクラウドみたいなのを作ったときに普通に作ると多分2番目みたいになるかと思います。

通常はコレで問題ないのです。
なにせ、1番目みたいにすると、長いテキストが入った場合に折り返してくれないので、はみ出したりしてしまいます。
更に、IE6だとoverflow: hidden;の指定が無い場合はボックスの幅を広げてしまうので、カラム落ちしてしまったりといい事がありません。

が、基本的に短いテキストで羅列されるなら、1番目のようになっていた方が一つの単語の途中で改行されないので、読みやすくなったりします。

そうなんですよね。読みやすくなるのです。なら、やった方がいいよね。
っていうことで、やる事になったのですが、中々ブラウザによって言う事を聞いてくれず、色々悩んだりした挙句、以下のようなCSSで意図した感じに出来ました。

#main ul.tagList {
	width: 510px;
	margin: 10px 0;
	padding: 15px;
	background: #f0f8ff;
}
#main ul.tagList li {
	display: inline;
	margin-right: 10px;
	white-space: nowrap;
	line-height: 2;
}
*:first-child + html #main ul.tagList li {
	float:left;
}
* html #main ul.tagList {
	overflow: hidden;
}
* html #main ul.tagList li {
	float:left;
}

今回、リストで並べてるので、何はともあれdisplay: inline;の指定をしてインライン風味に。
コレだけだと2番目のと同じなので、今回の目的である単語単位での折り返しを禁止させるようにするために、white-space: nowrap;の指定をしてみます。

そしたら、FirefoxはOKだったんすが、IE6/7が横一列に並んでしまったのでIE6/7はハックしてfloat指定したらいい感じに並んでくれました。
ただ、floatを指定すると親要素が高さを算出してくれませんので背景が見えません。

それを解決するには、widthの指定を親要素に当たるul要素にすることで解決。zoom: 1;でもいいんですが。

コレで以下のブラウザで大体おんなじ見た目になりました。

  • Internet Explorer 6
  • Internet Explorer 7
  • Opera 9.5
  • Safari 3
  • Firefox 3

最初は、white-space: pre;とかでやってたらかなりはまってしまって大変な事になりかけましたが、無事意図した状態になって良かったです。はい。

ちなみに、サンプルのメインエリア下部にある見出しっぽいものの下は、半角英数字だけだとどうなるのか気になったので残ってますが、今回のエントリーとは関係はありません。いわゆるおまけです。

あ、最後に。

サンプルのダウンロードとサンプルの確認

各種SBMに追加
  • Hatenaブックマークに追加
  • del.icio.usに追加
  • POOKMARK Airlinesへ追加
  • livedoorクリップへ追加
  • ニフティクリップへ追加
  • newsingへ投稿
  • Saafブックマークへ追加
  • Redditへ追加

comment [1]

1 - みるく さん

初めてコメントさせていただきます。

ちょうどタグクラウドで「英語だけが改行されない」という現象とIE6でカラム落ちしてしまっているのを修正しようと思っていたので、非常に勉強になりました。

私もwhite-space: pre;で試みてたのでかなり手こずっておりましたので(^^;

ただ、カラム落ちを直すだけでなく、読みやすくするというのは非常に良い事だと感じてます。
サンプルを見せていただいて「なるほど!読みやすい」と思いました。

今、カラム落ちしているサイトをなんとか自力で直し
CSSでHappyになりたいと思います^ ^

URL|2008年6月28日 10:52

コメント投稿フォーム

post your comment

※コメントが認証されるまで、コメントは反映されません。ご了承くださいませ。

行き場を失ったモノたち

フィードメーター - CSS HappyLife

Feeds購読数

あわせて読みたい

えかきっず!

気まぐれブログパーツ

change color or layout
  • デフォルトカラー
  • 薄い青
  • 青緑
  • 緑
  • 深い青
  • 薄い紫
  • ピンク
  • 黄金
  • 茶
  • 赤
  • 黒
  • 白
  • シルバー
  • 2カラム(カラーはデフォルト)
  • リキッドレイアウト(カラーはデフォルト)

ページトップへ