スタイルを別のオブジェクト/クラス/IDから継承するためのトリックを探しています。簡単なトリック: クラスを使用しますが、別のルールのスタイルを指定する別の方法はありますか?
説明すみません..次のようなものを探しています:
.st1 {font-size:17pt;} .st2 {-moz/ms/webkit-extends: '.st1';}
?
実際、私はそれを本当に探しているわけではなく (クラスを使用しているため)、興味があるだけです。
スタイルを別のオブジェクト/クラス/IDから継承するためのトリックを探しています。簡単なトリック: クラスを使用しますが、別のルールのスタイルを指定する別の方法はありますか?
説明すみません..次のようなものを探しています:
.st1 {font-size:17pt;} .st2 {-moz/ms/webkit-extends: '.st1';}
?
実際、私はそれを本当に探しているわけではなく (クラスを使用しているため)、興味があるだけです。
トリックを探すのではなく、次のような CSS 拡張ライブラリを探しています。
彼らはあなたが望むようにそれを行う方法を正確に提供するわけではありませんが、さらに優れた方法を提供します. お気に入り
.st1 {font-size:17pt;}
.st2 {
.st1;
}
Web サイトが起動されると、これらのスタイル宣言がコンパイルされ、有効な CSS ドキュメントに最適化されます。
CSS の継承は DOM 構造を中継するため、関係する要素が子孫/先祖の関係を持っていない限り、CSS はそのような機能を提供しません。
とにかく、 LessCSSのようなライブラリを使用して、プロパティ値のテンプレートのようなプレースホルダーを実装することで、CSS を動的なスタイルシートに変えることができます。
純粋な CSS では、
しかし、私があなたを正しく理解していれば:
JavaScript を試して、クラス Yを持つすべてのオブジェクトを検索し、クラス Xを先頭に追加できると思います
何かのようなもの:
//disclaimer: I haven't tested it
var objs=document.getElementsByTagName('*');//getElementsByClassName, not very crossbrowser
for(var i=0,len=objs.length;i<len;i++){
var temp=objs[i].className;
if((" "+temp+" ").indexOf(" classY ")==-1){//spaces are important
objs[i].className="classX "+temp;
}
}