ホームページ ウェブフロントエンド htmlチュートリアル ハッキングが多すぎます。どうすればよいですか_html/css_WEB-ITnose

ハッキングが多すぎます。どうすればよいですか_html/css_WEB-ITnose

Jun 24, 2016 am 11:40 AM

JavaScript で CSS スタイルを操作する場合、css2 の段階であれば、操作はそれほど難しいものではありません。ブラウザの互換性の問題はありますが、独自の関数をカプセル化することで、スタイルを設定するだけでなく、スタイルを取得することもできます。しかし、JavaScript が CSS3 に遭遇したらどうなるでしょうか?

CSS3 は現在さまざまなブラウザーに登場していますが、仕様セットとしてはまだ正式にリリースされていないことはわかっています。したがって、ブラウザごとに CSS3 属性のサポートが異なります。したがって、「CSS ハック」という用語が生まれます。すごいですね、なぜですか?なぜなら、css Hack を通じて CSS レベルでさまざまなブラウザと互換性を持たせることができ、それを実現するために JavaScript を借用する必要がないからです。ただし、5 つの主要なブラウザには独自の Hack ヘッダーがあります (Safari と chrome は webkit、IE は ms、Opera は o、Firefox は moz)。これにより、ある程度のコードの冗長性も生まれます。そして、js を介して css3 属性を制御すると、別の問題が発生します。

今回発生する問題は最終的にはコードの冗長性の問題です (4 つのメインストリーム カーネルにそれぞれスタイルを設定する必要があるため)。以下では関数を使用してこの問題を解決します。

 1 function setHack(ele,attr) { 2             //利用for-in循环遍历attr里面的属性 3             for (var i in attr){ 4                 var newi = i; 5                 //遍历是不是有- 6                 if(newi.indexOf("-")>0) { 7                     var num = newi.indexOf("-"); 8                     newi = newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase()); 9                 }10                 //常规的设置属性的方式11                 ele.style[newi] = attr[i];12                 newi = newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());13                 ele.style["webkit" + newi] = attr[i];14                 ele.style["moz" + newi] = attr[i];15                 ele.style["ms" + newi] = attr[i];16                 ele.style["o" + newi] = attr[i];17             }18         }
ログイン後にコピー

関数の説明: setHack 関数には 2 つのパラメーターがあります。ele は属性を設定する要素を表します。attr は、{"transform":" など、設定した属性と属性値を含む json 形式です。回転(20度)", "変換元":"120px 120px"}。コード中のif判定は主に属性の「-」を大文字の形式に変更することです。後者は主に Hack ヘッダーのコア部分の追加です。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

公式アカウントのキャッシュの更新の難しさ:バージョンの更新後のユーザーエクスペリエンスに影響を与える古いキャッシュを回避する方法は? 公式アカウントのキャッシュの更新の難しさ:バージョンの更新後のユーザーエクスペリエンスに影響を与える古いキャッシュを回避する方法は? Mar 04, 2025 pm 12:32 PM

公式アカウントのキャッシュの更新の難しさ:バージョンの更新後のユーザーエクスペリエンスに影響を与える古いキャッシュを回避する方法は?

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか?

WebページのPNG画像にストローク効果を効率的に追加する方法は? WebページのPNG画像にストローク効果を効率的に追加する方法は? Mar 04, 2025 pm 02:39 PM

WebページのPNG画像にストローク効果を効率的に追加する方法は?

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? < iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか?

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

< meter>の目的は何ですか 要素?

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか?

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

< datalist>の目的は何ですか 要素?

ナビゲーションとSEOにHTMLリンクを効果的に使用するにはどうすればよいですか? ナビゲーションとSEOにHTMLリンクを効果的に使用するにはどうすればよいですか? Mar 18, 2025 pm 02:39 PM

ナビゲーションとSEOにHTMLリンクを効果的に使用するにはどうすればよいですか?

See all articles