ホームページ ウェブフロントエンド jsチュートリアル Angular でブラウザの互換性の問題を解決する方法の紹介

Angular でブラウザの互換性の問題を解決する方法の紹介

Dec 04, 2020 pm 05:39 PM
angular 互換性 フロントエンド

angular におけるブラウザの互換性の問題を解決するにはどうすればよいですか?次の記事で紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Angular でブラウザの互換性の問題を解決する方法の紹介

関連チュートリアルの推奨事項: 「angular チュートリアル

質問: エッジブラウザの下で、固定列の境界線が消えます

原因: ng-zorro-antd テーブル コンポーネントは、nzLeft および nzRight 命令を使用してテーブル列を固定しますこれら 2 つの手順 css3 にタグを実装します:

position: -webkit-sticky !important;
position: sticky !important;
ログイン後にコピー

Google、Firefox、および -webkit-kernel ブラウザはすべて、この属性 (css3) をサポートしています。IE はこの属性をサポートしていないため、IE では自動的にダウングレードされ、テーブルは空になります。固定列、スライド可能なフォーム。
Edge ブラウザは 1703 以降のバージョンで chromium カーネルを使用しており、CSS3 属性のサポートが強化され、sticky 属性もサポートされています。テーブル列を使用して固定することはできますが、境界線は表示されなくなります。

解決策:
現在実現可能な解決策は次のとおりです:

  1. 固定列を使用しないでください。固定列を使用するための明示的な要件はないため、テーブルを固定するために nzLeft および nzRight の使用を放棄できます。これにより、表示効果がブラウザ間で一貫したものになります。

    Edge ブラウザのダウングレード処理の場合、効果は IE ブラウザと同じで、固定列はなく、全体を水平にスクロールできます。

  2. 固定列の実装をカスタマイズします。コンポーネントの固定列の実装は使用せず、position:Absolute; を使用してテーブルの固定列を実装します。

2 番目のプランの詳細なプロセスは次のとおりです:

Use p を使用してテーブルをラップします。テーブルの幅が p の幅を超える場合、スクロールを有効にします:

.scroll-table {
  width: 100%;
  overflow-x: scroll;
}
ログイン後にコピー

テーブルの場合、外側の p 幅を超える幅を指定できます (スクロール効果が確認できるようになります)。

.fixed-table {
  width: 1300px; /* 可由th,td动态扩充,也可指定宽度 */
  border-collapse: collapse;
}
ログイン後にコピー

最後で最も重要な問題は、固定列の実装です。それは非常に簡単です。テーブルの列を絶対位置に設定します。絶対位置を設定した後、列は元のドキュメントから分離されます。テーブル 欠落している列が 1 つあるため、テーブルにこの固定列の場所を確保できるように背景パネルを追加する必要があります。

HTML コードは大まかに次のとおりです。この固定列は、固定列のスタイルにすることも、背景パネルのスタイルに設定することもできます。デモでは、これを使用して、固定列のスタイル。

<p class="scroll-table">
    <table class="fixed-table">
        <thead>
            <tr>
                <th>无效背景板</th>
                <th class="fixed-col">固定列</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>无效背景板</td>
                <td class="fixed-col">固定列</td>
            </tr>
        </tbody>
    </table>
</p>
ログイン後にコピー

参照コード: Ironape


問題: Edge ブラウザーのカレンダー (nz-range-picker) 確認ボタンを2 回クリックしました

原因: まだ明確ではありません

解決策:

  1. コンポーネントのバージョンをアップグレードします 現在、この問題は ng-zorro-antd 8.5 以降のバージョンでは発生しません。
  2. カスタム フッター OK 機能を置き換える追加のフッターを追加します。これを実現するには 2 つの方法があります:
    現時点では、OK ボタンなどの対応するボタンのみをカバーします。 、ボタンのスタイルはデフォルトのフッター ボタンと一貫性がありません。一貫性を維持するには、スタイルをカスタマイズするか、デフォルトのフッターのボタンのスタイルを直接使用できます。次の例では、コンポーネント ライブラリのスタイル: ant-calendar -ok-btn、2 番目のステップは、元のボタンを上書きすることです。絶対位置を使用して上書きを実現できます:
<nz-range-picker [nzRenderExtraFooter]="renderExtraFooterTpl">
<ng-template #renderExtraFooterTpl>
  <p>
    <button nz-button nzType="primary" class="ant-calendar-ok-btn abs-right">确 定</button>
  </p>
</ng-template>
ログイン後にコピー

対応する CSS:

.abs-right {
  position: absolute;
  right: 12px;
  top: 7px;
  z-index: 1;
  box-shadow: none;
}
ログイン後にコピー

デフォルトのフッターを削除します。完全にカスタマイズ可能なフッター。このとき、元のフッターを削除する必要があります。

::ng-deep .ant-calendar-footer-btn {
  display: none;
}
ログイン後にコピー
を使用してデフォルトのフッターを削除できます。現時点では、追加のフッターでは絶対配置を使用できません。

問題: IEブラウザで複数のタブページを切り替えると、echartが配置されているコンテナの高さが崩れます

原因: 親要素の高さはIEブラウザでは動的に調整できません(つまり、高さは子要素を通じて動的に変更されます)

##解決策: echartチャートが配置されているコンテナの高さを修正しました


## 問題 #: IEブラウザでは、フォームが初期化されると、フォーム検証がトリガーされます

原因 : これは IE の問題です。IE10 は入力イベントを実装しますが、トリガー時間が間違っています。たとえば、プレースホルダーが変更されると、プレースホルダーのテキストが英語でない場合にトリガーされます。Edge15 ではこの問題が修正されましたが、IE ではこの問題が修正されない可能性があります。 ############解決######:###

  1. 使用表单的reset()重置表单,但是重置的操作需要放在setTimeout中,或者通过其他手段将重置的操作作为表单初始化时的最后一个宏任务执行。这种方式经验证,最终的效果是,初始化表单后,表单输入元素的边框闪烁(红色)一下。
  2. 使用自定义的服务商插件(较为推荐),这种方式对原有代码的破坏性小(遵循了OCP原则),该插件是由DerSizeS提供的。只需要在对应的module中增加一个服务商即可
@NgModule({
    providers: [{
        provide: EVENT_MANAGER_PLUGINS, multi: true,
        useClass: UniqueInputEventPlugin, deps: [UNIQUE_INPUT_EVENT_PLUGIN_CONFIG],
    }]    
})
class MyModule {}
ログイン後にコピー
需要注意的是,插件需要自己添加到项目文件中(根据angular团队所说,这个插件修复了一个IE10或者IE11的bug,但是提交了太多的代码,这会给增加现有的应用的打包体积,虽然后面关于这个PR讨论了挺久,但是看样子是准备把这个放到FAQ里面,而不会把他并入框架),并在对应的模块中引用。

另注:IE的输入框会因为placeholder为中文而触发表单验证,placeholder改变了也会触发表单验证,所以,有一个讨巧的方法,placeholder里面的内容写成英文形式(推荐),但这显然不符合中文产品的需求,而且这显然没有国际化。所以可以想办法绕过这一条,使用 HTML实体(已验证,可行),Unicode编码(不可以)

更多编程相关知识,请访问:编程入门!!

以上がAngular でブラウザの互換性の問題を解決する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu 24.04 に Angular をインストールする方法 Ubuntu 24.04 に Angular をインストールする方法 Mar 23, 2024 pm 12:20 PM

Angular.js は、動的アプリケーションを作成するための無料でアクセスできる JavaScript プラットフォームです。 HTML の構文をテンプレート言語として拡張することで、アプリケーションのさまざまな側面を迅速かつ明確に表現できます。 Angular.js は、コードの作成、更新、テストに役立つさまざまなツールを提供します。さらに、ルーティングやフォーム管理などの多くの機能も提供します。このガイドでは、Ubuntu24 に Angular をインストールする方法について説明します。まず、Node.js をインストールする必要があります。 Node.js は、ChromeV8 エンジンに基づく JavaScript 実行環境で、サーバー側で JavaScript コードを実行できます。ウブにいるために

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ Mar 16, 2024 pm 12:09 PM

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ 今日のインターネットの急速な発展の時代において、フロントエンド開発はますます重要になっています。 Web サイトやアプリケーションのエクスペリエンスに対するユーザーの要求がますます高まっているため、フロントエンド開発者は、より効率的で柔軟なツールを使用して、応答性の高いインタラクティブなインターフェイスを作成する必要があります。フロントエンド開発の分野における 2 つの重要なテクノロジーである PHP と Vue.js は、組み合わせることで完璧なツールと見なされます。この記事では、PHP と Vue の組み合わせと、読者がこれら 2 つをよりよく理解し、適用できるようにするための詳細なコード例について説明します。

Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Mar 15, 2024 pm 04:51 PM

Angular フレームワークのコンポーネントのデフォルトの表示動作は、ブロックレベルの要素ではありません。この設計の選択により、コンポーネント スタイルのカプセル化が促進され、開発者が各コンポーネントの表示方法を意識的に定義することが促進されます。 CSS プロパティの表示を明示的に設定することで、Angular コンポーネントの表示を完全に制御して、目的のレイアウトと応答性を実現できます。

Go 言語は Linux システム上でどの程度互換性がありますか? Go 言語は Linux システム上でどの程度互換性がありますか? Mar 22, 2024 am 10:36 AM

Go 言語は Linux システムとの互換性が非常に優れており、さまざまな Linux ディストリビューション上でシームレスに実行でき、さまざまなアーキテクチャのプロセッサをサポートします。この記事では、Linux システムにおける Go 言語の互換性を紹介し、具体的なコード例を通じてその強力な適用性を示します。 1. Go 言語環境をインストールする Linux システムへの Go 言語環境のインストールは非常に簡単で、対応する Go バイナリ パッケージをダウンロードし、関連する環境変数を設定するだけです。 Ubuntu システムに Go 言語をインストールする手順は次のとおりです。

機内モードで Bluetooth ヘッドフォンを使用できますか? 機内モードで Bluetooth ヘッドフォンを使用できますか? Feb 19, 2024 pm 10:56 PM

現代技術の継続的な発展により、ワイヤレス Bluetooth ヘッドセットは人々の日常生活に欠かせないものになりました。ワイヤレスヘッドホンの登場により両手が解放され、音楽や通話などのエンターテインメントをより自由に楽しめるようになりました。ただし、飛行機に乗るときは、携帯電話を機内モードにするように求められることがよくあります。そこで質問は、機内モードで Bluetooth ヘッドフォンを使用できるかということです。この記事では、この疑問について考察していきます。まず、機内モードの機能と意味を理解しましょう。機内モードは携帯電話の特別なモードです

WIN10の互換性が失われた、それを回復する手順 WIN10の互換性が失われた、それを回復する手順 Mar 27, 2024 am 11:36 AM

1. プログラムを右クリックし、開いたプロパティウィンドウに [互換性] タブがないことを確認します。 2. Win10 デスクトップで、デスクトップ左下のスタートボタンを右クリックし、ポップアップメニューの[ファイル名を指定して実行]を選択します。 3. Win10 の実行ウィンドウが開きます。ウィンドウに「gpedit.msc」と入力し、[OK] ボタンをクリックします。 4. [ローカル グループ ポリシー エディター] ウィンドウが開くので、[コンピューターの構成/管理用テンプレート/Windows コンポーネント] メニュー項目をクリックします。 5. 開いた Windows コンポーネント メニューで [アプリケーション互換性] メニュー項目を見つけ、右側のウィンドウで [プログラム互換性プロパティ ページの削除] 設定項目を見つけます。 6. 設定項目を右クリックし、ポップアップメニューで

フロントエンドの面接官からよく聞かれる質問 フロントエンドの面接官からよく聞かれる質問 Mar 19, 2024 pm 02:24 PM

フロントエンド開発のインタビューでは、HTML/CSS の基本、JavaScript の基本、フレームワークとライブラリ、プロジェクトの経験、アルゴリズムとデータ構造、パフォーマンスの最適化、クロスドメイン リクエスト、フロントエンド エンジニアリング、デザインパターン、新しいテクノロジーとトレンド。面接官の質問は、候補者の技術スキル、プロジェクトの経験、業界のトレンドの理解を評価するように設計されています。したがって、候補者はこれらの分野で自分の能力と専門知識を証明するために十分な準備をしておく必要があります。

win10 ソフトウェアとの win11 互換性の問題の詳細な説明 win10 ソフトウェアとの win11 互換性の問題の詳細な説明 Jan 05, 2024 am 11:18 AM

win10システムのソフトウェアは完璧に最適化されていますが、最新のwin11ユーザーにとって、このシステムがサポートされるかどうかは誰もが気になるはずですので、以下ではwin10をサポートしていないwin11ソフトウェアについて詳しく紹介します。一緒に出かけます。 win11 は win10 ソフトウェアをサポートしていますか: 1. Win10 システム ソフトウェア、さらには Win7 システム アプリケーションにも十分な互換性があります。 2. Win11 システムを使用する専門家からのフィードバックによると、現時点ではアプリケーションの非互換性の問題はありません。 3. したがって、自信を持って大胆にアップグレードできますが、一般ユーザーは、Win11 の正式バージョンがリリースされるまでアップグレードする前に待つことをお勧めします。 4. Win11 は互換性が良いだけでなく、Windo も備えています

See all articles