全体に色を付けたいのに、<hr>で区切ると色が取れちゃう
*****************************
<html>
<body>
<p style="color:DeepPink">
あああ
<hr>
いいい
</p>
</body>
</html>
*****************************
を実行すると、「あああ」だけに色が付き、
<hr>
から下は、元の色に戻ってしまいます。
<hr>は、<p style="color:DeepPink">と</p>
の間にあるのに、なぜ、<hr>を境目に色が取れてしまうのでしょうか?
*****************************
<html>
<body>
<p style="color:DeepPink">
あああ
</p>
<hr>
<p style="color:DeepPink">
いいい
</p>
</body>
</html>
*****************************
と、
するしかないですか?
No.1ベストアンサー
- 回答日時:
もっとも基本的な部分で間違っています。
仕様書だけは一度目を通して必要なとき、調べられるようにしておきましょう。
・HTMLにはブロック要素と行内要素があります。
→7.5.3 ブロックレベル要素と行内要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
pもhrもブロック要素です。
それぞれの要素には内部にどの要素をおけるか決まっています。
→<!ELEMENT P - O (%inline;)* -- paragraph --> ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
- 0 意味はp要素は終了タグを省略できる。二つ目の0は省略可能と言う意味
(%inline)は行内要素しかもてない。
★すなわち
<p style="color:DeepPink">
あああ
<hr>
いいい
</p>
のソースの場合、Pは行内要素しか含まれないので、ブラウザは</p>が省略されているとみなして、また開始タグは必須ですから
<p style="color:DeepPink">
あああ
</p>
<hr>
<仮想ブロック>いいい</仮想ブロック>
<p></p>
などと解釈します。ブラウザによって解釈が違う。
当然、</p>でその段落は終了していますから、スタイルも適用されませんん。
この場合、
<div style="color:fuchsia;">
<p>
あああ
</p>
<hr>
<p>
いいい
</p>
</div>
としなければなりません。その場合borderの色はcolorで指定された色を引き継ぎますから、
<div style="color:fuchsia;">
<p>
あああ
</p>
<hr style="color:black;">
<p>
いいい
</p>
</div>
とHRで別の色を指定する必要があるでしょう。
DIVは本来
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』のものですから、それがメモ書きのようなものでしたら
<div class="memo">
<p>
あああ
</p>
<hr>
<p>
いいい
</p>
</div>
としておいて、<HEAD><?HEAD>内などのスタイルシートで
div.memo p{color:fuchsia;margin:0 auto;text-indent:1em;}
のように指定するほうがないです。
★DeepPinkというcolorは指定できません。スタイルシート/HTMLで使用可能な色名は、
aqua(#00FFFF)、black(#000000)、blue(#0000FF)、fuchsia(#FF00FF)、gray(#808080)、green(#008000)、lime(#00FF00)、maroon(#800000)、navy(#000080)、olive(#808000)、orange #ffA500、purple(#800080)、red(#FF0000)、silver(#C0C0C0)、teal(#008080)、white(#FFFFFF)、yellow(#FFFF00)
の17色だけです。'CSS2では16色'
No.3
- 回答日時:
No.2さんに、まことに申し訳ないのですが・・
<span>は行内要素ですから、<body>直下には置けませんから、<span>でマークアップするにしても、やはり
<p><span>・・
<div><span>
しかないです。この場合、spanが<p>をまたぐことはできませんが、ブラウザによると適当に解釈してまたぐように見える場合がありますが、本来はまたいではなりません。--ブラウザの仕様によります。
また、<body><span>であっても動作するかもしれませんが、その場合に期待通りに動作するか否かはブラウザによって差があります。
基本的には、下記サンプルのようにきちんとHTMLを書いてスタイルシートでデザインするべきでしょう。
また、hrではなく、sectionで括って、二番目以降のsectionには上線を引くというほうが、スマートで色々と応用が利いてよいです。
★Another HTML-lint 5 ( http://www.htmllint.net/ )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
で検証済みのHTML4.01strict+CSS2.1[ウェブ標準]です。
※タブは_に置換してあります。戻すこと
<!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">
<!--
html,body{margin:0;padding:0;}
div.header,div.section,div.footer{width:70%;margin:0 auto;background-color:silver;}
h1,h2,h3,p{margin:0 auto;}
/* 初期値のcolorを指定 */
body{color:green;background-color:gray;}
/* hrの指定 */
hr{border-color:blue;}
/* div.section中「半角スペース」のpについて */
div.section p{color:fuchsia;}
/* sectionの次のsectionに上線を引く */
div.section+div.section{border-top:4px double purple;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは・・・・</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>ここはfuchsia</p>
__<hr>
__<p>ここもfuchsia</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>ここはfuchsia</p>
__<hr>
__<p>ここもfuchsia</p>
_</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>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS プログラムの関連性を教えて下さい。 1 2023/07/19 03:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ヒトの神秘】美男美女から何...
-
配列の要素をまとめて比較したい
-
超音波で洗脳。
-
CSSのセレクタに指定するbodyと...
-
質問1.
-
submit buttonの違い
-
<br /><hr />どっちを使ったら...
-
下線と文字の間を調整するには...
-
【CSS】imgタグを、親要素の幅...
-
html タグの閉じスラッシュ前の...
-
border: noneでボタンの境界線...
-
1から100までの自然数のうち、2...
-
VBA でIE 操作 ボタンをクリッ...
-
含む含まないという概念自体の...
-
smallにtext-allignが効かない
-
改行ほどは行かないけど、若干...
-
CSS:overflow要素の印刷について
-
指定したidやclass以外の要素を...
-
<object>
-
確かな学力とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ヒトの神秘】美男美女から何...
-
超音波で洗脳。
-
質問1.
-
smallにtext-allignが効かない
-
含む含まないという概念自体の...
-
NからZへの全単射を具体的に構...
-
角丸画像の背景色を透明にした...
-
タグは大文字と小文字どちらが...
-
改行ほどは行かないけど、若干...
-
2個のFormを横並びにしたい
-
「諸要素」とはどういう意味で...
-
input type="hidden"で取得した...
-
CSS:overflow要素の印刷について
-
textareaの幅を画面と合わせたい
-
親要素・子要素
-
テキストボックスの中にリンク...
-
emとstrongの反対
-
cssのdisplay:block
-
border: noneでボタンの境界線...
-
tdに対してmin-heightの定義、...
おすすめ情報