昨日のプロジェクト開発中に、スタイルの読み込み優先順位に関する問題が発生しました。 クラスは定義され、ページの初期読み込み時に認識されます。読み込みが完了した直後に、スタイルが書き換えられ、定義された margin-bottom が機能しなくなります。このスタイルがないと、コントロールが密集してしまいます。 テスト中、FF と Chrome はどちらも問題なく動作しますが、IE8 では問題が発生します。ただし、IE 開発者ツールを使用すると、margin-bottom が認識され、再定義されていないことがわかります。 問題はむしろ奇妙です。 このページは通常の構造ではありません。さまざまな要素がすでに書き込まれている通常のページではなく、ページ コンテンツが非同期的に生成されます。ロード時にデータを再定義する理由については、まだ理由が見つかっていません。この現象は、混雑したフォーム要素のいずれかをクリックすると、その要素が配置されているモジュール内のすべてのフォームに margin-bottom スタイルが読み込まれ、混雑が解消されるというものです。または、IE 開発者ツールを使用して、最初に margin-bottom の前のボックスのチェックを外してから選択します。これにより、margin-bottom を認識しないページ上のすべてのフォーム要素でこのスタイルが正常に読み込まれるようになります。 しかし、これは決して問題の解決策ではありません。顧客にこの問題を見せてはいけません。UI はユーザーに最も印象を与えることができる部分ですが、ユーザーを最も苛立たせる可能性の高い部分でもあります。 次に、margin-bottom を他の定義に追加するのではなく、margin-bottom のスタイル定義を記述するなど、いくつかの方法を試しましたが、うまくいきませんでした。 優先度の高いメソッドである !important を追加しても機能しません。 直接記述するスタイルは !important よりも優先度が低く、コードの冗長性が多すぎてデメリットも増えるため、受け入れられません。 次に、スクリプト メソッドを試してみましたが、うまくいきました。コードは次のとおりです。 コードをコピー コードは次のとおりです。<script type="text/javascript"> document.getElementByClassName("mar_b_10").style.margin-bottom="10px"; </スクリプト> 実はこれも単なる宣言です。内容はクラスと同じで、ブラウザも認識できます。 JS によって制御されるスタイル オブジェクト、 document.getElementByClassName("mar_b_10").style.margin-bottom="10px"; 一般に、DOM 操作は DOM ツリーが読み込まれた後に実行されることが多いため、JS によって制御されるスタイルの方が優先度が高くなります。 DOM ツリーが読み込まれた後、それを再定義する js を記述しました。スタイル定義の上書きは他にはなく、結果はかなり満足のいくものでした。 一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順 !important > [インライン スタイル > ID セレクター > クラス、属性、疑似クラス セレクター > 要素タグ、疑似要素セレクター] !important を使用すると、優先順位を最も高く、次にスタイル オブジェクト、次に id > class > タグの順に変更できます。また、宣言順で同じレベルのスタイルの後に表示されるスタイルは、優先順位が高くなります。 |
>>: DockerコンテナでArthasを使用するための詳細な手順
数日前に仕事を始めて、Mysql をインストールしたところ、開くことができました。今日、会社に行った...
1. レスポンシブ デザインとは何ですか?レスポンシブデザインとは、ウェブサイトの開発プロセス中に、...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...
mysql は期間内のすべての日付または月を取得します1: mysqlは期間内のすべての月を取得し...
序文多くの場合、ユーザーが自分のデータに対して実行する操作に基づいて何かを行う必要があります。たとえ...
目次1. はじめに2. vue-cli の紹介2.1 コマンドライン2.2 CLI サービス2.3 ...
ベンダープレフィックスとは何ですか?ベンダー プレフィックス - ブラウザー エンジン プレフィック...
最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...
目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...
準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...
目次行と列の変換トランスクリプトの構成を分析するvue3 + el-table で作成されたトランス...
序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...
MySQL のデフォルトの時間タイプ (datetime と timestamp) の精度は秒です。...
「壮大」という言葉は、おそらく現代のデザイナーが最も聞きたくない言葉でしょう。デザイナー:「デザイン...
ハッシュモード(デフォルト)動作原理:ウェブページのハッシュ値の変化を監視する—> onhas...