2013-04-20 13 views
7

Na początek sprawdź ten skrzypce ->http://jsfiddle.net/xV4s3/Dlaczego domyślne opcje selekcji są niezmienione przez nadmiar: ukryty?

Jak widać, mamy owijkę z overflow: hidden i wewnątrz jest rodowitym select z trzech opcji i ul stylizowany wyglądać select z trzech elementów.
Teraz, gdy klikniesz ul, możesz zobaczyć jego zmiany wysokości (ze względu na skrypt), ale nic poza opakowaniem nie jest widoczne z powodu overflow: hidden. I działa zgodnie z oczekiwaniami.

Moje pytanie dotyczy domyślnych opcji select, ponieważ nie mogłem znaleźć niczego w specyfikacjach.
Dlaczego one nie są dotknięte przez overflow: hidden?

+2

Prawdopodobnie dlatego, że menu rozwijane nie jest tworzone jako element potomny opakowania, ani nawet element 'select'. – BoltClock

+0

Zastanawiam się nad czymś podobnym - jest to menu 'select' uważane za element HTML, ale mimo to możesz zastosować pewne style do elementów' option', które wpływają na to menu, co czyni go dziwnym. – Kaloyan

Odpowiedz

2

To prawdopodobnie nic więcej niż szczegół implementacji. Jedyną rzeczą, o której CSS2.1 mówi o overflow control, jest to, że właściwość overflow kontroluje przepełnienie zawartości zgodnie z blokiem zawierającym, do którego właściwość jest stosowana. Nie definiuje zachowania i renderowania elementów formularza i takich w odniesieniu do tej właściwości.

Tak jak napisałem, jest oczywiste, że rozwijane menu nie jest tworzone jako element potomny opakowania, ani nawet element select. W rzeczywistości jest możliwe, że większość przeglądarek zdecyduje się renderować je całkowicie niezależnie od obszaru roboczego i jako element interfejsu na poziomie aplikacji lub na poziomie systemu (samemu, z powodów praktycznych). Zwróć uwagę, że chociaż możesz zastosować CSS do elementów option, aby wpłynąć na sposób wyświetlania rozwijanego menu, nie możesz tak naprawdę zmienić stylu menu.

+0

Ma sens. :) Początkowo myślałem, że menu jest w pewnym sensie potomkiem, co wydaje się nie być i zależy tylko od sposobu renderowania przeglądarki. Dziękuję za poświęcenie czasu na odpowiedź. – Kaloyan

Powiązane problemy