5

IE6'da ve muhtemelen 7'de, o zaman otomatik olarak herhangi bir değerin genişliğini ayarlarsanız, bu seçenekteki seçenekler daha genişse Seçimin genişliği, kesilir. Bu kötü. Firefox bunu yapamayacak kadar akıllıdır.seçeneklerinin bir seçime uyup uymadığını söyleyebilmenin bir yolu - IE

Soru: Seçeneklerin javascript ile kesilip kesilmediğini nasıl anlarım?

Bu sorunu nasıl ele aldınız, sonra genişliği otomatik olarak mı ayarlıyorsunuz?

+0

Benzer bir sorunla karşılaştım @http: //stackoverflow.com/questions/1528828/applying-css-with-jquery-stops-select-from-showing-drop-down-list –

cevap

5

İyi soru. Burada bir rant biraz ama IE'nin <select> kontrollerinin uygulanması abysmal. O (diğerleri arasında eminim) Aşağıdaki sorunları var: (eğer fark ettik gibi) overflow talimatlar

  • bu magic ability to sit overtop of all other controls on the page sahip olursa olsun, <option> elemanları kapalı <select> kesintileri üzerinde genişliğini ayarlayarak

    • , pozisyon ve katmandan bağımsız olarak (z-index) talimatlar. Bu "iletişim" widget'larının erken geliştiricileri için büyük bir PITA oldu; iletişim kutusunun arkasındaki herhangi bir açılır kapanma, iletişim kutusunun üstünden taşacaktı.
    • you cannot hide/show individual <option> elements
    • <select>
    • you cannot disable individual <option> elements
    • Eğer her <option> bir value özelliği ayarlanmamış yaparsanız seçilen <option>
    • can't set the innerHTML property to a string of new option items
    • ayarlanmış css stilleri yansıtmaz, mySelectBox.value sessizce
    • başarısızlistesinde gezinmek için klavye okları kullanırkenunsurları, her tuş üzerinde change olay yangınlar <option> s ve <optgroup> s üzerinde
    • css stilleri genellikle tamamen (only backgound-color and color work)
    • programlı seçenekler listesini değiştirme göz ardı edilir (Opera da bu sorunu vardır) açılan (bunun için berbat gizler Açılır pencerenin görünür kalmasını isteyen "giriş önceliği" uygulama girişimleri.
    • IE7, görüntülendiğinde ekrandaki tüm seçeneklere uymaya çalışır. gösterildiğinde büyük listeleri için bu açılır içeriği dropdow ait üstünlük oturmak anlamına gelir
    • senin sorununa gelince

    , bir çözüm için (kendi başına bu yanlış değil, ancak diğer IE sürümleri ile tutarsız) geçiş width seçenekler gösterilir ve sırt seçenekleri kapalı bir dizi genişliğine burada belirtildiği gibi, ayarlanmış "auto" için: http://css-tricks.com/select-cuts-off-options-in-ie-fix/

    Bu açıkça bir dezavantaj olduğu kadar vida belge akışı olarak komşu elemanların tümü width:auto ayarını hesaba katar.

  • +0

    Eğer harika olduğunu düşünüyorsanız soru, bunu değerlendirebilirsiniz +1 –

    +1

    @Robert: harika yorum. –

    +0

    Bana tüm diğer ekstra bilgileri verdiğiniz için teşekkürler, bazı şeyleri bilmiyordum ve şimdi yapıyorum =). Bu css-hileci çözümü olarak, evet, çünkü onu kullanmak için gerçekten çok çirkin görünüyor etrafında her şeyi değiştirir çünkü berbat – mkoryak