2017-08-15 7 views
0

私は選択された投薬を含むアコーデオンを持っています。 3種類あります(現在、既定、推奨)ReactコンポーネントがJQueryでlast-of-typeクラスを見つけた

タイプ間に15pxの下マージンが必要です。

私はそれらをクラスpanel-head-color1,panel-head-color2およびpanel-head-color3で識別させました。これは色々な種類の色分けをしました。

しかし間隔で、私は、各クラスの最後の要素はmargin-bottom:15px

アイブ氏は

CSS

div.panel-head-color1:last-of-type, 
div.panel-head-color2:last-of-type, 
div.panel-head-color3:last-of-type{ 
    margin-bottom: 15px !important; 
} 
をのようなものを試してみましたしかし、それは動作しません持っていると思います。私はJQueryを考えていますが、Reactコンポーネントでどのようにするかはわかりません。

これは私の後です。

enter image description here

CURRENT CSS

.panel-head-color1 > .panel-heading{ 
    background-color: #5cb85c; 
    color: #ffffff; 
} 

.panel-head-color2 > .panel-heading{ 
    background-color: #f0ad4e; 
    color: #222222; 
} 

.panel-head-color3 > .panel-heading{ 
    background-color: #5bc0de; 
    color: #222222; 
} 

.panel-head-color1, 
.panel-head-color2, 
.panel-head-color3{ 
    margin-top: 0 !important; 
} 


.last-of-type { 
    margin-bottom: 15px !important; 
} 

SOLUTION

componentDidMount: function() { 
    $('.panel-head-color1').last().addClass('last-of-type'); 
    $('.panel-head-color2').last().addClass('last-of-type'); 
    $('.panel-head-color3').last().addClass('last-of-type'); 
}, 

CSS

.last-of-type { 
    margin-bottom: 15px !important; 
} 

答えて

1

あなたは反応に最後の型である要素カウントし、適切なクラスにあり.last-of-type

を置くしかし、あなたはあなたのjavascriptのコードを反応させ、外部JavaScriptやjQueryのコードを複雑にしたくない場合も悪いわけではないことができますアイディア。速度のためにvanila JSをお勧めしますが、すでにjQueryを使用している場合は問題ではありません。

バニラJS:

var elements = document.getElementsByClassName('panel-head-color2'); 
elements[elements.length-1].classList.add('last-of-type'); 

のjQuery:

$('.panel-head-color2').last().addClass('last-of-type'); 
+0

ありがとうございます、どうやってこのJSを適用するか説明してください。 そのようなレンダリングの中で?私はそこで試してみましたが、 'componentDidMount()'の中で 'Can not read property 'classList' of undefined' – morne

+0

を取得しました。 – Melounek

+0

すばらしかった、ありがとう。 JQueryソリューションを使用しました。 – morne

0

margin-bottomの代わりにpadding-bottomを使用して、結果を確認してください。

+0

ポイントは、私は、各クラス型の最後の出現に、この 'style'を適用する必要があるということです。マージンボトムは素晴らしいです(私は手動でスクリーンショットで上に行った)が、このスタイルを適用する場所を特定するためのコードを取得することは、後のことです。とにかくありがとう。 – morne

+0

あなたは、各タイプにいくつの要素があるのか​​わからないことを意味しますか? – Umesh

+0

薬が選択され、タイプが与えられます。このタイプには、各タイプの色で見ることができる特定のクラスがあります。しかし、タイプ間の分離を洗うためには、それぞれのタイプの最後のクラスだけを選択し、マージンを適用する必要があります。 – morne

関連する問題