
CSSで、全体を中央寄せにしつつ、全ての文字を左寄せにする方法を教えてください。
bodyにtext-align: centerを設定し、
#outline{
width:1200px;
margin-right:auto;
margin-left:auto;
text-align:left;
}
.content{
float:left;
width: 1200px;
}
と書き、<div id="outline"><div class="content">で全体を囲みました。
すると、大方できたのですが、h要素のみずれてしまいます。
(h1は全体に対する左寄せ、h2は全体に対する中央寄せとなってしまいました・・・)
h要素は色とフォントサイズを指定したのみです。
CSSについて自体あまり詳しくないので、なぜこうなってしまっているのかわかりません。
どのようにすれば、他と同じく中央左寄せにすることができるでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
body{text-align:center;}
#outline{text-align:left;}
.content{float:left;}
は、CSS2.1(ベンダーが標準とみなしている仕様)だと
body{text-align:center;}/* text-align:継承される 詳細度は0001 */
*#outline{text-align:left;}/* text-align:継承される 詳細度は0100 */
*.content{float:left;}/* float:継承されない 詳細度は0010 */
といういみですね。*は全称セレクタで詳細度0
このCSSにて、H1が左寄せ、H2が右寄せになるということは、H1は*#outlineにあることですね。ということは、
#outlineの内部にH1があるということです。
<body>
<div class="article">
<div class="header" id="outline">
<h1>見出し</h1>
</div>
<div class="section" id="content">
本文
<div id="tableConten">
目次
</div>
</div>
<div class="footer2>
文書情報
</div>
</div>
</body>
なら、
div.article{
width:80%;
max-width:1200px;
margin:0 auto;
}
だけでよい。
★CSSの最も根幹を成すのは、プロパティではなくカスケーディングです。カスケーディングスタイルシートと言われている。カスケーディングとは、スタイルの出自、詳細度、継承、優先順位で定まります。それをきちんと理解しなければ、#outline,.contentのようなIDやclass名のみならず、要素すべてにidやclass名をつけたり、不要なdivを撒き散らすことになります。そのうえ期待したようにならない。
bodyという、もっとも上位のブロックで、継承されるプロパティをbodyというタイプセレクタで指定してますから、その子孫すべてに、原則は適用される。ついで、<div class="content">を*.content{}という、全称セレクタ(* -詳細度0000)+クラスセレクタ(. 詳細度0010)で指定している(詳細度0010)が、その中ではtext-alignを指定していれば、それが詳細度が高いので優先されるが、指定していないので継承値が使われていると言うことです。
bodyのtext-alignを外すか、より詳細度が高いセレクタで改めてtext-align:leftを指定すればよいだけです。
bodyにtext-alignを指定するのは好ましくありません。CSSが煩雑になります。IE5用の対応だと思いますが、止めても良い。
デザインのためにclass名をつけるのは止めましょう。class名やidは、
【引用】____________ここから
DIV要素・・・【中略】・・・は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[仕様書( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
であって、それを使ってデザインはするけど、デザインのためにつけるものではない。
★スタイルシートを学ぶなら、プロパティは後回しにして、何よりも先にカスケーディングを先に確実に学びましょう。
6. 値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
No.1
- 回答日時:
え~っと、 body の方は何も弄らない様にして。
基本的にはdiv の方に色々と設定してデザインする方向性で考えます。━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta charset="UTF-8" />
<title>TEST</title>
<style type="text/css" media="screen" id="my-style">
/*<![CDATA[*/
div.main-content
{
margin: 0 auto 0;
width: 1200px;
}
div.main-content h1,
div.main-content h2,
div.main-content p
{
text-align: left;
}
/*]]>*/
</style>
</head>
<body>
<div class="main-content">
<h1>OKWaveは素敵な質問箱</h1>
<h2>OKWaveは素敵な質問箱</h2>
<p>OKWaveは素敵な質問箱。</p>
</div>
</body>
</html>
━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━
~以上、だいたいこんな感じOKのはず?作例はHTML5に準拠してます。
P.S.
h 要素がおかしくなるって事は、何かおかしくなる様なCSSを設定してるって事です。余計な事をしていないのなら、そもそもほとんどのタグ要素は初期設定が左揃え(text-align:left;)になっているので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSS position: relativeについて
-
セルの高さが変化しない(ワー...
-
divでくくった中の要素にa link
-
個別にリンクの色を変える方法
-
idの中のid指定
-
dreamweaverのコード画面で波線。
-
[HTML] selectの線を非表示に...
-
同じid属性を何回も使ってはい...
-
clear bothで回り込みがうまく...
-
記事タイトルの横にコメント数...
-
htmlの文字が縦書きになる
-
floatを含むブロック
-
ホームページのCSSとスパム...
-
段組でfloat:leftとfloat:right...
-
CSSでテーブルを使わずにレイア...
-
borderについて2つの質問
-
CSSについて。このサイトの背景...
-
リストに画像入れると
-
divタグ内のコンテンツが重なっ...
-
スタイルシートでのメニュー作成で
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
個別にリンクの色を変える方法
-
idの中のid指定
-
サイトにjQueryが使用されてい...
-
liリストタグの背景色に色がつ...
-
brにクラスをつけてcssでdispla...
-
HTML要素のid/class名の長さに...
-
inputタグのテキストBOXだけ右...
-
リンク文字の 一部だけ色を変...
-
CSSのクラス名・ID名の指定でワ...
-
特定の見出しのみ前後の空白を...
-
同ページ内でリンクの色を変え...
-
スタイルシートで、id属性の中...
-
[HTML] selectの線を非表示に...
-
CSSの適用を一部だけ除外したい。
-
HP作成(ワッパーを中心に)
-
<span>で2重にかけているものを...
-
オンマウス時の背景色を個別に...
-
Bootstrap 訪問済みテキストリ...
-
最近、HTMLのヘッダーをIDで定...
-
子孫セレクタの読み方をおしえ...
おすすめ情報