2009-03-13 20 views
1

2部:CSSコントロールの継承 - 継承他のコントロールスタイル私の質問に

1)別のコントロールの属性とスタイルCSSにを継承する方法はありますか?コントロールが親/子階層を持っていないし、完全に異なる制御タイプすることができ想定します

IE:

#MyFirstControl 
{ 
    width: 100px; 
} 

#MySecondControl 
{ 
    width: MyFirstControl.styles.width; /* This doesn't work */ 
} 

2)ラベル、タグが他のタグの子であると仮定します。 width属性は、 "inherit"と "auto"で動作しません。どうしましたか?

IE:

<style> 
    div 
    { 
    width: 100px; 
    } 
</style> 

<div> 
    <!-- This label does what it wants for width. It's not the width of the containing div --> 
    <label style="width: inherit">Some Text</label> 
<div> 

答えて

2

パート1:あなたはスタイルを制御するために、クラス名ではなく、IDを使用したい:

.control_a { 
    width: 100px; 
} 

<blah id='MyFirstControl' class='control_a'/> 
<blah id='MySecondControl' class='control_a'/> 

これは、あなたがタグの任意の数の間でスタイルを共有することができます。また、あなたは、単一の要素に複数のクラス名を使用することができ、心に留めておく:

.control_a { 
    width: 100px; 
} 

.red { background: #f00; }  
.blue { background: #00f; } 

<blah id='MyFirstControl' class='control_a red'/> 
<blah id='MySecondControl' class='control_a blue'/> 

これはあなたが単一の要素のスタイルの多くの異なるソースを選択することができます。

+0

あなたの答えと時間はありがとうございました。私はクラスをかなり使う。私は何の示唆もしなかったが、私はCSSをよく知っている。これは何よりも哲学的だった。私は、コントロール属性のCSS対JavaScript操作に関する問題に対処しようとしていました。ありがとう! – Boydski

1

CSSの「オブジェクト」を継承する方法はありません。他のタグ内のタグからスタイルを継承することはできますが、スタイル自体ではなく継承するタグです。タグを別のスタイルで配置すると、そのスタイルから継承されます。

多くのコーディングを避けることができるので、CSSスタイルをオブジェクトとして扱うと面白いかもしれませんが、異種のオブジェクトに適用できるクラスを作成したり、タグに複数のクラスを適用したりすることもできますそれは必要以上に面白いです。

2番目の質問についてはわかりませんが、クラス名やIDを使用せずにタグ名に適用していることが関係していると思います。私は何かを描くことができるかどうかを知るためには、もう少し遊ぶ必要があります。

0

1)CSSは、自己参照することができませんので、あなたは同じスタイルで指定された2つの別々の要素の共通点かもしれない:私のIDEとブラウザが信じなければならない場合

#MyFirstControl, #MySecondControl 
{ 
    width: 100px; 
} 

2)を、 inheritはそのコンテキストではwidthの有効な値ではありませんが、なぜその理由はわかりません。それがあなたの例がうまくいかない理由かもしれません。