0

私は持っていてbookmarklet、最近、ブックマークレットのデザインがサードパーティのWebサイトで使用されたときに同じではなかったため、cleanslatecssCSSを使用してプロパティを変更しました。

このCSSファイルは、特定のタグ内のすべてのタグのすべてのプロパティをリセットする必要があります。これはそれを行いますが、設定を操作する必要がある場合は、できません。

<div class="mainclass">
<div id="login">a</div>
<div id="form">b</div>
<div id="details">c</div>
</div>

私には多くのフォームがあり、特定のアクションで非表示にしたり再表示したりします。たとえば、ログインフォームを表示し、ユーザーがログインしていない場合は詳細フォームを表示し、ユーザーがログインしている場合は、 URL、およびその他のフォーム。

したがって、div id details displayプロパティをに設定blockし、残りをに設定してから、noneすべてをに設定しnonediv id form displayプロパティをに設定しようとするとblockcss何も実行されませんが、がjavascriptアクションを実行することがわかります。

このCSSで十分ですが、すべてのタグプロパティで!importantプロパティを使用したため、JavaScriptの新しい値から次のようなプロパティに設定できません。

document.getElementById("form").style.display = "none";

ここに画像の説明を入力してください

この画像では、古いCSSを使用し、リセット方法を使用しました。また、jsコードは正常に機能しましたが、サードパーティのWebサイトでのデザインは同じではありませんでした。

実際のプロジェクトでは、デザインはすべてのサードパーティのWebサイトで同じですが、jsコードでCSSプロパティを設定することはできません。

4

1 に答える 1

1

Important は、一般的に非常に悪い考えであり、css の特異性の規則に違反するため、避けるようにしてください。!importnat を使用するのではなく、現在のスタイルを上書きするために CSS をより具体的にする方法はありませんか?

このようなことを行うことで、まだ重要を適用できます

element.style.setProperty("display", "none", "important");

またはjqueryはそれを非常に簡単にします

element.css("display","none !important");

しかし、繰り返しますが、重要なものを使用しないのが最善です

于 2012-11-09T13:21:29.393 に答える