Как изменить стиль кнопки выбора [дублировать]

Ваш код getElementById() работает, поскольку идентификаторы должны быть уникальными, и поэтому функция всегда возвращает ровно один элемент (или null, если ни один не найден).

Однако getElementsByClassName() , querySelectorAll() и другие методы getElementsBy* возвращают массивный набор элементов. Итерации над ним, как и с реальным массивом:

var elems = document.getElementsByClassName('myElement');
for(var i = 0; i < elems.length; i++) {
    elems[i].style.size = '100px';
}

Если вы предпочитаете что-то более короткое, рассмотрите использование jQuery :

$('.myElement').css('size', '100px');

31
задан hungneox 25 June 2012 в 09:35
поделиться

6 ответов

Браузеры и ОС в большинстве случаев определяют стиль полей выбора, и практически невозможно изменить их только с помощью CSS. Вам нужно будет изучить методы замещения. Основной трюк - применить appearance: none, который позволяет вам переопределить некоторые стили.

Мой любимый метод:

http://cssdeck.com/ item / 265 / styling-select-box-with-css3

Он не заменяет элемент пользовательского интерфейса меню выбора ОС, поэтому все проблемы, связанные с этим, несуществующие (не являющиеся способный вырваться из окна браузера с длинным списком, являющимся основным).

Удачи:)

36
ответ дан mahemoff 22 August 2018 в 14:41
поделиться
  • 1
    Неприятный трюк, слишком плохой pointer-event, все еще далек от поддержки IE или даже полифилируется в IE. – Mihai Stancu 20 March 2013 в 00:21

для any1, используя ie8 и не хочу использовать плагин, я сделал что-то, вдохновленное Rohit Azad и блогом Bacotasan, я просто добавил диапазон, используя JS, чтобы показать выбранное значение.

html:

<div class="styled-select">
   <select>
      <option>Here is the first option</option>
      <option>The second option</option>
   </select>
   <span>Here is the first option</span>
</div>

css (я использовал только стрелку для BG, но вы могли поместить полное изображение и сбросить позиционирование):

.styled-select div
{
    display:inline-block;
    border: 1px solid darkgray;
    width:100px;
    background:url("/Style Library/Nifgashim/Images/drop_arrrow.png") no-repeat 10px 10px;
    position:relative;
}

.styled-select div select
{
    height: 30px;
    width: 100px;
    font-size:14px;
    font-family:ariel;

    -moz-opacity: 0.00;
    opacity: .00;
    filter: alpha(opacity=00);
}

.styled-select div span
{
    position: absolute;
    right: 10px;
    top: 6px;
    z-index: -5;
}

js:

$(".styled-select select").change(function(e){
     $(".styled-select span").html($(".styled-select select").val());
});
2
ответ дан bresleveloper 22 August 2018 в 14:41
поделиться

в Firefox 39 Я обнаружил, что установка границы для элемента select будет отображать стрелку как (2). Без границы, стрелка будет отображаться как (1). Я думаю, что это ошибка.

1
ответ дан GoTo 22 August 2018 в 14:41
поделиться

http://jsfiddle.net/u3cybk2q/2/ проверить на windows, iOS и Android (например, исправление xplorer)

.styled-select select {
   background: transparent;
   width: 240px;
   padding: 5px;
   font-size: 16px;
   line-height: 1;
   border: 0;
   border-radius: 0;
   height: 34px;
   -webkit-appearance: none;
}
.styled-select {
   width: 240px;
   height: 34px;
   overflow: visible;
   background: url(http://nightly.enyojs.com/latest/lib/moonstone/dist/moonstone/images/caret-black-small-down-icon.png) no-repeat right #FFF;
   border: 1px solid #ccc;
}
.styled-select select::-ms-expand {
    display: none;
}
<div class="styled-select">
   <select>
      <option>Here is the first option</option>
      <option>The second option</option>
   </select>
</div>

1
ответ дан rifa_at_so 22 August 2018 в 14:41
поделиться
  • 1
    Это не работает, и ссылка на скрипку нарушена. – Agu V 9 August 2016 в 17:17
8
ответ дан Rohit Azad 22 August 2018 в 14:41
поделиться

Стрелка выбора окна является родным элементом ui, это зависит от темы рабочего стола или веб-браузера. Используйте плагин jQuery (например, Select2 , Выбран ) или CSS.

1
ответ дан viclim 22 August 2018 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: