さまざまなブラウザーが独自の好みの方法で CSS をレンダリングすることを選択しているため、標準を持つ意味は何ですか?
すべてのブラウザーで機能する流動的な 3 列のレイアウトを作成するなどの単純なことは、フラストレーションの経験になる可能性があります。これにどのように対処しますか、またはクロスブラウザー互換性のある開発をそれほど苦痛にならないようにしますか?
さまざまなブラウザーが独自の好みの方法で CSS をレンダリングすることを選択しているため、標準を持つ意味は何ですか?
すべてのブラウザーで機能する流動的な 3 列のレイアウトを作成するなどの単純なことは、フラストレーションの経験になる可能性があります。これにどのように対処しますか、またはクロスブラウザー互換性のある開発をそれほど苦痛にならないようにしますか?
いつものように、これには理由があります。
標準は破られていません(標準を破ることはできません)。IEのような一部のブラウザが完全に準拠していないだけです。
これは主に、IEが標準が作成される前に開発されたためであり、当時は競合他社がほとんどなく、最高のブラウザでした(netscapeは他のオプションであり、IEよりもはるかに悪かったと読みました)。
その後、人々は標準が必要であることに気づき、IE独自のコードや機能を一切含まないように標準を作成しました。IEは、以前のバージョンとの下位互換性を選択するか、この新しい「標準」に準拠することを余儀なくされました。ブラウザ市場を完全に支配していたため、選択は明白でした。
新しいバージョンでは、IEはますます多くの標準に準拠しようとしましたが、IE8はACID2テストに合格したと言われているため、標準のユートピアが(ゆっくりと)実現しています。
それまでの間、このサイト->クロスブラウザ情報が含まれているquirksmodeを確認してください。また、「IEボックスモデル」に関する記事をオンラインで確認し、IEのパディングを避けてください。サードパーティのjavascriptライブラリ(JQuery、Prototype、Dojo)も使用している場合は、問題ないはずです(または、私たちの誰もができる限り問題ありません)。
よろしく。
標準は、事前に定義されたものではなく、創発的なものです。まあ、少なくとも彼らはそうあるべきです。私が話をした多くの開発者は、Web標準に対する私の見方を少し異端的に感じているようですが、ここにとどまります。
実装前に標準を作成しようとすると、いくつかの問題が発生します。
W3Cは、これを近年難しい方法で学んだと思います。最もエンドユーザーに見える革新のいくつかは、新しいブラウザ戦争から生まれました。例としては、HTML5(いくつかのベンダー)、キャンバス(Apple)、XMLHttpRequest(MicrosoftのOutlook Web Accessチーム)、入力範囲(Safariの組み込みRSSリーダー)があります。 、およびビデオ要素(Firefox)-これらは、標準タワーからではなく、独自のレベルから上に来ました。そして、これらの新しい「標準」は、将来を熟考している一部の目を丸くしたシンクタンクではなく、これらの過去の個々の実装(Firefoxは主にXMLHttpRequest用にMicrosoftをコピーしたなど)を調べることによって作成されました。(ISAPI、NetscapeプラグインAPI、およびSQLはすべてボトムアップ標準の例であり、重大な変更はロックステップ方式で徐々に行われます。)
標準は、実装の基本的な違いを滑らかにする最も一般的でない分母であり、それらすべてで機能するピジン言語であり、言語またはシステムに関するRobertLowthスタイルの規範的なルールの列挙ではありません。常に意味をなさない、または非現実的な理想を適用するわけではないルール(XMLベースの文法ルールをSGMLベースの言語に適用しようとするような、ラテンベースの文法ルールをドイツ語ベースの言語に適用しようとするなど)。まあ、これは私たちが持っているものです。
おそらく、現時点でのCSS標準の最大の欠点は、ページが特定のバージョンの標準に対して作成されたことを指定するための適切な方法が実際にはないことです。HTMLドキュメントにDOCTYPEを指定できますが、ドキュメントがCSS 2.1用に作成されたことを示すことができないのはなぜですか?これは、CSSの:before疑似要素など、ページの実際のコンテンツに影響を与える奇妙な機能をCSSに追加し始めるときにのみ重要になります。この標準の将来のバージョンでは、互換性を損なう可能性のあるエラーが発生する可能性があります。ブラウザに意図を理解させるのではなく、ドキュメントの作成者に特定の動作を要求させると便利です。
軽い面では、IE8とIE7がリリースされたので、たとえば2005年ほど悪くはありません。条件付きコメント付きの特定のIE6スタイルシートは、CSS/の作成に大いに役立ちます。標準ベースの実装が可能です。もう1つのアドバイスは、Googleを使用して、3列の流動的なレイアウトの例を取り上げ、他の誰かがトラブルシューティングのほとんどを行ってくれることを期待することです。
クロスブラウザ互換のWebサイトを作成することは困難であり、標準であるか、標準がありません。異なるブラウザがサイトをレンダリングする方法にいくつかの違いがあることを受け入れると、自分で簡単にすることができます。プロプライエタリ拡張機能を恐れないでください(IE以外のユーザーのためにCSS3の丸みを帯びた角を使用してもかまいません)が、存在しない場合のフォールバックがあります(ええ、丸みを帯びた角は存在しません)サイトを使用するために重要です)、そしてあなたのユーザーがあなたのコンテンツをどのように消費したいかを選択できるようにします。
標準を持つことの重要なポイントの 1 つは、別のブラウザー戦争から私たちを守ることです。Netscape と Microsoft が可能な限り多くの独自機能をブラウザーに追加し続けたものをご存知でしょう。クロスブラウザ開発は、当時と比べて今日は簡単です...
標準を持つもう 1 つの正当な理由は、ブラウザーの将来のバージョンがどこに向かっているのかを知っていることです。標準に従うことは、将来のブラウザーがどのように機能するかについて得られる最良の予測です。
この質問には、クロスブラウザーのヒントがたくさんあります。すべてのブラウザーで一貫したレイアウトを実現するにはどうすればよいですか?
この質問に対する他の回答は、CSS が問題ではない理由の内外をほとんどカバーしていますが、クロスブラウザーの問題にどのように対処するかについては、通常、およそ 4 つのステップで構成されています。
ポイント3と4を行うには、このようなものがあります
.box {css rules}
*+html .box {css rules to override in ie7}
* html .box {css rules to override in ie6}
これらすべてが終了しても、主要なブラウザーで動作する有効な css が残っています。
お役に立てれば
*編集 - ietester は、Windows XP または Vista に IE の複数のバージョンをインストールできる優れたソフトウェアであることを追加するのを忘れていました: http://www.my-debugbar.com/wiki/IETester/HomePage
はいCSSは壊れています-意味的には「壊れた標準」とは言えませんが。しかし、問題は実際にはセマンティクスの1つではありません。
80年代後半から90年代初頭にかけて、UNICODE標準の定義を支援した経験は、標準をうまく作成する方法を学ぶための優れたトレーニングでした。私は何度も目を転がして、W3Cが標準のドキュメントを作成し、ブラウザがさまざまな方法で物事を解釈することにつながる定義に大きな穴を残しています。CSS標準には、CSS1より前のバージョンとの互換性を維持する必要があるため、v3でも相互に排他的な部分が数多くあります。
重要な面として、CSSには3つの驚くほど明白な問題があり、コンピューター科学者なら誰でも、不適切に設計されていて一貫性がないと言うでしょう。
したがって、答えはCSS標準が破られておらず、前提は正しいですが、標準ドキュメント(ブラウザ、ドキュメントではない)の実装は、委員会による征服が目的に完全に適合するものをめったに得ないことを示しています。これは、CSSが訓練を受けたプログラマー向けに作成されたのではなく、Webデザイナー向けに作成されたためだと思います。これは、実際にはプログラマーでもデザイナーでもない奇妙な種類です。異なるが、きれいなグラフィックスに費やす時間が少ない実際のWeb開発者がいます。
IMHO:CSSが壊れています。一方、代替案ははるかに悪いです。私たちが知っている悪魔の方がいい。HTMLの置き換えにおける役割。
あなたはCSSから始めたばかりのようです。ブラウザはCSS仕様に完全には準拠していませんが、自信を持って使用できる安全な場所がたくさんあります。この安全な場所は、ウェブのコーディングが本当に大変な苦痛だった約10年前よりもはるかに大きくなっています。そして、新しいブラウザのリリースはますます仕様に準拠しているため、標準が重要になっています。ブラウザが完全に実現することはおそらくないというのは一種の理論上の理想ですが、その90〜95パーセントでさえ現実の世界では非常に役立ちます。
また、IEにCSSのより良い実装があればいいのですが、奇妙な動作をするいくつかのことを学べば、通常のレイアウトのほとんどを大きな問題なしにコーディングできます。最も一般的なレイアウトは、Web上のさまざまなCSSフォーラムでも議論されており、自分で作成する必要がないように、すぐに利用できる優れたソリューションが常にあります。
CSS標準は私見では問題ではありません[少なくともあなたの質問の意味では]、問題はブラウザ市場とソフトウェア市場一般の現実です。欲求不満に関しては、あなたがある程度の経験を積んだ後、それはほとんどなくなるはずです。限界は常にありますが、安全なスペースはたくさんあります。
標準にはいくつかの欠点があります。また、それを実現するのは非常に難しいことでもあります。問題は、標準よりも実装にあります。
YUI のようなものを使用してください。YUI は、多くの賢い人々がさまざまなブラウザーで動作するように多大な努力を払ってきたものです。
標準は公開されているため、標準に準拠していないブラウザが見て学ぶことができます。標準は、すべてのページで正しく表示される Web ページを作成するための唯一の方法であるため、重要です。
また、開発された標準は決して過去のものではなく、未来のものであることを忘れないでください。過去に一部のブラウザーが標準に準拠していなかったとしても、標準を使用すべきではないという意味ではありません。
実際、ブラウザはすべて独自のことを行っており、標準が必要だったため、標準が生まれました。
標準に従ってコーディングすると、ブラウザはそれを確認します。
希望の仲間を!
それは不平等のようです。一部のブラウザーが Web 標準を無視しているからといって、標準自体に何か問題があるわけではありません。これは、シートベルトを着用しない人がいるからシートベルトが壊れているとか、飲酒運転に関する法律を守らない人がいるから無意味だと言っているようなものです。
準拠する標準がまったく存在しない場合、World Wide Web は存在しません。平等主義社会が実現不可能な理想であるのと同じように、達成不可能な理想を目指して努力することで、何十年にもわたって途方もない社会的進歩がもたらされてきました。同様に、W3C の推奨事項とオープン Web 標準も、Web の存続期間にわたって測定可能な進歩を遂げてきました。CSS のような標準がなければ、Web が繁栄するために依存する相互運用性は存在しません。