Чего вы пытаетесь достичь? Каждый из вариантов должен быть дополнен на 5 пикселей? Или просто основная коробка?
DeeKayy90,
да ... мне нужны отступы для значения параметра
Пиюш Марвания
1
Несмотря на то, что это не совсем заполнение, для заполнения левого поля вы можете использовать & nbsp; в то время как это получает фиксированный: jsfiddle.net/chech/u5rcheqf/1
Кажется, работает в текущем Chrome 39.0.2171.71 (64-бит) и сафари (я тестировал это только на Mac).
Кажется, это удаляет стиль по умолчанию, добавленный к входу выбора (он также удаляет стрелку раскрывающегося списка), но позволяет вам затем использовать свой собственный стиль без его переопределения хромом.
Другое решение, которое работает во всех браузерах , - это добавление к первому варианту в списке выбора, проверьте это и это , Надежда помогает.
Shaiju T 05
2
@stom Это может сработать для левого и правого отступов, но я не думаю, что это сработает для верхнего и нижнего отступов.
rmmoul 05
1
Это больше не работает, по крайней мере, на моей машине! :)
Нуно Круз
1
Вы также можете использовать плагин как выбор2 или выбран , который преобразует ваши <select><option/></select>элементы в полностью настраиваемые <ul><li/></ul>элементы. Таким образом, вы можете оформить все свои раскрывающиеся списки в соответствии с другими полями ввода или общим пользовательским интерфейсом.
Tad Wohlrapp
3
стрелки теряются с этим :(
Рауль Х
40
Этот простой прием сделает текст отступом. Работает хорошо.
Спасибо за ответ. Для меня удивительно, что спустя столько лет с тех пор, как появились веб-сайты, HTML и CSS, по-прежнему отсутствует возможность стилизовать такие вещи, как заполнение параметров выбора. Стилизация и расположение элементов могут быть очень неприятными, но в разработке для Android это намного проще. Я не понимаю, почему веб-среда с HTML и CSS кажется такой «незавершенной», «незавершенной» по сравнению с настольной и родной мобильной средами.
Брайан
2
возможно, в ближайшем будущем Интернет станет более красивым, и разработчики получат руку помощи теневого дома - robdodson.me/shadow-dom-styles :) надеюсь, разработчики получат контроль над внутренним слоем элементов формы. Хотя RIP IE.
Pravin Waychal
2
@Bryan Web - это старая технология, и поэтому в ней есть некоторые старые идеи, которые не были улучшены. Из-за поддержки браузеров новые функции всегда медленно доходили до кого-либо, и из-за отсутствия невнимательности (есть существующие обходные пути, которые люди делают, и конечный пользователь не замечает, что этих браузеров не хватает) ничего не меняется.
Это, безусловно, лучшее решение, которое я когда-либо видел. Но у меня это сработало только тогда, когда это height: calc(1.2em + 24px);не такmax-height: calc(1.2em + 24px);
Юлий
Юлиус Я проверил, все ли основные браузеры работают с максимальной высотой. но использование атрибута высоты также является хорошей возможностью.
Али Суфьян
3
Очень, ОЧЕНЬ простая идея, но вы можете изменить ее соответствующим образом. Это сделано не для того, чтобы хорошо выглядеть, а только для того, чтобы передать идею. Надеюсь, поможет.
@PiyushMarvaniya Я понимаю, однако, насколько я помню, невозможно изменить отдельные элементы с помощью параметра выбора. Вот почему я предложил альтернативу.
DeeKayy90
1
В этом примере нет навигации с помощью клавиатуры (стрелки или сочетания клавиш Mac) и инструментов веб-доступности.
Петр Лужецкий
Опять же, вопрос заключался не в создании настраиваемого раскрывающегося списка, а в добавлении отступов. Я дал простую основу для OP в соответствии с их требованиями, однако я не буду создавать для них настраиваемый элемент управления. =)
DeeKayy90
1
Если вы собираетесь использовать раскрывающийся список UL / LI, я бы предложил просто использовать раскрывающийся виджет Bootstrap. Версии 2 и 3 поддерживают role = "menu" и role = "navigation" для включения клавиш со стрелками. Имеет смысл использовать то, что было хорошо проверено ИМО.
mbokil
@mbokil +1, определенно хороший вариант, а не изобретать велосипед, используйте то, что есть.
DeeKayy90
2
Это не работает при optionвводе, потому что это раскрывающееся меню, созданное «системой», но вы можете установить paddingдля выбора.
Просто установите box-sizingсвойство content-boxв свой CSS.
вы можете установить отступы для выбора - отлично работает в Chrome 75
danday74 02
1
У меня есть небольшая хитрость для решения твоей проблемы. Но для этого вы должны использовать javascript. Если вы обнаружили, что браузер Chrome, вставьте « фиктивные » параметры между всеми параметрами. Задайте новый класс для этих « пустышек » и отключите их. Высота « фиктивных » параметров вы можете определить с помощью свойства font-size .
Не заполнение, но если ваша цель просто увеличить его, вы можете увеличить font-size. И использование его с font-size-adjustуменьшает размер шрифта до нормального при выборе, а не в параметрах, поэтому в конечном итоге он становится optionбольше.
Не уверен, работает ли он во всех браузерах или будет продолжать работать в текущем состоянии.
Если вы просто хотите сделать отступ для случайных, произвольных <option />элементов, вы можете использовать , что имеет наибольшую кроссбраузерность среди решений, размещенных здесь ...
К сожалению, <optgroup />разрешен только один уровень, который в настоящее время поддерживается браузерами. (Источник: w3.org .) Лично я считаю, что эта часть спецификации нарушена, но вы всегда можете расширить до третьего, четвертого и т. Д. Уровней отступа, используя описанный выше трюк.
Кажется, это работает в Chrome, но не в Firefox (последняя версия). Firefox по-прежнему ориентируется только на стиль в невыделенном поле перед раскрывающимся списком.
Ответы:
Я только что нашел способ применить дополнение к вводу выбора в Chrome
select{ -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 5px; }
Кажется, работает в текущем Chrome 39.0.2171.71 (64-бит) и сафари (я тестировал это только на Mac).
Кажется, это удаляет стиль по умолчанию, добавленный к входу выбора (он также удаляет стрелку раскрывающегося списка), но позволяет вам затем использовать свой собственный стиль без его переопределения хромом.
Я наткнулся на это исправление, используя код отсюда: http://fettblog.eu/style-select-elements/
источник
к первому варианту в списке выбора, проверьте это и это , Надежда помогает.<select><option/></select>
элементы в полностью настраиваемые<ul><li/></ul>
элементы. Таким образом, вы можете оформить все свои раскрывающиеся списки в соответствии с другими полями ввода или общим пользовательским интерфейсом.Этот простой прием сделает текст отступом. Работает хорошо.
select { text-indent: 5px; }
источник
Кажется, что
К сожалению, браузеры webkit пока не поддерживают стили тегов параметров.
вы можете найти аналогичный вопрос здесь
Наиболее широко используемым кроссбраузерным решением является использование ul li
Надеюсь, поможет!
источник
Я исправил это с помощью этого
select { max-height: calc(1.2em + 24px); height: calc(1.2em + 24px); } max-height: calc(your line height + (top + bottom padding)); height: calc(your line height + (top + bottom padding));
источник
height: calc(1.2em + 24px);
не такmax-height: calc(1.2em + 24px);
Очень, ОЧЕНЬ простая идея, но вы можете изменить ее соответствующим образом. Это сделано не для того, чтобы хорошо выглядеть, а только для того, чтобы передать идею. Надеюсь, поможет.
CSS:
ul { width: 50px; height: 20px; border: 1px solid black; display: block; } li { padding: 5px 0px; width: 50px; display: none; }
HTML:
<ul id="customComboBox">   <li>Test</li> <li>Test 2</li> <li>Test 3</li> </ul>
Сценарий:
$(document).ready(function(){ $("#customComboBox").click(function(){ $("li").toggle("slow"); }); });
ДЕМО
источник
Это не работает при
option
вводе, потому что это раскрывающееся меню, созданное «системой», но вы можете установитьpadding
для выбора.Просто установите
box-sizing
свойствоcontent-box
в свой CSS.Значение по умолчанию
select
-border-box
.select { box-sizing: content-box; padding: 5px 0; }
источник
У меня есть небольшая хитрость для решения твоей проблемы. Но для этого вы должны использовать javascript. Если вы обнаружили, что браузер Chrome, вставьте « фиктивные » параметры между всеми параметрами. Задайте новый класс для этих « пустышек » и отключите их. Высота « фиктивных » параметров вы можете определить с помощью свойства font-size .
CSS:
option.dummy-option-for-chrome { font-size:2px; color:transparent; }
Сценарий:
function prepareHtml5Selects() { var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() ); if(!is_chrome) return; $('select > option').each(function() { $('<option class="dummy-option-for-chrome" disabled></option>') .insertBefore($(this)); }); $('<option class="dummy-option-for-chrome" disabled></option>') .insertAfter($('select > option:last-child')); }
источник
Не заполнение, но если ваша цель просто увеличить его, вы можете увеличить
font-size
. И использование его сfont-size-adjust
уменьшает размер шрифта до нормального при выборе, а не в параметрах, поэтому в конечном итоге он становитсяoption
больше.Не уверен, работает ли он во всех браузерах или будет продолжать работать в текущем состоянии.
Протестировано в Chrome 85 и Firefox 81.
select { font-size: 2em; font-size-adjust: 0.3; }
<label> Select: <select> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> </select> </label>
источник
Нет JQuery - Нет стороннего файла js
function clickComboBox(){ comboOpt = document.getElementsByClassName("opt"); for (i = 0; i < comboOpt.length; i++) { if (comboOpt[i].style.display === "block") { comboOpt[i].style.display = "none"; } else { comboOpt[i].style.display = "block"; } } } function clickOpt(value1,text1){ document.getElementById("selectedValue").value=value1; document.getElementById("customComboBox").innerHTML=text1; clickComboBox(); }
#customComboBox{ width: 150px; height: 20px; border: 1px solid #CCCCCC; display: block; padding: 2px 5px; } .opt{ padding: 5px 0px;background-color:#CCCCCC; width: 160px; display: none; }
<div id="customComboBox" onClick="clickComboBox()"> -Select Value- </div> <input type="hidden" id="selectedValue"> <div class="opt"> <div onClick="clickOpt('01','Test1')"><img src="https://pasteboard.co/J6940Vs.png" height="20">Test1</div> <div style="padding-left:10px;" onClick="clickOpt('02','Test2')">Test2</div> <div onClick="clickOpt('03','Test3')">Test3</div> </div>
умный код - используйте jquery
источник
Произвольное отступление от любого варианта
Если вы просто хотите сделать отступ для случайных, произвольных
<option />
элементов, вы можете использовать
, что имеет наибольшую кроссбраузерность среди решений, размещенных здесь ....optionGroup { font-weight: bold; font-style: italic; }
<select> <option class="optionGroup" selected disabled>Choose one</option> <option value="sydney" class="optionChild"> Sydney</option> <option value="melbourne" class="optionChild"> Melbourne</option> <option value="cromwell" class="optionChild"> Cromwell</option> <option value="queenstown" class="optionChild"> Queenstown</option> </select>
Упорядоченный отступ параметров
Но если у вас есть отсортированная упорядоченная структура ваших данных, рекомендуется использовать
<optgroup/>
синтаксис ....<select> <optgroup label="Australia" default selected> <option value="sydney">Sydney</option> <option value="melbourne">Melbourne</option> </optgroup> <optgroup label="United Kingdom"> <option value="london">London</option> <option value="glasgow">Glasgow</option> </optgroup> </select>
К сожалению,
<optgroup />
разрешен только один уровень, который в настоящее время поддерживается браузерами. (Источник: w3.org .) Лично я считаю, что эта часть спецификации нарушена, но вы всегда можете расширить до третьего, четвертого и т. Д. Уровней отступа, используя
описанный выше трюк.источник
Вы можете использовать
font-size
свойство для опции, если вам нужно.источник
Просто установите высоту тега выбора
select{ height: 30px; max-height: 30px; }
источник
Вы должны настроить таргетинг на select для своего CSS вместо опции select.
select { padding: 10px; margin: 0; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; }
Посмотреть эту статью Стилизация окна выбора с помощью CSS3», чтобы узнать о других вариантах стиля.
источник