2017-11-10 8 views
0

マイコードはこのようなものになります。CSSの親クラス

input{ 
 
... 
 
} 
 

 
label{ 
 
... 
 
}
<div class="textfield 1"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div> 
 

 
<div class="textfield 2"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div> 
 

 
<div class="textfield 3"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div>

をコードがへの道であるので、今、私は唯一のテキストフィールドのいずれかにCSSを適用すると、

.textfield1{ 
 

 
    input{ 
 
    ... 
 
    } 
 

 
    label{ 
 
    ... 
 
    } 
 
     } 
 

 
.textfield2{ 
 

 
    input{ 
 
    ... 
 
    } 
 

 
    label{ 
 
    ... 
 
    } 
 
     }
:私はのような 『親クラス要素』を作成することができるかどうか聞いてみたいすべてのCSS要素に「.textfield1" の広告に長いです

これは、スタイル設定された要素をフォルダに入れるのと同じです。

これを行う方法はありますか?

ありがとうございます!

+1

CSSなし(スタイル、それはクラス2とクラステキストフィールドのためだということを示すために)。 SCSSはい。とにかくセレクタが間違っています。これは '.textField.1'です。もちろん[クラスは数字で始めることはできません](https:// stackoverflow。com/questions/448981/which-characters-are-valid-in-css-class-names-selectors)ので無効になります。 1つの要素をスタイルするだけの理由がある場合、なぜすべての要素にクラスを追加する必要がありますか?あなたの質問は不明です。 – Turnip

答えて

0

カブはコメントで言及したように、あなたはクラス名にスペースを持つことはできませんが。したがって、textfield 1などのクラス名を使用する代わりに、textfield1などを使用できます。当分の間、私はtextfield1を使って解決策を実証しています。

さて、あなただけ適用する必要があり、与えられたCSSルールを指定するには、(クラス名とタグ名の間の矢印>に気づく)descendant selector.textfield1 inputまたはchild selector.textfield2 > input(クラス名とタグ名の間にスペースを注意してください)使用することができます特定のクラスの子孫または子供に

input{ 
 
    border: 2px solid blue; 
 
} 
 

 
label{ 
 
    color: blue; 
 
} 
 

 
.textfield1 input { 
 
    border: 2px solid red; 
 
} 
 

 
.textfield2 > input { 
 
    border: 2px solid yellow; 
 
}
<div class="textfield1"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div> 
 

 
<div class="textfield2"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div> 
 

 
<div class="textfield3"> 
 
    <input tpye="text" id="fullname"> 
 
    <label for="fullname">Name</label> 
 
</div>

0

あなたはSassのか少ないのようなプリプロセッサを使用する場合は、あなたの例のようにCSSをnastedすることができます。古典的な方法では不可能です。 CSSで

.textfield2 input{ 
... 
} 

.textfield1 input{ 
... 
} 

.textfield1 label, //<- if the label style of textfield1 and textefield2 are same 
.textfield2 label{ 
... 
} 

は注意してください、あなたのHTMLにあなたはテキストフィールドと数<div class="textfield 3">の間にスペースを持っています。 CSSクラスのテキストフィールドのCSSクラスがあることを意味します。

1つのクラスを削除したい場合は、上記のスペースとコードを削除します。あなたがスペースを確保した場合

、ちょうどテキストフィールド間のドットで.textfield.2.textfield2を変更