下記のアドレスのホームページについてです。
http://sky.geocities.jp/thanksv0358/index.html#
HTMLで、
<body>
<div id="main">
~
</div>
</body>
とし、CSSで
#main{
text-align:center;
margin-left:auto;
margin-right:auto;
text-align:left;
}
としたにもかかわらず、何故かセンタリングができません。
今回、最初の<!DOCTYPE~の部分から全部、自分で書いてみました。
詳しい方がいましたら、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
HTMLを書いたら、まずAnother HTML Lintなどでチェックしておきましょう。
HTMLが間違っていると、期待したスタイルが適用されません。
★さすがに、今日この頃---strictで作成しましょう。Transitionalやframesetは使わない。
「HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」---1999年勧告
HTMLにとても多くの間違いがあります。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<mata>じゃなくて<meta>です。
※text-alignはテキストの配置です。ブロックは配置されません。(IE6にはバグもmargin:0 autoでは中央になりませんから、昔はやむなく、IEのバグtext-alignでブロックが中央に配置されてしまうを利用していました。
[HTML4.01strict+CSS2.1]
★ウィンドウ巾に関わらず常に中央に表示されます。subsectionはスマホなど小さなディスプレイでは縦に並びます。
★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
でチェック済み
タブは_に置換してあるので戻すこと。
#mainとかleftとかrightは使うべきじゃありません。先で左右を変えてくなったらどうするのですか?
<!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>サンプル0</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;}
body{background-color: #FF99CC;}
div.header,div.section,div.footer{
width:70%;margin:0 auto;min-width:0;
}
p.pr img{width:100%;height:auto;display:block;}
div.section div.section{width:50%;float:left;min-width:200px;}
div.footer{clear:left;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>大見出し</h1>
__<p>四季折々の品をお届けします。</p>
__<p class="pr"><img src="/images/1.jpg" width="787" height="300" alt=""></p>
_</div>
_<div class="section">
__<h2>What's New</h2>
__<ul>
___<li>12/11/07 モダン特集のページを追加しました。</li>
___<li>12/11/01 ラテン特集のページを追加しました。</li>
___<li>12/10/24 ポイントレッスンを追加しました。</li>
___<li>12/09/16 写真を更新しました。</li>
___<li>12/08/30 「ポジションについて」を更新しました。</li>
__</ul>
_</div>
_<div class="section">
__<h2>今月のおすすめ</h2>
__<div class="section">
___<h3>見出し3</h3>
___<p>「ウォーク」集中レッスン期間</p>
___<p>体重をしっかりと移動させましょう。</p>
___<div class="section">
____<h4>フィガー</h4>
____<ul>
____<li>オープン・ヒップ・ツイスト</li>
____<li>アイーダ(フォールアウェイ)</li>
____<li>アドバンスド・ヒップ・ツイスト</li>
____<li>クカラチャ</li>
____<li>ロープ・スピニング</li>
____<li>フェンシング</li>
____<li>リバース・トップ</li>
____<li>オープニングアウト・フロム・リバース・トップ</li>
____<li>キューバン・ロックス</li>
____<li>サイド・ステップ</li>
____<li>オープニングアウト・トゥー・ライト・アンド・レフト </li>
____</ul>
___</div>
__</div>
__<div class="section">
___<h3>見出し3</h3>
___<p>しっかりとリズムに乗りましょう。</p>
___<div class="section">
____<h4>フィガー</h4>
____<ul>
_____<li>クローズド・チェンジ</li>
_____<li>ナチュラル・ターン</li>
_____<li>リバース・ターン</li>
_____<li>コーナー・チェンジ(チェック・バック)</li>
_____<li>アウトサイド・チェンジ</li>
_____<li>ヘジテーション・チェンジ</li>
_____<li>ナチュラル・スピンターン</li>
_____<li>ウィスク</li>
_____<li>バック・ウィスク</li>
_____<li>シャッセ・フロム・PP</li>
_____<li>ベーシック・ウィーブ </li>
____</ul>
___</div>
__</div>
_</div>
_<div class="footer">
__<address>© Copyright (c)2012 TITLE. ALL Right Reserved. mailto:*****</address>
_</div>
</body>
</html>
No.1
- 回答日時:
なぜ、今さらTransitionalなのでしょうか?
ま、いいんですけどね。Transitionalを宣言したのですから、Transitionalにあわせて間違ったcssを書く必要があります。改善点は2点です。
●1点目(わざと間違えよう!)
センタリングでのTransitionalの特徴にブロック要素をインライン要素同様にtext-alignが効く間違った仕様と、正しくはブロック要素のセンタリングに効くはずの左右のmargin:autoが効かないという仕様があります。
thanksv さんの指定では有効なのはbody{だけで、#bodyは示されたページでは全く無効です。
body{
background-color:#ff99cc;
}
#body{/*●ここはまったく効いていない●*/
text-align:center;
margin-left:auto;
margin-right:auto;
text-align:left;
}
下記のように有効な箇所に間違っているのを承知で「text-align:center;」を加えてください。
body{
background-color:#ff99cc;
text-align:center;
}
●2点目(こちらは正しいセンタリング)
ブロック要素へのセンタリングは正しくは左右のマージンをautoにすることと同時に横幅を決めることが必要です。横幅を決めないと初期値100%が効きますので、left・rightが横幅一杯に配置され、センタリングが効いていないように見えます。例:80%なら左右に10%ずつ振り分けられます。70%なら、左右に15%ずつ……と横幅を決めないとブラウザもセンタリングしようがありません。幅によって位置が変わります。
#main{
text-align:center;/*蛇足ですが、これも効いていません。理由はleftに負けています。消されてはいかが?*/
margin-left:auto;
margin-right:auto;
text-align:left;/*蛇足ですが、これが有効です*/
width:600px;/*●ここを追加。横幅を決めます。pxでも%でも好きな幅を指定してください*/
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<table>の高さ固定。情報増加時...
-
「・」(黒い点)を非表示にした...
-
リストマーカーをボックス内に...
-
liタグの中に<p>タグやら<dl>を...
-
display:table;を多段表示させたい
-
画像横のテキストをセンターに...
-
ol要素の番号とリスト項目の離...
-
HTMLで組織図を作成する方法
-
<ul><li></li></ul>にするメリ...
-
リストを2つに分割して、それぞ...
-
<ul>と<li>リストマークを消す...
-
親ページ側からインラインフレ...
-
html <li>の中の文字一部に色を...
-
HTMLで画像を3つ並べる方法
-
複数行にまたがる括弧を表示し...
-
レスポンシブWebデザインでリン...
-
ulとliで囲った文字の一部を変...
-
<ul>~</ul>が二つ続くと間に改...
-
番号付きリスト(<Ol><Li>・・...
-
横並びのボタンの背景を片方だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
番号付きリスト(<Ol><Li>・・...
-
liタグの中に<p>タグやら<dl>を...
-
レスポンシブWebデザインでリン...
-
<table>の高さ固定。情報増加時...
-
<ul><li></li></ul>にするメリ...
-
リストの数字のフォントサイズ...
-
HTMLで組織図を作成する方法
-
ulタグやliタグの中でbrタグ...
-
divタグ内のコンテンツが重なっ...
-
画像にリンクを張ると画像がず...
-
複数行にまたがる括弧を表示し...
-
ページを開いているときのリン...
-
html <ul></ul>の並びで一行空...
-
html/cssの、navを2段にする...
-
HTML5のfooterに見出しを付けて...
-
<ul>~</ul>が二つ続くと間に改...
-
htmlの<ol>タグで、数字などを...
-
リンク文字同士の間隔を開ける...
-
CSSでつくったメニューのアニメ...
おすすめ情報