

質問1.
divタグ内に直接文字列を書いた場合と、divにpを入れ子にして
そのpタグ内に文字列を入れた場合の、意味の違いはありますか?
但し、CSSで
*{
margin:0px;
padding;0px;
}
として、全てのタグのデフォルトの余白をリセットしているのが条件です
質問2.
それとdiv内の文字列の垂直方向のセンタリングについて。
******************************************************************************
質問1の内容(入れ子の意味について)
<div>あいうえお</div>
と
<div>
<p>あいうえお</P>
</div>
これって、CSSで子孫セレクタや限定セレクタを利用するか、
基本セレクタでPタグを定義し、それを利用する以外に
わざわざ入れ子にする意味はないですよね?
******************************************************************************
質問2の内容(div内の文字列の垂直方向のセンタリング)
<div class="style">あいうえお</div>
** CSS **
.style{
height: 50px;
width: 200px;
border: 1px solid #666666;
line-height: 50px; ←ここ!!これしか縦方向の中央寄せできないの?
}に
vertical-align: middle;だと 駄目なんですよね。。
で、ネットあったのが、divの高さ50pxに対して、line-height: 50px;
を指定すると、よくわかんないけど垂直方わ向中央にはくるんですけどね。。
これしか方法はないんでしょうか?
divの中にわざわざtableを入れて、縦方向にセンタリングもありえますが、そんなの
する人いないだろうし。どんなもんでしょうか?
よろしくお願いします!
No.4ベストアンサー
- 回答日時:
>これって、CSSで子孫セレクタや限定セレクタを利用するか、
>基本セレクタでPタグを定義し、それを利用する以外に
>わざわざ入れ子にする意味はないですよね?
それはdivに対しては言えますが<p>に関しては言えません。根本的な部分を理解されていないようです。
<p>はparagraph(段落)であることをマークアップするタグです!!HTMLは、文書の構造をマークアップする言語です。<div>なんたらかんたら</div>は、divは汎用ブロックと言い、もっぱらCSSで使用するためのマークアップと言ってよいでしょう。
【引用】____________ここから
DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 各々、内容が行内であるか(SPAN)ブロックレベルであるか(DIV)は定めるが、他のプレゼンテーション的語彙を示すことはない。 従って著者は、この両要素をスタイルシートやlang属性等と併用することで、HTMLを自身の必要や好みに応じられるようにできる。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
したがって<div>なんたらかんたら</div>と書いても文法上(下記参照)はエラーにはなりませんが、HTMLの趣旨からは逸脱しています。
<!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
^^^^^^^何でも入る。
<!ELEMENT P - O (%inline;)* -- paragraph -->
^^^^^^^^^^行内要素のみ
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
^^^^^^ブロック要素は入るけどinline要素はおけない
・・・divは言外にbodyと同じ意味を持つと考える方が良いです。
>vertical-align: middle;だと 駄目なんですよね。
vertical-alignは行ボックス内のインラインブロックのためのプロパティです。
【引用】____________ここから
このプロパティは、行ボックス内における、インラインボックスの垂直方向の位置を指定する。 以下の値は、親インライン要素、あるいは匿名インラインボックスを生成する親ブロック要素を参照できる場合にのみ意味を持つ。
そのような親を持たない要素に対しては何の効果も無い。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[視覚整形モデル詳細( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )]より
No.5
- 回答日時:
> divタグ内に直接文字列を書いた場合と、divにpを入れ子にしてそのpタグ内に文字列を入れた場合の、意味の違いはありますか?
HTMLの論理構造とCSSの視覚効果は分けて考えてみてください。
divは「グループ化」
pは「段落」
の意味があります。
divはあまり意味のない要素ですが、pには段落という重要な役割があるので異なりますね。
> vertical-align: middle;だと 駄目なんですよね。。
display: table-cell; で使えます。
(※全角空白は半角空白に置換してください)
-------
<style type="text/css"><!--
.test {
display: table-cell; /* 要IE8+ */
vertical-align: middle;
height: 50px;
border: solid 1px #ccc;
}
--></style>
</head>
<body>
<p class="test">あいうえお</p>
-------
視覚整形モデル
http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 …
No.3
- 回答日時:
>質問1
pは段落のタグですがdivはそのままでは意味を持ちません。
なので、divの中にp要素がある場合は中のテキストは一つの段落という意味が与えられます。
もしもdivの中にテキストを書いた場合はタグとしての意味は付加されません。
>質問2
高さが50pxで固定ならばline-heightが一番安定します。
もしも高さがコンテンツごとに可変するような場合はheightやline-heightを使用せず、上下のpaddingを指定して中央に寄っているように見せかけることができます。
No.2
- 回答日時:
質問1
div は『入れ物』だし、p は『段落』。たとえブラウザの表示が同じだとしても、その表す意味が全く違います。こんな質問をするという事はそれぞれの要素の意味を全く理解していないのでしょう。htmlの要素は文書の論理構造を表す為に使用するものです。見た目の為に使用するものではありません。
↑これが理解できないと SEO 的なコーディングがいつまでたっても身に付かない。
質問2
CSSで縦方向のセンタリングをブロックレベル要素に指定する方法は残念ながらありませんね。例としてあげた line-height を利用したり、 padding で指定するなどの代替方法を用いるしかないでしょう。
No.1
- 回答日時:
質問者は、きっと若年HTMLコーダーの方か、素人の方かと思います。
>わざわざ入れ子にする意味はないですよね
それは、あまりにも固定観念を持ちすぎています。この発言だと、デザインのみを意識しての発言かと。
もちろんデザイン的にも違いますよね。
あなたのような使い道しかないのならなぜタグ名が違うのでしょうか?
当初から使い道が違うからです。HTMLでのタグ名はフォーマットを意識して作成されています。これはDOMから見ると良く分かります。使えるメソッド、プロパティ、効果が違ってきます。DOMはフォーマットを意識していません。DOMは階層構造であり、そのしきたりを守れば、フォーマットを無視してどんな構造にもできます。
たぶんその事を指しても、言っているのかもしれませんが、
DIV=入れ物、P=段落です。段落とは、入れ物じゃないですよね。DIVは文書フォーマットとは関係なく作成された、どちらかと言うとSGML(XML)的なタグです。
入れ物なので、使い方は人それぞれ。例えば、風呂敷みたいなものです。一枚の布が、箱としても、封筒としても、包み紙としても(プレゼント用の)、いろんなものに変化しますね。
使い道はあなたしだいです。
たぶん、あなたはサーバーサイドプログラムをほとんど経験していないでしょう。特に業務アプリとしてのWebデザインをした事の無い方は、ちょっと理解するのは難しいかもしれません。
”DHTMLとは”
で検索してみてください。それでマイクロソフトのHTMLリファレンスサイトを除いたら、すべて解決します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
質問1.
-
既婚男女の方、結婚前と結婚後...
-
改行ほどは行かないけど、若干...
-
CSS:overflow要素の印刷について
-
smallにtext-allignが効かない
-
DTDや文字コードの解釈が間違っ...
-
aの中にspan
-
含む含まないという概念自体の...
-
文字とリンク線の間隔について
-
CSSで改行後の行間調整
-
html タグの閉じスラッシュ前の...
-
INPUT TYPE ・・・
-
figcaption要素の中にul要素
-
HTMLでTextareaを横に2つ並べ...
-
【CSS】☆を子に持つ親の指定
-
下線と文字の間を調整するには...
-
Pythonについて教えてもらいた...
-
<H>タグの見出しと<P>タグの本...
-
tdに対してmin-heightの定義、...
-
C言語 並び替え(配列)について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
含む含まないという概念自体の...
-
角丸画像の背景色を透明にした...
-
改行ほどは行かないけど、若干...
-
input type="hidden"で取得した...
-
CSSで改行後の行間調整
-
質問1.
-
smallにtext-allignが効かない
-
テキストボックスの中にリンク...
-
CSS:overflow要素の印刷について
-
【ヒトの神秘】美男美女から何...
-
aの中にspan
-
textareaの幅を画面と合わせたい
-
HTML の繰返し法???
-
html タグの閉じスラッシュ前の...
-
HTMLページ上でiframeを最前面...
-
下線と文字の間を調整するには...
-
figcaption要素の中にul要素
-
メールアドレス(グループ)の...
-
emとstrongの反対
-
ある要素の中身を全部グレーア...
おすすめ情報