• 締切済み

現在、携帯用のXHTMLとCSSを勉強中で、いろいろなサイトや本を見な

現在、携帯用のXHTMLとCSSを勉強中で、いろいろなサイトや本を見ながら勉強しています。 一点教えていただきたいのですが --- <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=shift_jis" /> <meta name="keywords" content="検索キーワード"> <meta name="description" content="サイト紹介文"> <title>■■■</title> <style type="text/css"> .marquee{display:-wap-marquee; -wap-marquee-loop:infinite;} <![CDATA[ a:link{color:#750D0A;} a:visited{color:#750D0A;} a:link#menu{color:#FE9091;} a:visited#menu{color:#FE9091;} ]]> </style> </head> <body style="background-color:#F1EAD8; color:#000000;"> <span style="font-size:xx-small;"> --- いくつか見て、このような<head>の形が基本になっているようなのですが CSSにおいて <style type="text/css"> <![CDATA[ ]]> </style> の中に入るもの、入らないものはどう違うのでしょうか? <style></style> の中に <body style="background-color:#F1EAD8; color:#000000;"> <span style="font-size:xx-small;"> を入れてはいけないのでしょうか? わかりにくい質問ですみません。もしくは根本的に何か分かっていないのかもしれません… どうぞよろしくお願い致します

みんなの回答

回答No.3

docomoの古い機種へ配慮したソースです。 docomoの古い機種は基本タグのstyle属性で指定したスタイルしか反映させません。ただし例外としてアンカーのスタイルに限りhead内に書くことができます。ここでも外部cssは利用できません。 なので.marqueeの指定に関しては、古いdocomoには指定が反映されません。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

本来は、CSS(javascriptとかもそうだけど)は全部外に出して別ファイルとして、 <link rel="stylesheet" type="text/css" media="handheld" href="/hogehoge.css" /> とかにするべき。 でも手を抜いて、ページ中に直に書くとき  <style type="text/css">   ------------  </style> 内に直接マークアップ出きる。 この時、<style>内の記述をXHTMLの要素として認識させないため、 CDATAノードにするためCDATAマークする。それが、  <style type="text/css">  <![CDATA[   ------------  ]]>  </style> のかたちという事、今でもCSSをサポートしてないブラウザーが、CSS定義の 中身をそのまま表示してしまうのを防ぐため、HTMLのコメントマークアップを 使って  <style type="text/css">  <!--   ------------  -->  </style> とか  <style type="text/css">  <!--[CDATA[   ------------  ]]>-->  </style> なんてのを見かけるが意味が無いので止めよう。  <style type="text/css">  <![CDATA[   ------------  ]]>  </style> でOKです。CDATA内では < > = - & ? .. 等がXHTMLとして解釈される事が ないので、ページ内javascriptも同様の手法でマークアップします。 (携帯にjavascriptは無いけど...)  一方、要素のstyle属性でCSSを定義するのは、どちらかというとスポット 的にCSSを摘要させたい時です。 だから、<body style="... ってのはデバッグの時か、共通外部CSS使ってて、其のページだけ臨時に 変えたいときでしょう。  <span style="font-size:xx-small;"> も、同じくあるインライン要素のところだけ、極小文字にいたいのであって、 そおいう場所が複数あって、論理的に場所が決められるのなら、 CSSでセレクターを指定して"font-size:xx-small;"を指定しましょう。  そのためだけに、むやみにIDやCLASSを振って、CSS定義するのは意味無いですから、 style属性も役に立ちます。

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

>いろいろなサイトや本を見ながら勉強しています。  とのことですが、基本は仕様書です。本やサイトは必ずしも仕様書を理解して書いていないと思われるものがとっても多いです。(7割りがたそうではないかと)  また、仕様書を理解している著者なら、「必ず仕様書を参照せよ!!」と書いているはず。 CDATAとは、 HTML 4.01仕様書(邦訳)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.html )  →概念索引 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/index/list.html )   →6.2 SGML基本形式 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/types.html#type-cdata )  に、詳しく説明してあります。 【引用】____________ここから CDATAは、文書文字集合中の任意の文字の列であり、文字実体をも含む。ユーザエージェントは、この属性値を次のように解釈する必要がある。  * 文字実体は文字で置き換える。  * 改行文字LFは無視する。  * 個々の改行文字CRあるいはタブ文字は、1つの空白文字で置き換える。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Basic HTML data types (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/types.html#type-cdata )]より  言い換えれば、スタイルシートをそのまま書くことができる。 >の中に ><body style="background-color:#F1EAD8; color:#000000;"> ><span style="font-size:xx-small;"> >を入れてはいけないのでしょうか?  スタイルシートを直接書きなさいと・・・書かれている。  <body・・・は、HTML直下にしか書けない。 【引用】____________ここから <!ENTITY % html.content "HEAD, BODY">  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.3 )]より  また、携帯用、スクリーン端末(パソコンのディスプレイなど)、点字端末、読み上げソフト、検索エンジン、テレビ画面であろうと、HTML本体は特別なものではありません。  HTMLは、過去の登場したたくさんの携帯電話、今後当時要するであろうフルブラウザ携帯端末、過去のブラウザ、新しいブラウザに対応しているものです。 【引用】____________ここから HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より  ですから、基本的にはシンプルなHTML(XHTMLはHTMLをXMLに合わせて書きなおしたものなので当然含みます。)で最低限の記述をする  ・・・これで旧式の携帯電話や過去のブラウザに対処  そして、head内のスタイルシートで記述。このとき、基本的なものを書いて、mediaを読みこめる端末に対しては指定し、外部スタイルシートを読める新しい携帯は@mediaで上書きさせる。  HTMLの属性でのデザイン指定は詳細度0ですから、スタイルシートの指定をキチンとすれば(要素で指定すると×詳細度1,クラスなら×10・・・)きちんと上書きされるはず。 14 スタイルシート ( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/present/styles.html ) REC-CSS2 邦訳 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cover.html#toc )

関連するQ&A