goo blog サービス終了のお知らせ 

子供、いらない

はりょ。少子化問題とは関係ありません。
カウンタが345678やその付近の方はベースノートに書き込んでね。

長い行を適当に表示するPRE

2005-12-29 00:02:14 | junk.test.body

このブログではサンプルコードを載せることが多いので、整形済みテキストのためのPREタグを結構使う。PREタグは、括られた部分を整形済みテキストとして扱い、改行や空白がソースのまま出力されるので、プログラムやCSSのサンプルソースを載せるのには便利なのだが、ブラウザの幅を狭めている人やちょっと大き目の文字を使っている人は、整形済みテキストが記事エリアをはみ出してしまうことがある。

仕方がないので、CSS: 「折り返す」prepre 要素による整形済文字列をどう扱う ? の記事を参考にCSSでPREタグのスタイル(見栄え)をちょっと変えることにしてみた。CSSの変更(追加)箇所は、以下の通りです。

折り返すPREのCSS【追加分】
/* エントリ内:整形済みテキスト */
.etBody PRE {
  /* 折り返し有効 */
  white-space: -moz-pre-wrap;  /* Mozilla */
  white-space: -pre-wrap;      /* Opera 4-6 */
  white-space: -o-pre-wrap;    /* Opera 7 */
  white-space: pre-wrap;       /* CSS3 */
  word-wrap: break-word;       /* IE 5.5+ */
}

スクロールバーが出てくるPREのCSS【追加分】
/* エントリ内:整形済みテキスト */
.etBody PRE {
  /* はみ出したらスクロールバーを表示(除くMacIE) */
  width: 100%; /* IEのバグ対応 */
  /*\*/  overflow: auto;  /* */
  /* MacIEはoverflowプロパティにバグがあって使い物にならない */
}

どちらも「整形済みテキスト」のためのPREタグとしてあるべきスタイルではないかも知れないが、テキストが記事エリアからはみ出しちゃうのもナンなので、今回はスクロールバーの方を採用じゃなくてミックスして使うことにしてみました。

とはいえ、ブログのCSSが反映される環境なんてたかが知れているので、幅を狭めてもそこそこ見えるような整形であったり、そもそもPREタグを使わない方が無難なことに変わりはないんだけどね。


pre 要素による整形済文字列をどう扱う ? - hxxk.jp 2005年12月15日21:50
CSS: 「折り返す」pre - ただのにっき 2005年09月22日


● 2006年02月12日追記

PREの範囲が1行だけで長い場合は、Windows Internet Explorerではまともに表示されないので、ちょっと変更しました。
# 1行分の高さに文字の行と横スクロールバーの両方が表示されるので、文字が見えない…

スクロールバーが出る+折り返すPREのCSS【追加分】
/* エントリ内:整形済みテキスト */
.etBody PRE {
  /* はみ出したらスクロールバーを表示(除くIE) */
  /*\*/  overflow: auto;  /* */
  /* MacIEはoverflowプロパティにバグがあって使い物にならない */

  /* WinIEは1行で横スクロールバーを出すと使い物にならない */
  word-wrap: break-word;  /* WinIEバグ対策:単語の途中でも折り返す */
}

↑Bまったく、Internet Explorerは使い物にならないなぁ。


長い行を適当に表示するPRE (冒頭)

2005-12-29 00:02:00 | junk.test.goo

このブログではサンプルコードを載せることが多いので、整形済みテキストのためのPREタグを結構使う。PREタグは、括られた部分を整形済みテキストとして扱い、改行や空白がソースのまま出力されるので、プログラムやCSSのサンプルソースを載せるのには便利なのだが、ブラウザの幅を狭めている人やちょっと大き目の文字を使っている人は、整形済みテキストが記事エリアをはみ出してしまうことがある。

仕方がないので、CSS: 「折り返す」prepre 要素による整形済文字列をどう扱う ? の記事を参考にCSSでPREタグのスタイル(見栄え)をちょっと変えることにしてみた。CSSの変更(追加)箇所は. . . ..続きを読む
コメントは本文(次の記事)にお願いします