• ベストアンサー

小説の行をマークアップ

小説をxhtmlでマークアップしようと考えています。 一つの段落は、<p>~</p>要素でマークアップしようと思います。 また、段落は変わらないけれど、改行したいときがあります(会話でかぎ括弧を使う場合などです)。 このようなときは、一行をどのようにマークアップするのが正当でしょうか。 やはり、~<br />で改行させるべきでしょうか。 それとも、<span class="l">~</span>(l {display: block;})で一行のように表示させるべきですか。 よいアイディアなどありましたら、教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • quads
  • ベストアンサー率35% (90/257)
回答No.1

私なら br 要素を用います。 HTMLは文章を表現するために特化した言語ではありません。 本来であれば、小説を表現するに適した要素を定義したXMLでマークアップすべきです。 XHTML2.0 では br 要素は廃止され、l 要素が論理行を示すコンテナ要素として定義される予定です。 文章末に br 要素を置くことと同等ですが、概念的には行としてマークアップされるということです。 その場合、内容が構造的に <l>文章1。文章2。文章3。</l> となるべきか、 <l>文章1。</l> <l>文章2。</l> <l>文章3。</l> となるべきかによって、回答が異なります。 小説を表現するというのは、いわば本(作文用紙)と同様です。 行頭、行末の処理や、改行については厳密に扱いたいところです。 小説としての見栄えをどこまで妥協するかによります。 場合によっては、p 要素でなく pre 要素で包含し、段落を行間(改行数)及び字下げ(行頭スペース)で表現するかもしれません。 HTMLにおける p 要素(段落)を用いて、小説の段落などを表現するのであれば、かぎ括弧などを用いるための作文用紙上での改行は、あくまで br 要素で行います。 <p>文章1。<span style="display: block;">文章2。</span>文章3。</p> というのは、単に見かけ上のレンタリングに過ぎません。 そのように span 要素を用いるのは <p>クラーク博士は、<br /> <span style="display: block; line-height: 2;">「Boys, be ambitious!」<br /></span> と言った。</p> というように、表現する上で視覚的な演出をしたい場合に限ると思います。 ※ 例が例なので、このようなマークアップが広い意味で妥当とは言い切れませんが。 HTMLかCSSかという単純な疑問であれば、CSSが有効でないときにはどのように表示されるべきかを考えれば分かることです。 尤も、HTMLが内容の文書構造を明示する言語であると認識されていれば分かることかもしれませんが。 少し長くなりましたが、そのような場合は br 要素を用いるべきであると回答しておきます。

noname#24858
質問者

お礼

ご回答、どうもありがとうございます。 XHTMLに囚われずに、XMLでマークアップすれば解決できますね。 ご指摘の通り span 要素での改行は視覚的ということに気づきました。また、br での改行と、span での視覚的な改行とでは全く違うということに気づきました。 私が考えていた文章は、CSSが無効の場合でも改行させたいものでしたので、XHTMLの場合は br 要素を使おうと思いました。根本的に間違っていたみたいです。 また、HTMLでのマークアップが可能な文書は、非常に少ないことが分かりました。現在ウェブ上にある多くの文書は、XMLでマークアップされるべきですね。 ご指摘、本当にありがとうございました。

その他の回答 (2)

回答No.3

長文失礼します。 段落でない場所で改行したいなら<br />を使うべきですし、 改行の時の上下に幅を持たせたいならインライン要素で囲ってスタイルシートで高さを調整すべきだと思います。 日本語としても改行を伴う「」と改行を伴わない「」は意味やニュアンスが若干違いますしね。 私にとっては文章から登場人物や作者の意図をくみ取るのは最も苦手な分野なので、どう違うとか聞かれても答えられないですが、、、違うと言うことはわかります。その程度です どのタグを使うか、の方が問題になりそうですけどね(^^; つまるところ<span>でいいと思います。 上下に幅を持たせるときのスタイルシートはline-heightでいいんじゃないでしょうか。 前後に改行を入れてますので、display:blockは特に必要ありません。 改行の時の上下の幅をとりたくないなら、<span>もline-heightも不要だと思います。 <style> .serifu {line-height:200%;} </style> <p> 本文<br /> <span class="serifu">「せりふ」</span><br /> 本文 </p> 2行以上に渡るような長いセリフでは、line-heightでは表示がちょっと変になるので、 .serifu{ display:block; margin-top:1em; } でもいいと思います。 margin-bottom;はセリフの後の<br />で1行あきますので入れてません。 HTMLタグは目下勉強中。というか永遠に勉強中。 良い書き方がありましたら私も教えていただきたいと思います>識者の方

noname#24858
質問者

お礼

ご回答、どうもありがとうございます。 <br />を使うことにします。小説をXHTML、CSSでマークアップするのは難しいですね。ですが、頑張ります。 私も、HTML勉強中でございます……。詳しいご説明、本当にありがとうございました。

  • MAN_MA_RUI
  • ベストアンサー率41% (426/1024)
回答No.2

XHTML 2.0であればl要素を使うべき…なんですねぇ?まぁ知らないけど。 で、XHTML 2.0でなければ<br />で構わないでしょう。CSSで行を折り返すとCSSを無効化したときに折り返しが効かなくなります。 XHTMLは文書構造の定義、CSSは見栄えの定義です。もちろん、視覚効果的なものを狙って改行する場合はCSSが適切だと思いますけどね。

noname#24858
質問者

お礼

ご回答、どうもありがとうございます。 CSSが無効の場合でも改行させたい文章でしたので、やはり<br />を使おうと思いました。根本的に間違っていたみたいです…。 どうもありがとうございました。

関連するQ&A