3

の css プロパティに問題がありtext:transformます。大文字にするように設定すると、IE7 と IE8 で動作が異なります。ページ [1] の製品タイトルはapple tree 'Gala'、他のブラウザでは表示されますが、IE では表示されますapple tree 'gala'。引用符の後の「g」文字に注意してください。IE と他のブラウザの両方で「g」を大文字にしたい。

IE で動作させるために必要なハックや追加の設定はありますか?

[1] - http://shop.shootcare.co.uk/pomonafruits/find/apple-tree-gala-apl026?path=&ref=モール

4

2 に答える 2

4

このプロパティtext-transformは、CSS仕様で大幅に過小定義されています。そのCSS2.1の定義では、「単語」の意味すら指定されていません。コンピューターのコンテキストでは、テキストの単位としての「単語」は、空白以外の文字の最大シーケンスを意味します。したがって、この場合、アポストロフィを含む文字列「gala」は1つの単語になり、最初の文字はアポストロフィになります。したがって、IEがここで最も適切であると主張することができますが、他のブラウザは他の解釈を採用しています。

CSS3テキストドラフトは、最初の文字(実際には「文字または数字」を意味します!)が影響を受けるように、意味を変更または明確にすることを提案しています。したがって、これにより「gaia」のgが大文字になります。しかし、それでも「単語」は定義されていません。たとえば、「最先端」が2単語か1単語か、「ロックンロール」に含まれる単語の数などです。

結論として、単語を大文字にするほとんどすべての方法は、CSSの方法よりも信頼性があります。可能であれば、ページを生成するソフトウェアを変更して、サーバー側で目的の操作を実行するようにします。ここでは、JavaScriptを使用する方がCSSよりも安全です。

于 2012-11-26T08:33:50.690 に答える
0

キャピタライズ変換は、一部のブラウザでは動作が異なります。たとえば、一部のブラウザではjava-scriptがJava-Scriptを返し、その他のブラウザではJava-scriptを返すだけです。

また、capitalizeは単語の残りの文字では機能せず、最初の文字のみを変更するため、intERNETという単語がある場合は、IntERNETが返され、残りの文字はそのままになります。

だから私の大げさな推測では、ie7とie8は「ガラ」を単語として「ガラ」を最初の文字にするので、「同じものを返す」を大文字にしようとしています。ハックがあるかどうかはわかりません。しかし、それはあなたが始めるための何かかもしれません、ただテストするために'gala'の代わりにgalaを使ってみてください、そしてそれから大文字にする間'を無視する方法があるかどうか確かめてください。

于 2012-11-26T08:16:55.193 に答える