HTMLマークアップの正しい使用方法とフォントスタイルの指定方法

このQ&Aのポイント
  • HTMLマークアップには注意が必要です。正しい使い方をすることで、全て同じフォントスタイルを使いつつ1行空けることができます。
  • 誤ったHTMLマークアップをすると、フォントスタイルの指定がうまくできないことがあります。
  • HTML初心者の方でも具体的なタグと例を参考にすれば、正しくマークアップすることができます。
回答を見る
  • ベストアンサー

文章のマークアップについて

<p><span class="red">「今日は寒いね」</span><br>  彼はそう言って笑った。</p> <p><span class="blue">「あ…、雪だ」</span></p> ↑このような使い方は誤り…。 かと言って <div class="red">「今日は寒いね」</div>  彼はそう言って笑った。<br>  ←この部分だけCSSで指定したフォントスタイルが適用されない。 <div class="blue">あ…、雪だ」</div> <div class="red">「今日は寒いね」</div> <div> 彼はそう言って笑った。<div> <br> <div class="blue">「そうだね」<div> ↑これでは少しこの会話が続いた時に「div病(?)」テキストに書いてありました。 全て同じフォントスタイルを使い且つ1行空けたい場合はどうマークアップすれば良いのでしょうか。 HTML初心者のweb作家です。 タグと具体例を示して頂けるとありがたいです。

noname#226929
noname#226929
  • HTML
  • 回答数6
  • ありがとう数9

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

  • ベストアンサー
  • shokodei
  • ベストアンサー率33% (2/6)
回答No.6

一番、最初の例で、全然オッケーだと思います。誤りではありません。 または、「あ…、雪だ」までをひとつの段落と見なす場合は、 <p><span class="red">「今日は寒いね」</span><br>  彼はそう言って笑った。<br> <span class="blue">「あ…、雪だ」</span></p> で、まったく問題ないでしょう。 ここで、"彼はそう言って笑った。"の後に、「間」の意味合いで空行を入れたいのなら、 <p><span class="red">「今日は寒いね」</span><br>  彼はそう言って笑った。<br> <br> <span class="blue">「あ…、雪だ」</span></p> としても、なんら問題はありません。 むしろ、 <div> 彼はそう言って笑った。<div> <br> <div class="blue">「そうだね」<div> というような<br>の使い方は、僕は推奨しません。 この場合は、divのmarginで余白を調整した方がスマートですね。 段落(P)の中の改行(br)は、連続しようが何個出現しようが、 それは作者の意図であり、言語構造によるものなので、仕様的には問題無しです。

noname#226929
質問者

お礼

ありがとうございます! 2冊持っているテキストの内1冊に「詩や小説など表現上で使用が必要な場合は<br>も<p>も使用して構わない」このような記述がありました。事実、作中に登場する私の詩は…空白行がなかったら見栄えが良くない(というより描写部分と分けるためにも必要)。 貴重な御意見をありがとうございます。あまり他の人の意見に左右されずに『自分の考え』と言うものをしっかり持つようにします。 タグの置き換え作業はもう少し考えてみます。

その他の回答 (5)

回答No.5

>話しを戻します。空白行を1行空けたい箇所と空けたくない箇所があり、且色を変更したい場合は。。。? それぞれスタイルシートを書いてclass分けすればいいと思います。 <style> .akeru{margin-top:1em;} .akenai{margin-top:0em;} .iro{color:red;} </style> <p class="akeru iro">1行開ける</div> <p class="akenai">1行開けない</div> <div class="akeru">1行開ける</div> <div class="akenai iro">1行開けない</div>

noname#226929
質問者

お礼

度々ありがとうございます。 HTML5のテキストには『<div>の制限が厳しくなる』というようなことが書かれておりまして、具体的にどう厳しくなるのか?ということまで理解していませんけれども。。。 重ね重ねありがとうございます。 私のサイトは4.1ですけれどHTML5への移行も見込んでおります。 shift_JISも非推奨だなんて世界における日本の立ち位置が表れているような…。確かに使える文字が増えることはメリットですれどもファイルが大きくなってしまうことは痛手です。

回答No.4

DIV病は<h1>などや<p>、<table>、<ul>などで表すべきであろう所まで、全て<div>を使うことです。 「適したタグがない場所に<div>を使う」のは、HTMLの文法として正しい方法です。 私なら、こうでしょうか。 <style> p{margin-top: 0.5ex; marign-bottom: 0.5ex;} .serif{font-style: italic;} .chara1{color: red;} .chara2{color: blue;} </styule> としておいて、 <div class="serif chara1">「今日は寒いね」</div> <p> 彼はそう言って笑った。</p> <div class="serif chara2">「そうだね」<div> または、 <p class="serif chara1">「今日は寒いね」</p> <p> 彼はそう言って笑った。</p> <p class="serif chara2">「そうだね」</p> via: http://oshiete.nikkeibp.co.jp/qa6381065.html *redとかblueを否定しているわけではありません。 <span class="red">赤い</span>傘が落ちていた。 などと書くこともありますし。 ただ、キャラクター名を付けた方が、誰の台詞かというのがわかりやすかろうと思っただけです。 HTMLに「台詞を意味するタグ」は存在しません。 また、HTML文法の基準になっている英語(英語小説)の文法は、日本語小説と全く違う所がありますので、 日本語小説のルールをそのままHTMLで表せないことが多いです。 (たとえばルビ(日本語と中国語だけ)がHTMLに適用されたのもXHTML1.1というごく最近の物から。HTML4では文法違反するか、<span>で何とかするしかない。) そう言うところは、結局<p>か<div>で表すしかないと思います。 余談ですが。 台本(話者・台詞・ト書き)を書いていますが、該当するHTMLタグがなくて、どのタグを使うか決めるのに苦労しますね。。。 WHATWG(HTML5を制定している団体)によると、英語(アメリカの)台本の書き方はこうらしいです。 マージンを使った日本の台本と全然違う。。。 <style> p b{display:block; text-align: center;} </style> <p> <b>話者</b> 台詞 </p> <p> <b>話者</b> 台詞 </p> どうでも良いが、いや個人的に良くないが、CSS3に「縦書き」を入れて欲しかった。。。

noname#226929
質問者

お礼

実際には文字色ではなくキャラクター名を付けております。 上記の例は大げさであり、実際には文字色の差異はあまりないです。ただ読み手に分かりやすいよう色分けしていまして…気付いたら長編になっていまして。。。 話しを戻します。空白行を1行空けたい箇所と空けたくない箇所があり、且色を変更したい場合は。。。?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

Another HTML-lintでチェックしているようですが http://openlab.ring.gr.jp/k16/htmllint/faq.html は御読みになりましたか? 他にも、結果などの解説も参考になるはずです。 環境の選択の余地があるなら、青空文庫などが使っているような形式とか、PDF等の方がレイアウトへの融通が効くのですが。

noname#226929
質問者

お礼

ありがとうございます! …Another HTML-lint。。。今、文字化けしていて読めません(文字エンコードを変えても変わりません)。 (直して直して)100点になりました。 けれど<p>は段落タグであって。。。 と、色々悩みもあり。。 作家なのにHTMLを考え過ぎの感もあります。自分でもそう思います。 ただケータイサイト(執筆)→PCサイト(保険&バックアップ)のため、ケータイサイトのfontタグやbrタグの置き換え作業だけでも大変です。 助言をありがとうございます。

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

HTMLの最も基本的なところが?のようですね。 <div class="script"><!-- 台本 --> <p class="lines person1">「今日は寒いね」</p><!-- せりふ 登場人物1 --> <p>彼はそう言って笑った。</p> <p class="lines person2">「あ…、雪だ」</p> <p>彼女は空を見上げてそう言った</p> </div> とマークアップするとかします。 後で見直して ・セリフのブロックはどこからどこまで ・セリフはどこか? ・どの登場人物の会話か が分かりやすい。HTMLのマークアップはこのようにするものです。 <span class="red">とか<div class="red">じゃ、<font color="red">と同じレベルです。 そのうえで、スタイルシートで div.script p { margin-top:2ex;margin-bottom:1ex;} div.script p.lines { font-size:1.2em;} div.script p.person1{ color:blue;} div.script p.person2{ color:red;} とかすると、後で色を変えようがデザインを変えようが好きにできる。青で書いていた部分を緑にしたくなってもよいでしょ。  

noname#226929
質問者

お礼

ありがとうございます! 試してみます。

noname#226929
質問者

補足

今…、テストページにて試してみましたけれど、行間が1律固定になってしまっています。marginの値をいじってみましたけれど変わりません。 「今日は寒いね」  彼はそう言って笑った。 「あ!雪だ…」 ―キーンコーンカーンコーン― 「うわ、もうそうな時間!?」  2人で走る。 ↑台詞も描写も短いですけれど、例えばこのように表示をさせたい場合に…、行間が一律ではなく、且色分けする方法(HTMLの件のストレスで発熱してしまったので)、なるべく著者である私がケータイサイトからバックアップを取る際に手直しは最小限にしたいんです。 何か良い案が見つかるまで。。。というかタグの付け方はソフトにも癖がありますし人にもあるようですね。つまりルールは決まっているものの目に余るほどでなければ「許容範囲」と言ったところでしょうか。「い」抜き「ら」抜き言葉のように。。。

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.1

日本語での段落で賛否両論があるようです。 この辺が段落と改行の違いです。 本来は段落が<p></p>という事を前提にしますが、 ウェブサイトの場合は、ユーザー環境に左右されない仕様が良いので、改行を多用しない事が求められますが、PCのウェブブラウザを前提として、改行を利用し、日本語的な文章の読み易さを求める考えもあります。 例えばですが、「五七五」など日本語は独自の改行があり、英語の改行には適応されない考えです。 その改行を作者が段落と判断するか、改行にするかの問題です。 (古文とか専門外ですが・・・) ケースバイケースですが、 >1行開けたい場合 なら段落と判断しますので、 <p><q class="red">今日は寒いね</q><br>彼はそう言って笑った。</p> <p><q class="blue">あ…、雪だ</q></p> こうすれば、デフォルトでスペースが空きますし、 マークアップで段落と判断します。 あとは、CSSで margin で調整して下さい。<q></q>もCSSで。

noname#226929
質問者

お礼

ありがとうございます(感謝感激です)。 <q>の存在は知っておりましたけれど意味まで知らなかったものですから。。。 作家故、段落でもないのに<p>を使うべきか。ここ数日ほど悩んでおりまして。 ただ日本でいう「段落」の概念は英語圏に無い。ということは感覚的になんとなく理解しておりました。 「<p>を空白行目的で使用してはいけない」…という人も中にはおりますけれど、日本では「段落→空白1行」は小学校で習う常識です。 仰るとおり<p>タグも賛否を呼んでいますよね。 私はweb作家であるため、「空白行不必要論」に賛同しかねます。私自身視力がかなり弱いですし、文字を大きくするだけでなく適度な行間や読みやすい文字サイズを心掛けております。 本当に感謝で言葉もございません。

関連するQ&A

  • HTML5に移行を見据えた上で

    ビルダー使いの初心者でWeb作家です。 fontタグが廃止になるということを知り、サイトのタグを(全200ファイルほど)をspanに全置き換え完了したはばかりです。 今度は「<br>タグの連続はいけない」と言うことを知り全て<p>~</p>で括る作業が完了したばかりです。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ↑上記サイトでチェックしたところ構文エラーはないですけれど 例文です。 <p><span class="red">「今日は寒いね」</span><br>  彼はそう言って笑った。</p> <p><span class="blue">「あ…、雪だ」</span></p> ↑ここは<div class="blue">などに置き換えるべきである。 それは分かっているのですけれど、修正個所が多すぎるため直しようがないんです(これ以上執筆を停滞させるわけにもいきませんし)。 ある意味、文法違反ですよね。ブラウザ上でも問題なく表示されています。 1.直さない場合、将来的に何かマズいことはありますか? 2.例えば…、文法違反をすると何か起こるのでしょうか? 私小説のため、認証をかけてありますけれど(持病の話し等が出てくるため極親しい人にのみ公開しています)、そのためSEO対策は重視しておりません。 どなたか教えて下さい。

    • ベストアンサー
    • HTML
  • css classとidの使い方

    あの、<p></p>内の文をclassを使ってitalicに、<span>内をidを使ってbold,色は赤にしたいのですが。変わりません。どこを直したら良いでしょうか?よろしくお願いします。 <HTML> <HEAD> <LINK href="global.css" rel="stylesheet" type="text/css"> <TITLE>About Me</TITLE> </HEAD> <BODY> <H1>About Me</H1> <IMG src="MyPic.png" alt="MyPic" height="150" width="100"> <DIV class="profile"> <p>My name is blahblah.<br> I am a <SPAN id="attention">Good</SPAN> Student.<br> </p> </DIV>  </BODY> </html> global.cssの内容 .profile{font-style: italic} #attention { font-weight: bold; font-style: italic; color: red }

    • ベストアンサー
    • HTML
  • HTMLとCSS

    CSSで、文字に影をつけようと思っても、プログラムを組んでもうまくいきません。他(CSSで文字に色をつける)のを組むと、上手くいきますが、影だけが失敗します。 他のCSSが動いたって事は、CSSの基本は合っているので、多分、 影のCSSタグが間違っていると思います。 使ったタグは下記で。 省略 <STYLE TYPE="text/css"> <!-- .ts1 {text-shadow:3px 3px} .ts2 {text-shadow:red 3px 3px;} .ts3 {text-shadow:red 3px 3px 2px;} --> </STYLE> </HEAD> <BODY> <SPAN CLASS="ts1">text-shadow</SPAN><BR><BR> <SPAN CLASS="ts2">text-shadow</SPAN><BR><BR> <SPAN CLASS="ts3">text-shadow</SPAN><BR><BR> </BODY> </HTML> 上記で失敗したので、このタグもつかいました td { filter:dropshadow (color=red ,offx=3 ,offy=3 ,positive=true) ; } 何処が原因でしょうか?

  • <p>の使用について教えて下さい。

    現在小説を執筆&HTMLを勉強中です。 今まで台詞と台詞の間(1行空ける場合) <span class="black">「今日は暖かいね」</span><br> <br> <span class="gray">「そうだね」</span><br>  本当に春みたいな陽気だった。<br> という使い方をしていましたがCSSにて行間を調節出来るよう <p><span class="black">「今日は暖かいね」</span></p> <p><span class="gray">「そうだね」</span><br>  本当に春みたいな陽気だった。</p> ↑実際問題、段落ではないのですけれど、このような<p>の使用法は誤りでしょうか?

    • ベストアンサー
    • HTML
  • HTML,CSS:文章内の文字を強調する方法

    例えば、 HTML部分 <div class="a">私は、~~<? class="b">「●●」</?>~~である。</div> CSS部分 div.a {font-style: normal; font-size: 11pt; font-family: "MS 明朝"; line-height: 125% } のとき、<?>の部分を強調したいのですがどのタグを使えばいいでしょうか?レイアウトはCSSと聞いてるので、あまりHTML側でレイアウト用のタグは使わない方がいいのではないかと思っているのですが…。 ちなみに、<?>は改行しない場合です。 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • ビルダー 不要なタグの生成を止めたい

    Dreamweaverを使用してWEBサイトを作っています。 依頼人が更新作業をしているのですが 相手はホームページビルダーを使用しています。 CSSでいろいろ指示をしているテンプレートを作り、 テキスト部分を打ち変えるだけで更新できるようにしているのですが ビルダーでテキストを打つと不必要なタグがやたらと入ります。 たまにフォント指定がバラバラだったりして、明朝とゴシックが混じったような文章になってたりします。 これは相手の操作に問題があると思うのですが(^-^; ソース画面にして、テキスト部分に直接打ち込んで下さいとお願いしているのですが どうしても見やすさから、通常の作業場面(?)でテキストを打ってしまうようです。 「表示がおかしくなったから見てくれ」と頼まれ見ると すごい指定タグの量でびっくりします。 HTMLソースの自動整形やエラー修正のチェックを外したり、 その他いろいろ困る設定は外す事ができたのですが、 このフォントタグの細かな生成には参っています。 こんな感じです↓ <span lang=EN-US style='font-size:11.0pt;color:red'></span>○○テキスト部分○○<span lang=EN-US style='font-size:11.0pt;color:red'></span><BR> <span lang=EN-US style='font-size:11.0pt;color:red'></span>○○テキスト部分2○○<span lang=EN-US style='font-size:11.0pt;color:red'></span><BR> …不要な指示がなぜ入っているのでしょう?? また、文章が終わって何もない所に↓ <span lang=EN-US style='font-size:10.0pt'></span></p> <p class=MsoNormal><span style='font-size:10.0pt;font-family:"MS 明朝","serif"; mso-ascii-font-family:Century;mso-hansi-font-family:Century'></span></p> <span lang=EN-US style='font-size:10.0pt'></span><span lang=EN-US style='font-size:10.0pt'></span> …と、これがたくさん残っています。(なぜでしょう??) 改行タグの前の<SPAN lang=EN-US><o:p></o:p></SPAN>も困ります。 いろいろ書いてしまいましたが、設定でこれらのタグが入らないようにする方法はないでしょうか? また、相手の操作次第(ソース画面で直接打ち込む以外)でなおる方法はあるでしょうか? よろしくお願い致します。

  • クリックした際にCSSが変更できない jQuery

    jQueryについて詳しい方教えていただけませんでしょうか? クリックをした際、スライドさせるように作っているのですが、同時にspanのCSS変更(arrowFD→arrowFR)もやりたいのですがなぜかうごきません・・・ <jQuery> $(window).load(function(){ $('#faq .answer').not(':first').hide(); $('#faq .question').click(function() { if($(this).next('.answer').is(':visible')) { $(this).next('.answer').slideUp(300); $("span.arrowFD").html('<span class="arrowFR"></span>'); //★ホントは、CSSだけ変更したい } else { $(this).next('.answer').slideDown(300).siblings('.answer').slideUp(300); } }); });//]]> <CSS> .question { padding:5px; font-weight:500; font-family: メイリオ; font-size:14px; border:1px solid #ddd; background:#eee; cursor: pointer; } .answer { padding:25px; font-family:MS UI Gothic; font-weight:500; font-size:13px; border:1px solid #ddd; } /* 三角矢印を前(Front)に(右向き:Right)でつける */ .arrowFR { position:relative; top:0; left:0; padding-left:18px; } .arrowFR:before { content: ""; position: absolute; top: 3px; left: 2px; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 12px solid #000000; } /* 三角矢印を前(Front)に(下向き:Down)でつける */ .arrowFD { position:relative; top:0; left:0; padding-left:18px; } .arrowFD:before { content: ""; position: absolute; top: 3px; left: 2px; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 12px solid #000000; } <HTML> <div id="faq"> <div class="question" id="tenmetsu"> <span class="arrowFD"></span> <span style="font-weight:bold">|</span> 香川真司 </div> <div class="answer">Answer 01<br />Answer 01<br />Answer 01<br />Answer 01<br /></div> <div class="question"> <span class="arrowFR"></span> <span style="font-weight:bold">|</span>  長友佑都 </div> <div class="answer">Answer 02<br />Answer 02<br />Answer 02<br />Answer 02<br /></div> <div class="question"> <span class="arrowFR"></span> <span style="font-weight:bold">|</span> 本田圭佑 </div> <div class="answer">Answer 03<br />Answer 03<br />Answer 03<br />Answer 03<br /></div> </div>​

  • 正規表現で最短マッチは2回使えないのでしょうか?

    <やりたいこと> <span class="blue">データ</span> <br> の<br>タグを削除したいです。 <試したけどううまくいかなかった内容> $match = "/(<span class=\"blue;\">(.*?)<\/span>)(.*?)<br>/ism"; $replace = "<span class=\"blue;\">$1</span>"; $code = preg_replace($match, $replace, $code);

    • ベストアンサー
    • PHP
  • onmouseoverはCSS参照に含められるか?

    <div style="color: blue;" onmouseover="this.style.color='red'" onmouseout="this.style.color='blue'">あああ</div>を、 <style type="text/css"> <!-- div { onmouseover="this.style.color='red'"; onmouseout="this.style.color='blue'; } --> </style> みたいには書けませんか? a:hoverだったらできるのは承知していますが、 タグが<a>でなく<div>なので、onmouseover、onmouseoutを使わざるを得ず、 さらにonmouseover、onmouseoutはCSSでなくJSだと思うのですが。

    • ベストアンサー
    • CSS
  • cssのタグについて

    cssで使えるタグにはどのようなものがあるのでしょうか? p、div、h1(文字サイズと兼用でしょうか?)などがあることが分かったのですが、たとえばfontcolorを縮めてfc.red { color: red;} などとすれば自分的に分かりやすいと思ったのですが無効でした。 また、百歩譲って限られたタグしかないとしても、p.fc.red { color: red;}などのようにclassを複数にするようなことは可能ではないのでしょうか? こういったことも含めてcssとhtmlでは思想的にというか包括的に違うものなのでしょうか? スタイルシート部分 p.red { color: red; } これを→ fc.red { color: red; } HTML部分 <p class="red"> タイトル </p> これを→ <fc class="red"> タイトル </fc>

専門家に質問してみよう