• ベストアンサー

HTML、LEFTMARGIN属性でエラー

ホームページを文法チェックのサイトでチェックしたところ、 BODYタグの中に書いたLEFTMARGIN、MARGINWIDTHの属性でエラーになりました。 内容は、「no attribute 」とのこと。 いろいろ調べるとこの属性は汎用的ではないようです。 スタイルシートで書き換えることもできるそうですが、これはこのままだとSEO的にマイナスになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.3

leftmargin 属性は IE の独自拡張属性です。 http://msdn.microsoft.com/en-us/library/dd347070.aspx HTML 4.01, HTML Standard (HTML5) には存在しない属性ですので、一部のブラウザで動作しないと思われます。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/global.html#h-7.5.1 http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-body-element > このままだとSEO的にマイナスになるのでしょうか? SEO云々の問題ではなく、標準化されていない属性ですのでクロスブラウザが不完全なことが問題です。 CSS の margin, padding は代表的なブラウザでサポートされていますが、leftmargin 属性は IE 及び IE に追従して独自拡張してくれているブラウザしかサポートされていません。 zruzru さんのサイトが leftmargin 属性をサポートしているブラウザのみを動作対象とするならそれでも構いませんが、個人的には CSS を利用すべきケースのように思います。

その他の回答 (3)

  • think49
  • ベストアンサー率59% (285/482)
回答No.4

#3 です。 marginwidth 属性も IE の独自拡張属性ですが、この属性は frame, iframe 要素に適用できる属性で body 要素には適用できません。 http://msdn.microsoft.com/en-us/library/dd347084.aspx http://msdn.microsoft.com/en-us/library/dd347091.aspx つまり、元から無効な属性だったと思われます。 参考までに伺いたいのですが、どの文献を参考にされたのでしょうか?

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

文法チェックは ★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html )が日本語で、かつ対処方法も示してくれるので便利です。 また、最初に調べるのは ★HTML 4.01 Specification (ja) ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.html )  です。 7.5.1 BODY要素 <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->  要素  BODY 開始タグ省略可能 終了タグ省略可能 ブロック要素もしくはSCRIPT要素のみ含む INSとDEL要素はあっても良い ---文書の本体  と書かれてそのあとに 属性定義と 別途定義がある属性 が書かれていますが、ご覧のとおりLEFTMARGIN、MARGINWIDTHは含まれていません。  参考にされている書籍かサイトは、とっても古いものか、ウェブ標準とは程遠いもののようです。私も、HTMLを書き始めて17,8年になりますがLEFTMARGIN、MARGINWIDTHのような属性は知りませんでした。  一度 ★はじめてのWebドキュメントづくり ( http://www.asahi-net.or.jp/%7Esd5a-ucd/www/ )  などから、きちんと学びなおされたほうが良いと思います。上記仕様書の翻訳者の一人ですから、ただしいHTMLが学べます。  現在のウェブ標準的なHTMLでは、プレゼンテーションに関わるすべての要素、属性はHTMLでは使用しません。先の「BODY の属性定義」にはすべて非推奨と書かれていますね。HTMLは、ひたすらその文書を構成する要素に分解して、その部分がどのような構成要素であるかだけをマークアップしていきます。プレゼンテーションに関わるものは、すべてスタイルシートで行います。  SEOとは「検索エンジン最適化」の意味で、まさに文書のどの部分が見出しで、どの部分が段落で、どの部分が引用であるかを正しくマークアップされていて、検索エンジンがそのページの内容を正確に読み取ることができるかと言う意味です。結果的に、そのページが検索結果で上位に表示されることに繫がりますが、それは結果であって目的ではありません。  SEOとは、たとえば <body>  <div class="header">   <h1>タイトル</h1>   <div class="nav">    サイトナビゲーション    <ul>     <li><a href=""></a></li>     <li><a href=""></a></li>     <li><a href=""></a></li>    </ul>   </div>  </div>  <div class="section">   <h2>本文記事の見出し</h2>   <p>段落</p>   <p>段落</p>  </div>  <div class="footer">   フッタ   文書情報など  </div> </div>  と、書かれてさえいれば、googleなどは、それを理解してその文書の本文はどこに書かれているか、その内容に何が書かれているかなどを正確に読み取ることができます。それがSEOです。ここで示してdivやそのv\class名については、 「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )」あたりを読んでください。

回答No.1

SEO的にはそれほど気にする必要もありませんが、マイナスにならないと言い切ることはできません。大人しくCSSのmarginプロパティを利用してみてはいかがでしょうか。 <style> body{ margin-left: 10px; margin-bottom: 10px; } </style>

関連するQ&A