2012-03-03 1 views
1

投票または回答する前に、XHTMLの属性を使用する必要があることを知っています(実際には独自の.cssに配置する必要があります)。XHTMLでtype属性が "text/css"でない<style>の問題がこの問題で断続的に表示される理由を知りたい人は誰ですか?

私はいくつかのサイトで問題を発見しました。これは、少なくともCSSでは問題がないと思われるものでCSSを実行しました。いくつかのjqueryの問題があり、最適化するために処理が遅くなった後でした。私は共通の問題を見つけることに終わった。タイプ属性のないインラインCSS <style>タグを保持するモジュールでした。 Btw、これらはHTML5サイトではなくXHTMLです。属性を追加するか、インラインCSSを削除してタグを変更すると、問題のある各サイトが修正されます。

私の質問は、問題を引き起こし、プロセスを破損させ、CSSが正しく機能することを可能にする実際に起こっていることです。これは純粋な好奇心から外れており、すべてのスタイルはそれ自身のファイルに配置されています。これらはJoomla 1.5モジュールに含まれています。

2回以上起こった1つの問題は、マスクが処理を完了できず、インラインCSSに従ったコードになってしまったということです。これまでのところ、これは、まったく同じコードで、スタイルエラーを除いた80以上の他のサイトではまだ発生していません。 W3Cのデフォルトによると

答えて

2

デフォルトでは、xhtmlを検証する必要があります。検証からのずれがあれば、必然的にレンダリングエンジン(または3)の窒息死につながります。

ほとんどの(x)htmlバージョン< html5、type属性を使用し、text/css値は検証に必要です。それは冗長ですが、それは確かにそれを使用しない理由はありません。

ぶっきらぼう漠然とヒントあなたが見ているもので:インラインCSSが最も可能性が高いあなたは、事前のonloadを発射するいくつかのスクリプトを持って、あなたのjsと競合しているよう

が聞こえます。あなたはそれらを消すためにページの読み込みを待つことができます。あなたのスタイルが正しくロードされている限り、ユーザーはその違いを知ることができません。ページにかなりのプリロードが読み込まれます。ページは適切にオンロードされます。

適切なCSSのレンダリングのもう一つの理由は、ほとんどのCSSエンジンにとっては寛容な性質です。著者らはエンタープライズ、スパゲッティのフロントエンドコードを作り出すことができるという理解をもとに構築されています。どのようにしてどのようにタンクがあらゆる地形を転がり回るようにするかのようなものです。 xhtmlは、検証が必要とされていたことを、いくつかの(私が知っている)インスタンスの1つです... html5のパワーが上がったことに気づいたなら、明らかにxhtmlとその厳しい方法を置き換えています。またはむしろ、xhtmlはまさに成功ではありませんでした。著者が正当な技術で操作することを余儀なくされていないため、いくつかの点で、許しは実際にウェブをもっと吸うようにしました。許しが素晴らしいですが、古い文書/恐ろしい構築文書へのアクセスを許可しています

あなたはただバリデーターで遊ぶべきです。検証の側面に焦点を当てないことを覚えておいてください。ツールであり、エラーが発生したときにノックアウトするだけです。私を信じて、彼らはそれほど頻繁に繰り返されます。あなたがそれを十分に行えば、それに頼る必要はありません。ユーザエージェントがどのように検証の範囲内で/反応しなくても反応するかを知ることは、最善の知識である。

1

は何も設定されていないとドキュメントの例では、type

http://www.w3.org/wiki/HTML/Elements/style

を設定していない場合は、それらの「少し不思議」の一つにそれをチョークが必要になる場合がありますが「text/css」でありますデバッグを面白くする。

1

いいえ私は@charlietfiによって与えられた答えに同意しません。 HTMLの場合はオプションで、デフォルトの場合は"text/css"はHTMLの場合のみ存在します。

XHTMLでは必須フィールドです。 styleタグのtype属性を除いて、XHTMLマークアップを作成してテストすることができます。これはあなたが得るものです: 必要な属性「タイプ」は、本物のW3Cの検証サイトを参照してください自分でそれを試して

を指定していない: http://validator.w3.org/

+0

私は実際にCSS検証を通じてこのエラーを受けました。また、タイプ属性とそれが入っていたRSForm Proモジュールの組み合わせに固有の問題かどうかも疑問に思っていました。問題を示したスクリプトもそのモジュールにありました。また、以前のバージョンのオートメーション機能では気を付けることが知られていたRSSEOモジュールがあります。私はこれらが少なくとも問題に追加することと関連があるかもしれないと考えます。 – Shane

2

type属性は実際には、冗長であり、ブラウザはtext/css(CSSを総称して)のみをサポートしており、そのデフォルトに対応しているため、style要素では役に立たないリスクがあります。タイプがtext/ccsなどの他の値は、要素の内容を無視します。

クライアントサイドのスクリプトでは、type属性を持たないstyle要素を削除したり、属性によっては何らかの形でその要素の内容を使用するコードを使用することは可能です。それは奇妙で、私はそれが意図的なチェックやトリッキーよりもプログラミングエラーであると予想します。

typeの属性が正式に必要かどうかは、HTMLのバージョンによって異なり、ブラウザやスクリプトには影響しません。

+1

はい 'type'属性をスキップすると、ブラウザがエラーを処理する方法に依存することになり、常に予測できなくなります。 –

+0

私が言及したように、それは正式な意味でしかエラーではなく、HTMLのバージョンによって異なります。 HTML 3.2では、 'style'属性は必須ではなく、許可さえありませんでした。 HTML5では、定義されたデフォルトの 'text/css'を持ちます。なぜなら、常に最初の場所で要素を認識するブラウザを持っていたからです。 –

+0

唯一のことは、ZafarとしてXHTMLの前後に関連付けられているということです。スクリプトをコメントアウトしていないのと同じように、HTML5には属性のないスタイルを書いています。実際、私はスクリプトの不適切なコメントでXHTMLでインラインスクリプトを実行しているのと同様の問題を発見しました。 – Shane

関連する問題