2016-07-14 8 views
0

私には、テキストを持つスパンを持つ2つのdivの1つと、画像を持つ2つのdivがあります。 0内のコンテンツに基づいてdivのCSSを編集します

と私はパディングと設定CSS必要なテキストを有する第二のdiv(draggableTemplate)へ:画像との最初のdiv(draggableTemplate)に私はパディングとCSSを設定する必要があるので

10%を

<div class="draggableTemplate"> 
    <img src="images/logo-blue.png" > 
</div> 

<div class="draggableTemplate"> 
    <span> Hello world... </span> 
</div> 

.draggableTemplate has: child(img) { 
    //that have img child 
    padding:0; 
} 

.draggableTemplate has: child(span){ 
    //that have span 
    padding:10%; 
} 

は私が親内の画像を持ってにCSSを設定する必要があると親のためのdifrante CSS:

私はこのようなものが必要PARENTない子供に

設定CSSの内部スパン

+0

可能な複製(HTTP ://stackoverflow.com/questions/2326499/apply-css-styles-to-an-element-depending-on-its-child-elements) – ca8msm

+0

子どもに基づいて親を選択できるCSSでは利用できません。 "has:"セレクタはまだセレクタレベル4で使用可能なエディタドラフトにあります。これを達成するためにjQueryを使用することができます。 –

答えて

0

であなたはCSSで特定のchildparentを選択することはできません。これを行うには

一つの方法は、has()

がここjsfiddle

JQ を参照機能、例えば、とJQを使用することです:jsfiddle

$(".draggableTemplate").has("img").css({"padding":"0"}); 
$(".draggableTemplate").has("span").css({"padding":"10%"}); 

または、このような

CSSで

.has_img{ 
    padding:0; 
} 
.has_span{ 
    padding:10%; 
} 

だけませだけCSSでこれを行うにはいくつかの方法がある

[その子要素に依存する要素にCSSスタイルを適用]の
+1

"これを行う唯一の方法はJQを使うことです" - それは信じられないほど偽です。 javascriptでこれを行うには、jQueryは必要ありません。 – ndugger

+0

うん。あなたが正しいです。あなたはcssでthiaをすることはできないと言っていました –

関連する問題