電子書籍の厳選無料作品が豊富!

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が適用されなくなったのでしょうか?
また、どうすれば適用されるようになるのでしょうか?

よろしくお願いします。

A 回答 (3件)

<!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>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

回答ありがとうございました!
勉強になりました。

ちなみに、発生していた問題の原因は色々いじっているうちに治りました。何が原因だったのかはわかりませんでした…。

お礼日時:2013/08/20 21:04

こんにちは。



style="height:960;"
ではなく
style="height:960px;"ではないでしょうか。


こちらを参考にしてみてください。単位が必要です。
http://w3g.jp/others/data/doctype_switching
    • good
    • 0

BBrauzaは、何を使っていますか?


CSSには、高さでけの指定しかしていませんが???

基本的な記述をマスターしていますか???
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!