Bu GitHub deposunda bulabileceğiniz çözümümü öneririm .
Bu , bir simge yazı tipinden gelen özel bir okla IE8 ve IE9 için de çalışır .
Özel Çapraz Tarayıcı Açılır Menüsü örnekleri : Çapraz tarayıcı özelliğini görmek için tüm tarayıcılarınızda bunları kontrol edin.
Her neyse, modern tarayıcılarla başlayalım ve sonra eski tarayıcılar için çözümü göreceğiz.
Chrome, Firefox, Opera, Internet Explorer 10+ için Açılır Ok
Bu tarayıcılar için , aynı oka sahip olmak için açılır menü için aynı arka plan resmini ayarlamak kolaydır .
Bunu yapmak için, tarayıcının select
etiket için varsayılan stilini sıfırlamanız ve yeni arka plan kuralları belirlemeniz gerekir (daha önce önerildiği gibi).
select {
/* you should keep these firsts rules in place to maintain cross-browser behaviour */
-webkit-appearance: none;
-moz-appearance: none;
-o-appearance: none;
appearance: none;
background-image: url('<custom_arrow_image_url_here>');
background-position: 98% center;
background-repeat: no-repeat;
outline: none;
...
}
appearance
Kurallar her okun aynı yönü yapmak istiyorsanız, siz yerde tutmalı, tarayıcılar varsayılan olanları sıfırlamak için hiçbiri ayarlanır.
background
Örneklerde kurallar farklı okları temsil SVG satır içi görüntülerle ayarlanır. Sağ kenarda bir miktar marj tutmak için soldan% 98 oranında konumlandırılmışlardır (konumu istediğiniz gibi kolayca değiştirebilirsiniz).
Doğru tarayıcılar arası davranışını sürdürmek için, yerinde bırakılması gereken diğer tek kural outline
. Bu kural, öğe tıklandığında görünen (bazı tarayıcılarda) varsayılan sınırı sıfırlar. Diğer tüm kurallar, gerekirse kolayca değiştirilebilir.
Simge Yazı Tipini kullanarak Internet Explorer 8 (IE8) ve Internet Explorer 9 (IE9) için Açılır Ok
Bu en zor kısım ... Ya da belki değil.
Bu tarayıcılar için varsayılan okları gizlemek için standart bir kural yoktur ( select::-ms-expand
IE10 + için olduğu gibi ). Çözüm, açılır listenin varsayılan oku içeren bölümünü gizlemek ve diğer tarayıcılarda kullanılan SVG'ye benzer bir ok simgesi yazı tipi (veya isterseniz bir SVG) eklemektir ( select
daha fazlası için CSS kuralına bakın) kullanılan satır içi SVG hakkında ayrıntılar).
İlk adım, tarayıcıyı tanıyabilen bir sınıf belirlemektir: kodun başında koşullu IE IF'leri kullanmamın nedeni budur. Bu IF'ler html
, eski IE tarayıcısını tanımak için belirli sınıfları etikete eklemek için kullanılır .
Bundan sonra select
, HTML'deki her div
şeyin bir (veya bir öğeyi sarabilecek herhangi bir etiket) ile sarmalanması gerekir . Bu sarmalayıcıda, simge yazı tipini içeren sınıfı ekleyin.
<div class="selectTagWrapper prefix-icon-arrow-down-fill">
...
</div>
Basit bir deyişle, bu sarmalayıcı select
etiketi simüle etmek için kullanılır .
Bir açılır pencere gibi davranmak için, sarmalayıcıda bir kenarlık olması gerekir, çünkü select
.
select
Sınırı kullanamayacağımıza dikkat edin, çünkü varsayılan oku gizlemek zorunda olduğumuz için onu sarmalayıcıdan% 25 daha fazla uzatmalıyız. Dolayısıyla sağ kenarlığı görünmemelidir çünkü kendisine overflow: hidden
uygulanan kuralla bu% 25 daha fazla saklıyoruz select
.
Özel ok simgesi-yazı tipi, :before
kuralın content
ok başvurusunu içerdiği sözde sınıfa yerleştirilir (bu durumda, bu bir sağ parantezdir).
Ayrıca bu oku olabildiğince ortalamak için mutlak bir konuma yerleştiriyoruz (farklı simge yazı tiplerini kullanıyorsanız, üst ve sol değerleri ve yazı tipi boyutunu değiştirerek bunları uygun şekilde ayarlamayı unutmayın).
.ie8 .prefix-icon-arrow-down-fill:before,
.ie9 .prefix-icon-arrow-down-fill:before {
content: ")";
position: absolute;
top: 43%;
left: 93%;
font-size: 6px;
...
}
Arka plan okunu veya simge yazı tipi okunu kolayca oluşturabilir ve bunları background-image
kuralda değiştirerek veya kendiniz yeni bir simge yazı tipi dosyası oluşturarak istediğiniz her biriyle değiştirebilirsiniz .