Я только что создал это для обнаружения устройств iOS:
138 (function () {
139 // ios detection (select menus are ugly)
140 if (navigator.userAgent.toLowerCase().search('iphone') != -1 || navigator.userAgent.toLo werCase().search('ipod') != -1 || navigator.userAgent.toLowerCase().search('ipad') != -1 ) {
141 // set css rule for input
142 var style = document.createElement('style');
143 style.setAttribute('type','text/css');
144 style.innerHTML = 'select{ color: #333; }'; // custom css for select on ios
145 document.getElementsByTagName('head')[0].appendChild(style);
146 }
147 })();
Я считаю, что мог бы сделать то же самое для Opera.
Что касается исходной проблемы, я создал новый сайт для проверки проблемы:
1 <head><style type='text/css'>
2 select {
3 background-color: #353535;
4 border: 2px solid #555555;
5 color: #c0c0c0;
6 }
7 </style></head><body>
8 <select>
9 <option>0</option>
10 </select></body>
Что происходит, когда я устанавливаю стили, которые изменяют границу ИЛИ фоновый цвет для выбора, он меняется от аккуратно выглядящего стиля выпадающего меню до старомодно выглядящей квадратной кнопки, а также избавляется от некоторого заполнения.Однако никто не использует Opera, так что я, вероятно, никогда не смогу решить проблему.