こんにちは。
html5での水平線の引き方を調べていましたら<hr>を水平線として装飾目的で使用するのは非推奨という事が書いてありました。
そこでどうやって水平線を引くか調べてみましたが、とあるサイトでCSSにて下記のようなサンプルを見つけました。
hr {
height: 3px;
background-color: #ff0000;
border: none;
color: #ff0000;
}
上記はhtml5に則った正しい表現なのでしょうか?もし正しくないなら水平線を引く方法をご教示願えないでしょうか?
以上、よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
>これはORUKA1951さんご提示の<aside></aside>に別途CSSファイルにて修飾すればよろしいでしょうか?
そうなのです。あなたが記事内の特定部分に罫線を用いて、その前後と区別したいということは、文書構造上も異なるはずです。
たとえば、本文とは直接関係しない記事である場合は、<aside></aside>で囲みますし、それが本文から参照すべき記事(--書籍で言うと参考記事とか挿絵とか--)であれば<figure></figure>で囲むでしょう。
また、それが注意すべき事項でしたら<div class="note"></div>とかでしょう。
※HTML5の仕様書では、さらにsectionの境目には書かない!!とまで書いてあります。なぜならsectionの終了で異なることが明白だからと・・。
HTML5でのHR要素は、複数の同レベルの段落が続く場合にその話題が変わるときなどに使用すると解釈が変わりました。
他にも廃止の方向だった<U>や<I>は意味が変わって存続しますし、<address><b><cite><dl><label><menu><s><small><strong>も、<hr>と同様にその用途からプレゼンテーション的なものがなくなり意味のある要素に変更されました。
あなたが、<hr>を入れようとしたところが、何であるかを見直してみてください。そうすれば正しい解決方法が見えてくるでしょう。
そうしてHTMLに文書構造だけしか書いていなければ、スタイルシートでのデザインの自由度は大きくなります。決して難しくなるわけではなく、楽になったと気づかれるでしょう。
ご回答ありがとうございます。
とても為になるお答えと思いますが、咀嚼がまだ出来るレベルではありません…。でもいつか仰る事が理解出来るようになった時、ORUKA1951さんに感謝出来ると思います。
No.4
- 回答日時:
#3 です。
> この事から言って、この表現で間違いは無いでしょうか?
「段落の区切り」を表しているならその表現で正しいと思います。
ただし、それが「段落の区切り」なのか「段落のボーダー線」なのかは内容によりますので現情報では判断できません。(#1 でも述べました)
実例を挙げられないのでしたらご自分で判断してください、としかいえません…。
ご回答ありがとうございます。
>例を挙げられないのでしたらご自分で判断してください、としかいえません…。
例としては、
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
---------------------
2001
2002
...
どんなものでしょうか?私も判断が付きません。すみません。
No.3
- 回答日時:
HTML Standard(通称HTML5)ではhr要素は「段落の区切り」を表しますので、区切りとして使用すればhr要素で間違いありません。
それが「段落の区切り」なのか「段落のボーダー線」なのかは内容によりますので現情報では判断できませんが。
hr要素は各ブロックレベル要素のborderよりも強い区切りを表しています。
論理構造上、ブロックレベル要素で区切るよりも強い区切りを表すときに使用してください。
http://www.whatwg.org/specs/web-apps/current-wor …
http://www.html5.jp/tag/elements/hr.html
HTMLは装飾を定義しないので気をつけてください。HTMLは論理構造を定義するだけです。
HTML5になってアプリケーションとしての意義が加わりましたが、装飾はHTML4の時代と変わらずCSSの役割です。
ご掲示の例ではHTML5で論理構造(段落の区切り)を定義し、CSSで装飾(水平線)を定義しています。
http://www.mozilla.gr.jp/standards/webtips0003.h …
水平線を引くだけならCSSで装飾し、対象ブラウザで同じ見え方になっていれば良く、HTMLをどうマークアップするかは重要ではありません。
HTMLで重要なのは「それが正しい論理構造として定義されているか」です。
段落の区切りではない部分にhr要素を使用していれば明らかな誤りとなります。
例えば、http://oshiete.goo.ne.jp/qa/7902457.html では回答内容を区切る為にhr要素を使用していません。
このことから「区切りを表す程には段落が分かれていない」というWeb製作者の意図が読み取れます。
think49さん、ご回答ありがとうございます。
>ご掲示の例ではHTML5で論理構造(段落の区切り)を定義し、CSSで装飾(水平線)を定義しています。
この事から言って、この表現で間違いは無いでしょうか?
hr {
height: 3px;
background-color: #ff0000;
border: none;
color: #ff0000;
}
No.2
- 回答日時:
>難しいですね。
いえ、とっても簡単になったのです。
なにせ、HTMLには文書構造しか記述する必要がなくなって、プレゼンテーションからは開放されるのです。例えば
<body>
<h1>ページのタイトル</h1>
<p>簡単な説明</p>
<nav>
<ol>
<li><a href=""></a></li>
・・・【中略】・・・
</ol>
</nav>
<sectin>
<h2>本文見出し</h2>
<section>
<h3>項見出し</h3>
<p>記事</p>
<figure>
</figure>
</section>
<sectin>
<h2>本文見出し</h2>
<section>
<h3>項見出し</h3>
<p>記事</p>
</section>
<aside></aside>
<nav>
<ol>目次</ol>
</nav>
</section>
<footer>
</footer>
</body>
だと、本当に簡単でしょう。後で誰が見ても・・検索エンジンもどこが主文でどれが無関係の記事でどこがナビかが分かる。
・・・プレゼンテーションから開放されるとHTML作りは、本当に簡単になるのですよ。
HTML4.01では
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
のように抽象的でしたから分かりにくかったのが分かりやすくなりました。
⇒HTML5 における HTML4 からの変更点( http://standards.mitsue.co.jp/resources/w3c/TR/h … )
『<hr>を水平線として装飾目的で使用するのは非推奨』は、HRに限ったことじゃないのです。すべての要素について、装飾目的での使用は禁止です。
あなたが罫線を引きたいとしたら、文書構造上は何らかの意味があるわけですから、<section>を別にするなり、<aside>でマークアップすれば良いだけです。
これって、慣れると驚くほど簡単であることに気がつきますよ。
ORUKA1951さん、ご回答ありがとうございます。
>あなたが罫線を引きたいとしたら、文書構造上は何らかの意味があるわけですから、<section>を別にするなり、<aside>でマークアップすれば良いだけです。
これはORUKA1951さんご提示の
<aside></aside>
に別途CSSファイルにて修飾すればよろしいでしょうか?
No.1
- 回答日時:
発想自体をHTML5的にしてください。
HTML5を策定するに当たって目標とされたことは
・新しい技術をプロプライエタリなソフトウェア( http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD% … )を使って実装すること
VIDEO,CANVAS要素やINPUT要素の拡張
・文書を構造化すること
HEADER,SECTION,FOOTER,FIGURE,ASIDEなどの要素の追加
HTML5にとってHR要素の意味づけは
⇒4.5.2 The hr element( http://www.w3.org/TR/2012/CR-html5-20121217/grou … )
「段落レベルのテーマの変わり目」であり、sectionの境界にはそもそも不要・・・なぜならそれ自体が境界をすでに示しているからです。上記に例と共に詳しい説明があります。
具体的には
<section>
<h2>このセクションの見出し</h2>
<p>記事の段落</p>
<p>記事の段落</p>
<hr><!-- 前後が意味的に異なる段落であるがひとつのセクションである場合-->
<p>記事の段落</p>
<figure>挿絵的な図や記事</figore>
<p>記事の段落</p>
</section>
<section>
<h2>このセクションの見出し</h2>
<p>記事の段落</p>
<aside>
<p>本文とは直接関係ない記事</p>
</aside>
<p>記事の段落</p>
</section>
の場合、<hr>が挿入可能なのは例示の通り一箇所だけです。
それ以外は、section+section{border-top:3px red solid;padding-bottom:1em;}のようにすべきです。
デザインのためにHTMLは書いてはならない!!!!
これがHTML5です。
^^^^^^^^^^^^^^^^
HRは、試されたら分かるようにある程度の大きさを持つブロック要素で、ブラウザによって描画は異なります。多分その指定ではブラウザによっては異なる表示になるはずです。
>「html5での水平線の引き方を」
>上記はhtml5に則った正しい表現なのでしょうか?
は、明らかに誤りです。
^^^^^^^^^^^^^^^^^^^^^
HTML5はすべての要素は(意味的な)文書構造を示す要素になり、文書構造を示すだけになります。プレゼンテーションは、すべてスタイルシートに任せます。
『本文中の挿絵の前後に罫線を表示したいがスタイルシートは?』
と考えないとならないのですよ。
<p>
例えば、文書中に本文に直接関係ない記事があって、その前後を罫線で分かりやすくしたいなら、
</p>
<aside>
<p>
ちょっと余談ですが、HTMLは4.01が最終による予定でした。しかし、複雑なXHTMLは受け入れられなく結局、WHATWGがW3Cに対抗して作られ始めたHTML5をW3Cが取り入れて、時期HTMLとして作られることになりました。
</p>
</aside>
だとしたら
section aside{font-size:0.9em;margin:1em;border:solid 1px blue;border-width:1px 0;}
と指定しなさい・・・ということです。
★これがHTML5の最も重要なところです。
・・・実は、HTML4.01でもそうでした
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- PHP PHP MySql ページング 2 2022/09/20 06:38
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
- 物理学 二つの光時計 2 2022/06/02 16:32
- デジタルカメラ オススメの自動水平補正機能があるミラーレスをお教えください。 3 2022/08/08 09:37
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- 数学 数学 標高zがz=x^2-y^2で与えられている地形を、点Pが水準面上で曲線(x,y)=(t,t^2 3 2023/08/03 21:52
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
複数のボタンを等間隔に、かつ...
-
<div id="container">の使いか...
-
html の divとtable の役割
-
HTML属性での「""」 「''」違い
-
オシャレな区切り線はありませ...
-
DD,DT,DDを横並び。paddingとma...
-
footerのclear:bothが効きません
-
div要素が重なってします
-
背景画像に全体または部分的に...
-
h1を親要素の縦中央、画像の横...
-
HTMLのJIS規格について
-
divとpの使いわけ
-
インラインフレームのページ内...
-
HTML5の終端タグ「 />」について
-
可変長要素を中は左寄せのまま...
-
h1に自分自身へのリンクを張...
-
[CSS]リキッドレイアウト上で、...
-
ローカルとWeb上で見え方が違う...
-
min-heightとheightの違いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
div要素が重なってします
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
ヘッダーとフッターだけ背景を...
-
html の divとtable の役割
-
<div id="container">の使いか...
-
divとpの使いわけ
-
min-heightとheightの違いについて
-
HTML5 iframe の代わり
-
divの中に外部のHTMLを埋め込む
-
3カラムレイアウトで「常に残り...
-
ヘッダーを左右に二分割する方...
-
画面を縮小するとカラムが落ち...
-
reuterのScraypingで不思議な現...
-
htmlの見出しタグ(<h1>)の次...
-
1サイト内にHTML5とXHTMLが混在...
-
inline-blockをネストすると表...
-
html5でheaderの中にnav
-
<!-- #BeginLibraryItemとは
おすすめ情報