Форум программистов, компьютерный форум, киберфорум
Web-мастеринг
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/48: Рейтинг темы: голосов - 48, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 66

Цвет выделения в select multiple

28.11.2006, 15:43. Показов 9041. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос: как поменять цвет выделения в select'е с стандартного темно-синего на другой?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2006, 15:43
Ответы с готовыми решениями:

<select multiple>
Всем привет! Каким образом можно обрабатывать &lt;select multiple name=iii&gt; через POST еcли в iii помещается только последнее значение....

Снятие выделения с пункта <select multiple>
У меня есть &lt;select multiple&gt;. Нужно, чтобы при первом клике на любой его пункт в первый раз пункт выделялся, а при повторном клике...

Как сделать чтобы было возможность повторного выделения опции в select multiple?
В мультиплей селексе выбирает 1 и тотже элемент только 1 раз, как это исправить? Добавлено через 40 минут select2

9
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 66
28.11.2006, 18:24  [ТС]
пробовал
CSS
1
2
3
option:focus{
    background-color:#00FF00;
}
не получилось(
0
DarkSet
28.11.2006, 19:31
Чесно говоря никогда не встречал возможности сменить цвет выделения, нигде. Даже в самой винде сменить этот цвет вроде нельзя. Хотя это и странно.
Если возможность изменить это какой то опцией есть было бы тоже интересно ее узнать.
Ну а если делать через функции то нужно:
http://msdn2.microsoft.com/en-us/library/ms536969.aspx http://msdn2.microsoft.com/en-us/library/ms536969.aspx
http://msdn2.microsoft.com/en-us/library/ms536967.aspx http://msdn2.microsoft.com/en-us/library/ms536967.aspx
это о том как перехватывать действие селекта. Дальше берем и то что выделено селектим:
http://msdn2.microsoft.com/en-us/library/ms536735.aspx http://msdn2.microsoft.com/en-us/library/ms536735.aspx
а потом до кучи хайлайтим по своему, учитывая системный селект.
Способ конечно сложный, даже не знаю стоит ли овчинка выделки.
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 66
29.11.2006, 15:53  [ТС]
Так вот меня и интересует каким образом хайлайтить.

Все остальное работает, т.е. я перехватываю событие onfocus, и получаю индекс элемента.
0
DarkSet
29.11.2006, 16:15
попробуй применить фильтр, либо
object.style.filter="invert()" - инвертирует цвета, либо
object.style.filter="mask(color=green)" - параметр - цвет фона, цвет текста станет белым.
А, ну да, я понял проблему, ты наверное не метод хайлайта не знаешь а как его применить
Значит нужно на он клик селекта поставить скрипт которые сначала отменит все предыдущие хайлайты, то есть если ты используешь фильтр как я выше написал то ко всем вложенным елементам применить object.style.filter="none". Дальше надо нужный нам елемент отхайлайтить.
Возникает вопрос - как это все сделать? И тут нам поможет то что селект по своей сути является массивом содержащим группу опшнов. Обращение:
selectName.elements[i] - получаем объект елементов. Соответственно описанная словами выше функция будет иметь вид:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function sselect(index) //переменная - номер выделенного опшна
{
 for (var i=selectName.elements.length-1; i>0; i--) //идем по всем опшнам селекта, с конца в начало
 {
  selectName.elements[i].style.filter="none"; //отменяем фильтр который был
  if (i==index) //если текущий елемент - тот что мы должны выделить то
  {
   selectName.elements[i].style.filter="mask(color=green)" //выделяем фильтром
  }
 }
}
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 66
29.11.2006, 19:12  [ТС]
не получается.

я поменял elements на options так как совсем ничего не работало.



и в style жестко пробовал прописать - не получилось.



option class="ch_" style="filter:mask(color=green)"



даже в хинтах не нашел filter.
0
DarkSet
29.11.2006, 21:11
да, не elements я описался - не туда глянул в доке ) но и не item а options
ДЕйствительно фильтры не применяются ни к селекту вцелом ни к опшнам в частности, но в принципе я посмотрел - опшну можно поставить стиль цвета и фона отдельно от других опшнов.
Вот, скрипт выделяет то что нам надо нужным бекграундом, при желании в строку можно добавить любое выделение стилями. Единственное чего не хаватает - не убирается системное выделение, потому все зря . Не знаю пока как системное выделение убрать.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function sselect(j) //переменная - номер выделенного опшна
{
for (var i=(window.document.getElementById("sel").options.length-1); i>=0; i--) //идем по всем опшнам
 {
  window.document.getElementById("sel").options[i].style.cssText="background-color:inherit"; //убираем стиль фона который был
  if (i==j) //если тот елемент что выбран
  {
   window.document.getElementById("sel").options[i].style.cssText="background-color:red"; //то ставим наш фон
  }
 }
}
sel - ID нашего селекта
DarkSet
29.11.2006, 21:44
Я его сделал! )
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function sselect(j) //переменная - номер выделенного опшна
{
window.document.getElementById("sel").selectedIndex=-1; //отменяет системное выделение - для системы больше нет выделенных елементов!
for (var i=(window.document.getElementById("sel").options.length-1); i>=0; i--) //идем по всем опшнам
 {
  window.document.getElementById("sel").options[i].style.cssText="background-color:inherit"; //убираем стиль фона который был
  if (i==j) //если тот елемент что выбран
  {
   window.document.getElementById("sel").options[i].style.cssText="background-color:red"; //то ставим наш фон
  }
 }
}
Правда на какую то долю секунды системное выделение все равно проскакивает ). Главное - не забыть что после этих манипуляций для системы выделенных елементов больше нет, так что если ты попробуешь отправить данные формы не обработав выделение вручную то от селекта этого ничего не пошлется.
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 66
30.11.2006, 14:28  [ТС]
ха. как же мне работать без selectedIndex?) да и моргание тоже не плюс. странно что нельзя поменять цвет стандартным подходом. ладно, спасибо большое и за это)
0
DarkSet
30.11.2006, 15:12
ну как как, елементарно ) создаешь в форме скрытое поле, в тот скрипт добавляешь изменение значения этого скрытого поля на значение поселекченого опшна, имя скрытого поля делаешь таким каким раньше было имя селекта, и все - нужные данные передадутся при сабмите.
А если тебе нужен именно выбранный индекс для еще каких то скриптов, ну тоже не проблема - либо делаешь глобальную переменную и в нее сохраняешь, либо тоже скрытое поле, присваиваешь его значение индекс выбранного и пользуешься.
Мигание, ну да, но не так оно и заметно, в принципе )
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2006, 15:12
Помогаю со студенческими работами здесь

получить все записи из <select multiple='multiple'
как через JQUERY получить все записи из &lt;select multiple='multiple'

<SELECT ... MULTIPLE>...</SELECT> Как вытащить всё что выбрано?
Есть форма SELECT c MULTIPLE ON. Как в ASP вытащить всё что выбрал пользователь? (Желательно на VBScript)

Select multiple
Нужен комоокс с возможностью множественного выора Написал так: &lt;select multiple=&quot;multiple&quot; id=&quot;category&quot; &gt;...

Listbox - multiple select
Имеется ASP-страница и база MS Access. На странице имеется несколько листбоксов. Раньше мне нужно было заносить только одно выбранное...

select multiple , просмотр
Привет! Я уже писала один пост ниже, но, наеврное, он сложный иили никому не хотелось сидетьи разбираться в нём. Мне надо изменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru