![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
webサイト作りの初心者です。
初め、ドキュメントタイプ(DOCTYPE)の宣言を書かずに<html>タグからコードを書いていたのですが、
全体がある程度形になってから、1番上に
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
を追加し、<html>を
<html xmlns="http://www.w3.org/1999/xhtml">
に変えると、デザインが変わってしまいました。
具体的には、
<div style="height:960;">~</div>
と書いて作っていたブロックの高さが、
DOCTYPE宣言を書く前はちゃんと960になっていたのですが、
書いた後は、中に入っているコンテンツ(テキスト)の高さまで縮み、style部分の数字をいくらいじっても変わってくれません。
他にも、style属性のmargin-leftなどが適用されなくなっていました。
なぜ、DOCTYPEの宣言をするとstyleが適用されなくなったのでしょうか?
また、どうすれば適用されるようになるのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …標準モードですね。
そして使われているブラウザはインターネットエキスプローラ(IE)ですね。
IEは、ユーザーの取り込みと競合ブラウザの追い落としのために、独自のスタイルシートの解釈をしていました。そして、そのためにウェブ標準の仕様にあわせることが他のブラウザよりも遅れました。(せっかく古いIE用に作られたページが利用できなくなる)
他のプログラムで扱うなどの必要がなければ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
ではなくて
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
として、HTML4.01strictで作成することにされたら良いでしょう。
『HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』1999年HTML4.01strict
そして、次期HTML5はHTML4.01strictの改定になります。
・XHTML1.0 transitinalは、同様に推奨されていません。
・XHTMLで作成する場合でもstrictにしましょう。
その上で、スタイルシートも書き直すと良いです。互換モードと標準モードの大きな違いは、
・ブロックのサイズの解釈
標準モードではpadding辺の内側です。
・text^align:centerではブロックは中央に来ません。
などたくさんあります。
なお、
<div style="height:960;">~</div>
でスタイルが適用されないことはありません。HTML要素のstyle属性に書かれたスタイルは詳細度が[1,0,0,0]となり、他の部分で書かれたすべてのスタイルを上書きします。ただし、著者やユーザーが!important宣言されている場合を除く。
文法的な間違いがあるため、この部分のHTMLが解釈されていないと思われます。
⇒Another HTML-lint 5 ( http://www.htmllint.net/html-lint/htmllint.html )
の右上のDATAタブをクリックしてソースを貼り付けて見ましょう。
★サンプル HTML4.01strict
タブは_に置換してあるので戻すこと!!!
▼<DOCTYPE宣>の有無でIEによる表示の差をチェックすること
▼他のブラウザ、firefox,Chromeなどでチェックしてみる。
<!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">
<!--
body{background-color:gray;}
div.header{background-color:yellow;border-color:orange;}
div.section{background-color:white;border-color:silver;}
div.footer{background-color:aqua;border-color:blue;}
html,body{margin:0;padding:0;}
div.header,div.section,div.footer{width:400px;margin:0 auto;padding:20px;border-width:30px;border-style:solid;}
div.section{height:400px;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>黄色い部分の幅が400px+40px、</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>ここに自由な長さの文章を入れてみる</p>
__<p>本文(section)の高さは400px + 40px</p>
_</div>
_<div class="footer">
__<address>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
回答ありがとうございました!
勉強になりました。
ちなみに、発生していた問題の原因は色々いじっているうちに治りました。何が原因だったのかはわかりませんでした…。
No.3
- 回答日時:
こんにちは。
style="height:960;"
ではなく
style="height:960px;"ではないでしょうか。
こちらを参考にしてみてください。単位が必要です。
http://w3g.jp/others/data/doctype_switching
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ASP・SaaS FC2 BLOG <AUDIO TAGを入れプレビューはOk テーンプレートを更新すると ✖ 1 2023/08/14 11:40
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
(Javascript)印刷するファイル...
-
テキストをクリックすると答え...
-
ハイパーリンクに下線を表示す...
-
firefoxでブラウザ確認すると左...
-
別ページのページ内リンクでの...
-
bodyにwidth:100%をつける理由は?
-
テキストボックス内にハイパー...
-
ページの読み込みが完了してか...
-
<a href="#" …>の意味を教えて...
-
スマホ上で、左右スワイプで次...
-
idHOGEで取得したinnerText(数...
-
リンクにマウスポインタをおく...
-
SCRIPT5007: 未定義または NULL...
-
別ファイルのfunctionの読み込み方
-
ScriptがTABLEタグの中に表示さ...
-
相対パスと絶対パスの速度
-
datepickerで日付の値を取得したい
-
外部からのjs呼び出しについて。
-
cssにjavascriptを入れる?呼び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
テキストボックス内にハイパー...
-
(Javascript)印刷するファイル...
-
ハイパーリンクに下線を表示す...
-
bodyにwidth:100%をつける理由は?
-
WEB上で編集できない、スク...
-
ワンクリックで二箇所に表示さ...
-
スクロールバーのスクロール量...
-
横スクロールを右から左へ・・・
-
テキストをクリックすると答え...
-
bodyタグの範囲について
-
ページの読み込みが完了してか...
-
「overflow: hidden」ペー ジ内...
-
"mailtoでメールの【氏名】【性...
-
外部ページからハッシュタグ(...
-
DOCTYPE宣言をするとstyleが適...
-
mailtoで質問・・・
-
IE以外は色が付かない なぜ?
-
javaScript Nullまたはオブジェ...
-
divで作成したテキストボックス...
おすすめ情報