Varsayılan ok simgesini bir açılır listeden nasıl kaldırırım (öğe seç)?


297

Bir HTML <select>öğesinden açılır oku kaldırmak istiyorum . Örneğin:

<select style="width:30px;-webkit-appearance: none;">
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    ...
</select>

Opera, Firefox ve Internet Explorer'da nasıl yapılır?

resim açıklamasını buraya girin


Firefox'ta gizlemek için bazı cevaplar /
hackler

2
görünüm #slectType { -webkit-appearance: none; appearance: none /*menulist*/ ! önemli; max-width: 300px; line-height: 0px;} input[type='text'], select {max-height: 30px;max-width: 300px; text-align-last: center; /*text-indent: 5px;*/} button:hover {color: #FFF;background-color: #566977;box-shadow:none;border-color: #759AB5;} #errorMSG{z-index: 2147483647;} Tarayıcılar [CH: -webkit, FF: -moz, IE: -ms, Oprea: -o];
Yash


Yanıtlar:


383

Kesmeye veya taşmaya gerek yok. IE'de açılır ok için bir sözde öğe var:

select::-ms-expand {
    display: none;
}

22
çünkü soru IE'deki açılır okun nasıl kaldırılacağıydı. IE9 bu işlevselliğe sahip değildir, ancak bu IE10'da çalışır. Windows XP kullanmadığınız sürece IE10 kullanıyor olmalısınız. IE11 neredeyse çıktı. diğer seçenek gerçek açılır düğmeyi gizlemek ve kendi yapmak için çirkin bir CSS kesmek.
nrutas

2
link İşte taşma gizlemek için çirkin kesmek
nrutas

1
IE11'de çalışır. Gracias!
ConorLuddy

Bu Firefox'ta çalışmadı. Firefox için aşağıdaki Varun Rathore çözümünü kullanın.
AlmostPitt

1
bu yalnızca IE içindir. Elbette Firefox'ta çalışmaz.
nrutas

289

Daha önce bahsedilen çözümler krom ile iyi çalışır ancak Firefox'ta çalışmaz.

Hem Chrome'da hem de Firefox'ta (IE'de değil) iyi çalışan bir Çözüm buldum . SELECTelement ürününüz için CSS'ye aşağıdaki özellikleri ekleyin ve kenar boşluğunu üst tarafını ihtiyaçlarınıza göre ayarlayın.

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    text-indent: 1px;
    text-overflow: '';
}

Bu yardımcı olur umarım :)


9
Bu hile 31 sürümünden itibaren Firefox'ta çalışmayı durdurdu (Mayıs 2014 itibariyle Nightly derlemesinde). Bu arada neler yapılabileceğini görelim. Yazdığım bu gist
João Cunha

Joäo Cunha'nın yöntemi kontrol edildi ve başarıyla kullanıldı. Kontrol ettiğinizde, bağlantıyı firefox'ta açmayı unutmayın!
NoobishPro

Benim için çalıştı. Html pdf oluşturmak için wkhtmltopdf için kullanmak istedim. Teşekkürler
Faysal

188

Açılır oku seçimden kaldırmanın basit yolu

select {
  /* for Firefox */
  -moz-appearance: none;
  /* for Chrome */
  -webkit-appearance: none;
}

/* For IE10 */
select::-ms-expand {
  display: none;
}
<select>
  <option>2000</option>
  <option>2001</option>
  <option>2002</option>
</select>


4
Sadece appearance: noneChrome ve Firefox Quantum (v59 ve üstü) için kullandım. Yani gerek satıcı önekleri artık .
CPHPython

2
@CPHPython Bu yorumdaki tarayıcıların çoğunda hala "önekle kısmi destek" etiketi var ...
Dan

2
@CPHPython, düzeltilmemişappearance: none çalışmanın çalışması için projenizde Autoprefixer yüklü olmalıdır . Çoğu tarayıcı hala ön eklere ihtiyaç duyar.
Daniel Tonon

@DanielTonon oh, belki böyle bir postcss paketi kullanıyordum. Tam olarak hatırlamıyorum, ancak yorum yapmadan önce tarayıcının müfettişini kontrol ettiğimi düşünüyorum.
CPHPython

58

Bunu dene :

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 2px 30px 2px 2px;
    border: none;
}

JS Bin: http://jsbin.com/aniyu4/2/edit

Internet Explorer kullanıyorsanız:

select {
    overflow:hidden;
    width: 120%;
}

Veya Choosen'ı kullanabilirsiniz: http://harvesthq.github.io/chosen/


1
JSBin'i IE ve firefox'ta test ettiniz mi? Her ikisinde de yerleşik açılır oku hala görüyorum.
Martin Smith

Choosen ile görüş, bence en iyi seçim.
EpokK

"Internet Explorer kullanıyorsanız"? Ne olursa olsun IE kullanan ve onlara hitap eden nüfusun büyük bir yüzdesi göz önünde bulundurmanız gerekir
Danny Mahoney

Sitelerimizin kullanıcı istatistikleri: 5.21% IE veya 2.37% Edge
nu everest

"IE kullanırsanız" doğru olur, "IE'yi desteklemeniz gerekiyorsa" demek daha uygun olur, ancak bu gün ve yaşta, bir web çalıştırıyorsanız teknolojiniz kitlenize uygun şekilde hedeflenmelidir. geliştirici hedefli web sitesi sonra ben HERHANGİ IE sürümlerini desteklemeniz gerekecek şüpheliyim.
Brandito

17

Bunu dene:

HTML:

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>

CSS:

.customselect {
    width: 70px;
    overflow: hidden;
}

.customselect select {
   width: 100px;
   -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}

15

Bunu deneyin benim için işe yarıyor,

<style>
    select{
        border: 0 !important;  /*Removes border*/
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        text-overflow:'';
        text-indent: 0.01px; /* Removes default arrow from firefox*/
        text-overflow: "";  /*Removes default arrow from firefox*/
    }
    select::-ms-expand {
        display: none;
    }
    .select-wrapper
    {
        padding-left:0px;
        overflow:hidden;
    }
</style>
    
<div class="select-wrapper">
     <select> ... </select>
</div>

Gizleyemezsiniz ama taşma gizli kullanarak aslında kaybolmasını sağlayabilirsiniz.


6

Sadece ipliği tamamlamak istedim. Çok açık olmak gerekirse bu IE9'da işe yaramaz, ancak küçük css hile ile yapabiliriz.

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>

.customselect {
    width: 80px;
    overflow: hidden;
   border:1px solid;
}

.customselect select {
   width: 100px;
   border:none;
  -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}

5

IE'de Kaldır Seç okunda yanıtladığım gibi

Sınıfı ve sözde sınıfı kullanmak istiyorsanız:

.simple-control css sınıfın mı

:disabled sözde sınıf

select.simple-control:disabled{
         /*For FireFox*/
        -webkit-appearance: none;
        /*For Chrome*/
        -moz-appearance: none;
}

/*For IE10+*/
select:disabled.simple-control::-ms-expand {
        display: none;
}

4
select{
padding: 11px 50px 11px 10px;
background: rgba(255,255,255,1);
border-radius: 7px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
color: #8ba2d4;

}


2

Bunu tamamen işlevsel bir çapraz tarayıcı desteği ile yapamazsınız.

50 piksellik bir bölmeyi seçmeyi deneyin ve bunun sağındaki istediğiniz bir açılır simgeyi kaydırın

Şimdi bu div içinde 55 piksellik genişliğe sahip seçim etiketini ekleyin (kabın genişliğinden başka bir şey olabilir)

Bence istediğini alacaksın.

Sağda herhangi bir damla simgesi istemiyorsanız, görüntüyü sağda yüzmek hariç tüm adımları uygulayın. Anahat belirle: Seçilen etiket için odakta 0 bu kadar


1
Bu ipuçlarından yardım alamıyorum. Burada kimse yeterli kod verebilir mi? Teşekkür ederim.
user2301515

2

javascript ile tam stil ve kontrol edebilmeniz için normal seçim açılır listelerini HTML / CSS ile değiştiren DropKick.js adlı bir kütüphane var. http://dropkickjs.com/


2

Tüm tarayıcılar ve tüm sürümler için çalışır:

JS

jQuery(document).ready(function () {    
    var widthOfSelect = $("#first").width();
    widthOfSelect = widthOfSelect - 13;
    //alert(widthOfSelect);
    jQuery('#first').wrap("<div id='sss' style='width: "+widthOfSelect+"px; overflow: hidden; border-right: #000 1px solid;' width=20></div>");
});

HTML

<select class="first" id="first">
  <option>option1</option>
  <option>option2</option>
  <option>option3</option>
</select>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.