• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文章を字下げする方法にミスがないか不安です)

文章の字下げ方法についての質問

このQ&Aのポイント
  • 文章の字下げ方法について不安があります。修正前の文章の見た目と修正後の見た目を比較して、適切な字下げ方法を考えたいです。
  • 以下のHTMLとCSSの記述で、まだ続いている文の途中で改行してしまっているため、不安です。HTMLはHTML4.01 Transitional、CSSは2.1です。
  • 同じようなレイアウトを実現するために、どのようなHTMLとCSSの記述が適切か、アドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

ミスがないか? >項目……項目に関する説明文です。この説明文の  の時点で、HTMLのマークアップは<dl>定義リストを使うべきです。  これは、HTMLは文書構造を記述するものという決まりがあるからです。  そうすることでスタイルシートを理解しないユーザーエージェントや検索エンジンであっても用語とその説明だと判断できるからです。  もちろんリスト的なないようでしたら<li>でマークアップしても良いです。(あなたの文面からはDLだと思うのですが、具体的な前後関係がわからないので、どちらが適切かは判断できません。) [DLの場合]  これが意外と曲者で、dt{float:left;}をすぐ思いつくので、それを使用しますがひとつ問題点があります。それは、説明<dd>が長くなった場合に[用語]の下に回りこんでしまうことです。  私は、floatを使わない方法を使用しています。この方が調整しやすいし、説明文が複数でも問題ないし、例のように・・・が必要ならそれを必要数だけ表示できます。 [li]の場合  これは、text-indentを使うと良いでしょう。 ★下記サンプルは、HTML4.01strict + CSS2.1です。  ⇒Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html# ) にてチェック済み。 IE5は中央に寄らない IE6,IE7は・・・が見えない IE8以降、およびFirefox,Opera,safari,Chromeでは同じ表示になるはずです。ウィンド幅には依存せず、折り返されます。 ★かっこ悪いので、ddはtext-indentで最初の行だけ字下げしてあります。 ★タブは_に置換してあるので戻すこと。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css"> <!-- dl.CSS{width:80%;margin:0.5em auto;position:relative;}/* とでもしておきます */ dl.CSS dd{margin-left:8em;margin-bottom:1em;text-indent:1em;background-color:white;z-index:10;} dl.CSS dt{font-weight:bold;position:absolute;left:0;z-index:-1;} dl.CSS dt:after{content:" ・・・・・・・・・・・・・・・・・";font-weight:normal;} ul.CSS{width:80%;margin:0.5em auto;list-style:none;} ul.CSS li{text-indent:-8em;padding-left:8em;margin:0 0 1em 0;} ul.CSS li span,ul.CSS li del{font-weight:bold;} --> _</style> </head> <body> _<div class="header"> __<h1>タイトル</h1> __<p>このページでは・・・・</p> _</div> _<div class="section"> __<h2>display</h2> __<dl class="CSS"> ___<dt>block</dt> ___<dd>要素に主要ブロックボックスを生成させる。</dd> ___<dt>inline</dt> ___<dd>要素に1つ以上のインラインボックスを生成させる。</dd> ___<dt>list-item</dt> ___<dd>要素(HTMLのLI要素など)に主要ブロックボックスとリスト項目のインラインボックスを生成させる。 リストとその整形についての例は[12.6.2 リスト]を参照せよ。</dd> ___<dt><del>marker,compact</del></dt> ___<dd>この値はCSS2.1で削除された</dd> ___<dt>inline-block</dt> ___<dd>行内要素として扱われるブロックを生成する。</dd> ___<dt>none</dt> ___<dd>要素には、整形構造にまったくボックスを生成させない(すなわちレイアウトに影響しない)。 子孫要素にも同様にボックスを生成させない。 この効果は、子孫要素の'display'に別の値を設定しても無効化できない。</dd> __</dl> __<ul class="CSS"> ___<li><span>block</span>・・・・・・・要素に主要ブロックボックスを生成させる。</li> ___<li><span>inline</span>・・・・・・・要素に1つ以上のインラインボックスを生成させる。</li> ___<li><span>list-item</span>・・・・・・要素(HTMLのLI要素など)に主要ブロックボックスとリスト項目のインラインボックスを生成させる。 リストとその整形についての例は[12.6.2 リスト]を参照せよ。</li> ___<li><del>marker,compact</del>この値はCSS2.1で削除された</li> ___<li><span>inline-block</span>・・・・行内要素として扱われるブロックを生成する。</li> ___<li><span>none</span>・・・・・・・・要素には、整形構造にまったくボックスを生成させない(すなわちレイアウトに影響しない)。 子孫要素にも同様にボックスを生成させない。 この効果は、子孫要素の'display'に別の値を設定しても無効化できない。</li> __</ul> _</div> _<div class="footer"> __<h2>文書情報</h2> __<dl class="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2012-08-10</dd> ___<dt id="LAST-MODIFIED">Last Modified</dt> ___<dd>2012-08-10 12:00:00 (JST)</dd> __</dl> __<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address> _</div> </body> </html>

noname#228688
質問者

お礼

回答ありがとうございます。 定義リストがあるということを知らなかったので、大変勉強になりました。 いままでは全てliタグで作っていたので……。 HTMLの仕様書に目を通すべきでしたね。 詳細なサンプルありがとうございます。 とても勉強になりました。 floatはよく多用してしまい、手間がかかっていたので、この方法は非常に勉強になりました。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.1

html <ul> <li>項目……項目に関する説明文です。この説明文の途中で改行して文章を調節します。といっても途中でbrを入れるのは好ましくありません。ブラウザや閲覧者の設定により改行される場所が変わってきますので、表示が変になります。第一、見栄えに関する指定をhtmlに記述するのは正しくないとされています。</li> <li>要確認…老婆心ながら、MrWaterさんの確認ブラウザはIEのみですか?他のブラウザでも確認されているか気になります。他にもcssがあると問題ないですが。</li> </ul> <dl> <dt>項目……</dt> <dd>こちらは(ピンクの方です)、項目の方が2行で、説明が1行になると表示が崩れます。</dd> <dt>項目2…</dt> <dd>こちらは、定義リストで作成しました。上記ではMrWater さんを尊重して「箇条書きリストナンバー無しで」作成しましたが、言葉の説明でしたら定義リストがふさわしい気がします。</dd> </dl> css li{ margin-left:4em; text-indent:-4em;} dl { clear: both; background:#ffcccc; } dt { float: left; width: 4em; clear: both; } dd { margin: 0; padding-left: 4em; }

noname#228688
質問者

お礼

回答ありがとうございます。 仰るとおり、私がやろうとしていることは定義リストで作成するのが正しいのですね。 勉強不足でした。 サンプルありがとうございます。とても助かりました。 ブラウザに関しては、IE、FF、GC、Operaで確認しているので大丈夫です。 勉強になりました。 ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A