Tıklatıldığında tamamen renk değiştiren bir talkbubble stil değiştirmeyi deniyorum. Burada görüldüğü gibi javascript ile sözde öğe denetimi
Ben aslında elemanın geri kalanı ile renklerini değiştirmek için (talkbubble için oka şekillendirmek için ) kullanıyorum:before
sözde elemanı almanın bir sorunla karşılaştık: HTML
<div class="clickables">
<div class="talkbubble">
<input type="hidden" class="tbselector" value="sbselection_1">
<div class="thumbnail">
<img src="images/thumbnail1.png" height="33" width="30" />
</div>
<div class="words">Commons</div>
</div>
<div class="talkbubble">
<input type="hidden" class="tbselector" value="sbselection_2">
<div class="thumbnail">
<img src="images/thumbnail1.png" height="33" width="30" align="middle" />
</div>
<div class="words">crossroads</div>
</div>
.
. More and more
.
</div>
</div>
CSSHemen İlgili
.talkbubble {
background: white;
color: rgb(0,0,0);
height: 40px;
margin-top: 1%;
margin-left: 48%;
margin-right: auto;
position: relative;
width: 150px;
}
.talkbubble:before {
border-top: 10px solid transparent;
border-right: 10px solid white;
border-bottom: 10px solid transparent;
content:"";
height: 0;
position: absolute;
right: 100%;
top: 10px;
width: 0;
}
.talkbubble:before.clicked {
border-right-color:#666666;
}
.talkbubble:hover{
background-color: rgb(194,194,194)!important;
color:rgb(255,255,255);
}
.talkbubble:hover:before{
border-right-color: rgb(194,194,194)!important;
}
JQUERY İşte
$('.clickables').on('click','.talkbubble',function() {
$(this).parent().find('.talkbubble').css('background-color','#ffffff');
$(this).css('background-color', '#666666');
});
biraz araştırma yaptım Demo http://jsfiddle.net/petiteco24601/3xuuq2fx/
olduğunu ve biraz sonuçsuz görünmektedir. Çoğunlukla, bulduklarımın bir kısmı temel olarak, sözde öğenin GERÇEKTEN varolmadığı için, javascript'i sahte bir öğeye zorlamanın bir yolu olmadığını söylüyordu.
Ancak, daha fazla araştırma ile http://css-tricks.com/pseudo-element-animationstransitions-bug-fixed-in-webkit/ ve Change an HTML5 input's placeholder color with CSS gibi şeylerin bu hataların giderildiğini ve bazı tarayıcılarda sahte öğeler üzerinde javascript kullanması gerektiğini söyleyen şeyler buldum. Asıl anlaşma nedir? Bir kişi, sözde öğeleri nasıl kontrol edebilir?
sadece ekstra bir sınıf ekleyin, satır içi stil zaten en iyi uygulama değildir .. – supernova