2014-10-26 27 views
7

yüzden özel bir renk olmasını seçkin bir etikette oku almaya çalışıyorum. Örnek: tavsiyenin büyük kısmı yerine bir resim kullanmak, ama bunu yapamam gördüğümGörüntüyü seçmeden aşağı açılırken ok rengini nasıl değiştirebilirim?

<input type="checkbox" class="checkbox1" checked="checked" /> 
<input type="text" spellcheck="false" size="20" /> 
<select class="dropdown"> 
    <option value=">">&gt;</option> 
    <option value="<">&lt;</option> 
    <option value=">=">&ge;</option> 
    <option value="<=">&le;</option> 
    <option value="==">&#61;</option> 
    <option value="!=">&ne;</option> 
</select> 

. Belki bir &#9660; ▼ kullanıyor bir çözüm olabilir?

+1

sorun tarayıcı tarafından görüntülenen beri CSS bir 'select' listesindeki oku yerini alamaz olmasıdır. Sana '▼' de kullanmak mümkün olmayacaktır inanıyoruz neden olan bir 'select' listesinde after' psuedo seçiciler: before' ve': Üstelik 'kullanamazsınız. En iyi bahsiniz arka plan görüntüsü yöntemini kullanmaktır. –

+0

@takkun Güncellememi kontrol ettiniz mi? –

cevap

6

SON GÜNCELLEME: (jsFiddle: http://jsfiddle.net/ztayse92/) önceki çözümün oku yapılmış açılır menüsü altında olması ve şeffaf bir arka plan kullanılan. Bu mümkün olduğu kadar mükemmel ve overlay/hover değil tıklanabilir bölge sorunu çözer.

GÜNCELLEME: Bir görüntüyü kullanmadan Hack cevap: (jsFiddle: http://jsfiddle.net/swpha0s0/4/)

göreli konumlandırma ile bir kap yaptı ve ben seçin açılır koymak ve mutlak konumlama ile bindirme simgesi (ok). CSS'de ok stilini tamamen kaldırırım. Tek dezavantajı, ok sembolü bir bindirme olduğu için tıklanabilir olmaması veya başka bir deyişle, farenin ok üzerinde tıklatılmasının ardından açmanın açılmamasıdır. Okun en az yer açmasını sağladım. Ben de oka bir tıklama işleyicisi koyarak düşünce ve JavaScript ile açılır menüyü ama bu (Is it possible to use JS to open an HTML select to show its option list?) 'e göre bu mümkün değildir. Okun üzerine geldiğinizde imleci varsayılan yaptık, böylece kullanıcı bunun tıklanabilir olduğu konusunda yanlış geribildirim almaz. Yani bu sizin istediğiniz şeye en yakın çözümdür - neden resimlere izin verilmediğini ve bunun için kullanım durumunun ne olduğunu merak ediyorum.

HTML:

<div class="parent"> 
<select class="dropdown"> 
    <option value="&gt;">&gt;</option> 
    <option value="&lt;">&lt;</option> 
    <option value="&gt;=">&ge;</option> 
    <option value="&lt;=">&le;</option> 
    <option value="==">&#61;</option> 
    <option value="!=">&ne;</option> 
</select><div class="overlay-arrow">&#9660;</div> 
</div> 

CSS:: görüntüyle

select.dropdown { 
    -webkit-appearance: none;  
    -moz-appearance: none;  
    appearance: none;  
    background-position: 22px 3px;     
    background-size: 13px 13px; 
    width: 40px; 
    height: 20px; 
    margin-left: 4px; 
    position: absolute; 
    cursor: pointer; 

} 

.overlay-arrow { 
    font-size: 9px; 
    color: red; 
    position: absolute; 
    right: 0px; 
    top : 10px; 
    cursor: default; 
    line-height: 1px; 

} 

.parent { 
    position: relative; 
    width: 40px; 
    height: 20px; 
    float: left; 
    margin: 0px; 
    padding: 0px; 
} 

Orjinal Cevap (jsFiddle: http://jsfiddle.net/swpha0s0/2/):

Bunu

gibi CSS kullanmak öneririm
select.dropdown { 
    -webkit-appearance: none;  
    -moz-appearance: none;  
    appearance: none; 
    background: url('http://www.durhamcollege.ca/wp-content/themes/dc/images/green_download_arrow.png') no-repeat;   
    background-position: 22px 3px;     
    background-size: 13px 13px; 
    width: 40px; 
    height: 20px; 
    margin-left: 4px; 
} 

.dropdown-container { 
    float :left; 
    margin: 0px; 
} 

input { 
    margin-top:4px; 
    float: left; 
    display: block; 
} 
input[type=checkbox]{ 
    margin-top:8px; 
} 

Sen statik background-konumunu değiştirmek ve ona istediğiniz gibi ortalamak zorunda ama sadece ok görünümünü değiştirmek ya da kendi imajını koymak gerekirse iyi. Görüntü/css veya javascript olmadan bunu yapmak mümkün değildir (widget'i tamamen değiştirmek isterseniz). Arka planı değiştirmek için tıkladığınızda bir sınıfı da değiştirebilirsiniz, böylece yukarıyı gösteren başka bir ok da olabilir.

+0

Öneriniz ile sorun olsa bir resim kullanıyorsanız, ben orijinal sonrası söylediği gibi, bir çözüm için bir resim kullanamazsınız olmasıdır. Sadece siyah varsayılan oku farklı bir renge dönüştürebilmek istiyorum. – bonzo

+0

Bunu bildiğim ve okuduğumdan, resim + css veya javascript + css olmaksızın hiçbir şekilde bu mümkün değildir. Söylediğin zaman, senin izin vermediğin anlamına gelmediğini düşünemezsin. Ama ben sadece bir kesmek düşündüm ve ben yayınlamak için gidiyorum;) ayarlı kal! –

+0

@takkun Lütfen güncellenmiş yanıtımı kontrol edin - bu en iyi yapılabilir.Lütfen ne düşündüğünüzü bana bildirin, aradığınız şey varsa onu kabul edin ve lütfen kullanma durumunu açıklayın, çünkü neden resimlere izin verilmediğini merak ediyorum. Başlığınızı düzenledim, bu yüzden daha açık :) –

İlgili konular