• ベストアンサー

body内にstyleやscriptの記述

こんにちは、 スマートフォンでも見れるサイトを作っているのですが <body>内に <style>や <script type="text/javascript"> $(function() { を入れてますが、文法的に正しいでしょうか? (bodyの上に書いたほうがいい?) 合IEではみれますが、 ほかのスマートフォンなどでみれるか心配でして。

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

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

スクリプトはどこでもいいというか、 document.writeする時はその位置に書き込まれるし 対象のDOMより前に書くと起動時にはそのDOMを読み込めなかったり 動作が変わるので適切な位置に書くべし どこに置いても動作が変わらないものであればどこでもいいけどheadにまとめるのが普通 ただしそのスクリプトの動作が終わるまでページが表示されず固まるから そのあたりは臨機応変に置く場所変えたり外部ファイルなら属性追加したりすること スタイルもどこでもいい 基本どこでもいいけど読み込まれるまでスタイルが適応されないからbodyより上に置くのが無難 ただしscopeスタイルなんかはおいた場所で意味をもってくるから そういうのも必要に応じて適当な場所におけばいい

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

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

 ⇒Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )  ⇒The W3C Markup Validation Service( http://validator.w3.org/#validate_by_input ) などで文法チェック  仕様書は必ず目を通しましょう。 7.5.1 BODY要素 <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->   ⇒7.5.1 BODY要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#edef-BODY )  %block;( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/sgml/dtd.html#block )についてはリンク先を・・・  link要素は%blockではありませんし、<head></head>内にしかかけません。  ブラウザは、文法が間違っていても表示するようにすることが仕様でも求められていますが、それに期待するのではなく、著者は文法に従わなければなりません。なぜなら、文法に合致してない場合にブラウザが行う独自解釈はブラウザによって異なるからです。

全文を見る
すると、全ての回答が全文表示されます。
noname#206842
noname#206842
回答No.2

<body>要素は、ページ全体をあらわします。 言われているのは<head>要素内のことですよね!。 htmlは、本来文章構造を記述するための、テキストファイルです。 CSSは、ページの装飾を、記述するための、テキストファイル。 Scriptは、ユーザーサイドで、何らかの処理をさせるために記述するものです。 いずれも、<head>要素内に記述する方法と、外部に記述したファイルを読み込むことが可能です。 パソコンで見る場合と、スマートホン、あるいは携帯で見た場合、内容は同じであっても、閲覧者の環境に合わせた、 表示でなければ意味がないことは、ご存知だと思います。 察するところ、ResponsiveLyoutでの記述が必要なのでは?・・・ 下記参照URLのような、Frameworkをお勧めします。

参考URL:
http://twitter.github.com/bootstrap/
全文を見る
すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

HP内の、その場所に表示するスクリプトならば、当然BODYですが、 どこにも出てこないものはHEADにまとめたらいかがですか? エラーにはなりませんが

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • scriptを2つ動かすために

    ライトボックスと、時間が経つとNEWマークが自動で消えるスクリプトを2ついれました。 すると、NEWマークの方だけが稼動して、ライトボックスが動きません。 自分で調べた結果、統合しないといけないというのはわかったのですが、やり方が…。。。 お力ください!(>_<) <!-- NEWマーク▼ --> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.newmark.js"></script> <script type="text/javascript"> /* <![CDATA[ */ $(document).ready(function(){ $(".newmark").newmark({ past: 240, icon: "<img src='images/new.gif' alt='new'>" }); }); $(document).ready(function(){ $(".newmark2").newmark({ past: 240, icon: "<img src='img/new2.gif' alt='new'>" }); }); /* ]]> */ </script> <!-- NEWマーク▲ --> <!-- #header ライトボックス --> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> <style type="text/css"><!-- #outerImageContainer { -moz-border-radius-topleft:10px; -moz-border-radius-topright:10px; } #imageDataContainer { -moz-border-radius-bottomleft:10px; -moz-border-radius-bottomright:10px; } --></style> <style type="text/css"> a:link {text-decoration:none;} a:visited {text-decoration:none;} a:active {text-decoration:none;} a:hover {text-decoration:none;} </style> <!-- #header ライトボックス -->

  • これは何をするスクリプトですか?

    <head> <script type="text/javascript"> <!-- function loading() { if (document.getElementById){ document.getElementById('load').style.visibility = 'hidden'; } else { if (document.layers){ document.layers['load'].visibility = 'hidden'; } else { document.all('load').style.visibility = 'hidden'; }}} // --> </script> </head> <body onload="loading()"> 詳細は略して書いています。 プログラムに全く詳しくないので、何をやろうとしているスクリプトなのかわかりません。 皆様には簡単かとは思いますが、よろしくお願いします。

  • <SCRIPT TYPE="text/JavaSc

    <SCRIPT TYPE="text/JavaScript"> <!-- function chgImg(a,b){ a.src = b } // --> </SCRIPT> の文法はおかしいですか? // -->の部分だけ色が違う理由を教えてください。

  • 二つのJava Scriptを使うと動かない

    現在ウェブサイトを制作中ですがJavascriptについては配布されている物を設置すること位しかできません。 ウェブサイトの特徴として、横スクロールサイトであり、どうしてもギャラリーを設置したいのです。 横スクロールの為に <script type="text/javascript" src="jquery-1.6.2.min.js"></script> <script type="text/javascript" src="jquery.easing.1.3.js"></script> <script type="text/javascript"> $(function() { $('ul.nav a').bind('click',function(event){ var $anchor = $(this); $('html, body').stop().animate({ scrollLeft: $($anchor.attr('href')).offset().left }, 1500,'easeInOutExpo'); //easeInOutExpoはeasingプラグインから選べます event.preventDefault(); }); }); </script> とし、 マウスの上下スクロールで左右の動きをさせるために <script type="text/javascript" src="vscroll.js"></script> を置いてました。 この時点で動作は正常だったのですが、 ギャラリーが必要なため、lightbox <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> を置くと横スクロールとlightboxの動きができなくなり、レイアウトも崩れました。 どなたか詳しい方がいらっしゃいましたら、ご教授いただけませんでしょうか。 またlightboxにはこだわらないので、横スクロールサイトでギャラリーを設置できる方法がありましたら、教えてください。 ちなみにCSSでモーダルウィンドウを設置してみたのですが、横スクロールということもあり、Firefoxで正常に見る事ができませんでした。(サムネイル画像をクリックすると一番左に戻る) よろしくお願いします

  • BODYタグのonloadについて

    こんにちは。 HTMLのBodyタグにて、onload処理を記述しているのですが、 不思議な現象が起きます。。。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title></title> <script language="JavaScript" type="text/JavaScript"> <!-- // 初期表示 function init() { alert("AAA"); var formObj = document.getElementById("starter"); alert("formObj.action = " + formObj.action); formObj.submit(); } //--> </script> </head> <body onload="init()" tabindex="-1"> Now Loading... <form method="post" name="starter" action="/getIchiran.do" > <% System.out.println("このJSPにきてますか?"); %> </form> </body> </html> 上記のように記述しているのですが、 onloadのinit関数が、呼ばれる場合と呼ばれない場合があります・・・ 呼ばれる場合と、呼ばれない場合でも 「このJSPにきてますか?」のログは表示されているので、このHTML(JSP)は呼ばれている模様です。 どうしてこうのような現象が起きるのかさっぱり分からなくて・・・ 何が悪いのか教えて頂けないでしょうか? 宜しくお願い致します。 IEは6.0、 OSはWindowsXPです。

    • ベストアンサー
    • HTML
  • スタイルシートの記述について

    例えば、文字を黒く、背景色を白くしたい場合ですが、どちらの記述が正しいですか? (1)は兄が教えてくれたタグの書き方で、(2)はネットで見かけたタグ(CSSについて説明していたサイト)の書き方です。 カッコの違いが気になっています。 ネット検索をしたところ、(2)の形で書かれているほうが多かったです。 今は『<!-->』は、もう古かったりなどして使わない形なのでしょうか。 それとも(2)の『{}』のみの形はCSSとして使う場合なのでしょうか。 (1) <style type="text/css"> <!--P{color:#000000;}--> <!--BODY{background-color:#ffffff;} </style"> (2) <style type="text/css"> p{color: #000000;} body{background-color:#ffffff;} </style">

  • JSの記述を別ファイルに移す

    下記のHTML内の <script type="text/javascript">~</script> をtest.jsとして別ファイルに移す場合にどのように、記述するればよいのでしょうか。単純にコピペしたのですがうまくいきません。 初歩的だとは思いますが、ご指導をお願いします。 --------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/Draggable.js"></script> </head> <body> <div id="test1" class="test"></div> <div id="test2" class="test"></div> <script type="text/javascript"> var test1 = new Draggable("test1"); var test2 = new Draggable("test2"); </script> </body> </html>

  • スクリプト同士がケンカ?

    初めまして。 HTML CSSを若干触れるものです。 サイトを制作していまして、 一部にlightboxをスクリプトタグで表示させていたのですが 新たに違うスクリプトタグ(トップ画像の上を画像がふらふら動くイメージのため) によって打ち消されてしまい、lightboxの効果がなく、新しいタブで画像を開いてしまいます。 こちらがjugemで用意されたlightboxタグです。 <script type="text/javascript" src="http://js.jugem.jp/prototype/1.6.0.3/prototype.js"></script> <script type="text/javascript" src="http://js.jugem.jp/script.aculo.us/1.8.2/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="http://js.jugem.jp/Lightbox/2.04/js/lightbox.js"></script> ここからが後から入れたタグです。 <script type="text/javascript"> $(function() { var bg1 = $('#main-img'); var speed = 3000; cloudMove(); setInterval(cloudMove, 6000); function cloudMove(){ bg1 .animate({backgroundPosition:'30px'}, speed) .animate({backgroundPosition:'0'}, speed); } }); </script> これらは一緒に効果を出す事は可能でしょうか? よろしくお願い致します。

    • ベストアンサー
    • HTML
  • スタイルシートが実行できません・・・

    HPを作っています。 下記の通りにCSSを組み込んだのですが、実行されません。ちなみにただの画像とテキストだけのページに同じCSSを組み込みましたら、実行されました。 原因がわかりません。 Javascriptと何か関係があるのでしょうか? ------------------------------------------- <head> <title>タイトル</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <style type="text/css"> <!-- body{ color:#444444; background-attachment:fixed; font-family:"MS UI Gothic"; font-size:8px; } --> </style> <SCRIPT LANGUAGE="JavaScript"> <!-- function new_win6(){ myWin=window.open("album1.html","","width=300,height=200"); } function win_close(){ myWin.close();} //--> </SCRIPT> </head> -------------------------------------------- ご存知の方がいらっしゃいましたら、教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • BODY内にCSS「a:hover」を使いたい

    「HEAD内の書き換えは不可」 「スクリプト(JavaScriptなど)言語使用不可」 という条件がある中で、 オンマウスした時にフォント色と画像の変化をしたいのです。 BODYタグ内で、スタイルシートの「a:hover」を設定する方法、 その他でも可能になる方法があれば教えてください。 また、<style type="text/css">宣言はHEAD内にということですが、 無理やりBODY内に<style type="text/css">宣言した場合 どのような現象が起きるのでしょうか? (実際にIE6でこの方法をやってみましたが、レイアウトのくずれやおかしな挙動はありませんでした) よろしくお願いします。

    • ベストアンサー
    • HTML