Таблица стилей пользовательского агента для Chrome дает радиус границы 5 пикселей для всех углов <select>
элемента. Я пытался избавиться от этого, применяя радиус 0px через мою внешнюю таблицу стилей, а также встроенный в сам элемент; Я пробовал оба, border-radius:0px
и -webkit-border-radius:0px;
я пробовал еще более конкретный border-top-left-radius:0px
(вместе с эквивалентом -webkit).
Никто не работает.
Когда я проверяю элемент в инструментах разработчика webkit, вычисляемый стиль по-прежнему перечисляет радиус в 5 пикселей. Но если я щелкну стрелку расширителя рядом с ним, чтобы увидеть подробности, она будет выглядеть так: element.style - 0px. И ниже это показывает внешнюю спецификацию css, которую я дал 0px, вместе со спецификацией таблицы стилей user-agent 5px. И оба эти последние два перечеркнуты, как и должно быть.
Любые идеи?
Ответы:
Это работает для меня (стили первого появления, а не выпадающий список):
http://jsfiddle.net/fMuPt/
источник
border: 0
и добавляете план, как:outline: 1px inset black; outline-offset:-1px
background-color: #yourbg
аborder-style: none
затем создайте div непосредственно перед раскрывающимся списком с помощьюposition: absolute
иborder-bottom: 1px solid #youpick
иdisplay: inline
. Стрелки сохранены, UX не поврежден, лучше исправить.Просто мое решение с выпадающим изображением
(inline svg)
Я использую бутстрап, поэтому я использовал
select.form-control
Вы можете использовать
select{
илиselect.your-custom-class{
вместо.источник
width: auto;
добавленная стрелка SVG перекрывает содержимое выбора. Это требует дополнительного дополнения к правой стороне 16px. Однако этот отступ виден во всех браузерах, что нарушает дизайн в других браузерах. У меня пока нет решения для этого ...Если вы хотите иметь квадратные границы и все еще хотите маленькую стрелку расширения, я рекомендую это:
источник
outline
по умолчанию:focus
. Если вы собираетесь использовать этот ответ, вы должны изменить свойselect:focus
стиль, чтобы визуально показать, чтоselect
элемент становится активным или:focus
редактируется при щелчке.Здесь есть несколько хороших решений, но этот не требует SVG, сохраняет границу через
outline
и устанавливает ее на кнопке.источник
Хотя верхний ответ удаляет границу, он также удаляет стрелку, что делает его чрезвычайно трудным, если не невозможным, для пользователя идентифицировать элемент как элемент выбора.
Мое решение было просто вставить белый div (с border-radius: 0px) позади выбора. Установите его положение на абсолютное, его высоту на высоту выбора, и вам будет хорошо идти!
источник
Решение с пользовательской правой стрелкой раскрывающегося списка, использует только CSS (без изображений)
источник
background-position: calc(100% - 4px) center, 100% center;
это перемещает стрелку к центру выбора и полностью вправо. Большое спасибо за отличный старт!Один из способов сделать его простым и избежать путаницы со стрелками и другими подобными функциями - просто поместить его в элемент div с тем же цветом фона, что и у тега select.
источник
Избегать стрелок следует избегать. Решение, которое сохраняет стрелки раскрывающегося списка, - сначала удалить стили из раскрывающегося списка:
Затем создайте div непосредственно перед раскрывающимся списком в вашем HTML:
И стиль div, как это:
Встроенный дисплей будет препятствовать тому, чтобы div перешел на новую строку, абсолютное положение удаляет его из потока страницы. Конечным результатом является хорошее чистое подчеркивание, которое вы можете стилизовать так, как вам нравится, и ваш раскрывающийся список все еще ведет себя так, как ожидал пользователь.
источник
Вставка box-shadow делает свое дело.
демонстрация
источник
Почему-то на самом деле это зависит от цвета границы ??? При использовании стандартного цвета углы остаются закругленными, но если вы слегка измените цвет, закругление исчезнет.
https://jsfiddle.net/hLg70o70/2/
источник
хорошо, я получил решение. надеюсь, это поможет вам :)
источник
Ниже приведен способ сделать это;
источник
Я использовал решение jordan314, но затем добавил класс «border-light» для выбора. Если у вас есть класс border-light, определенный в css, вы можете использовать его напрямую. Он просто определяет границу как белый). Я изменил границу на квадрат / убрал радиус и сохранил стрелку.
Вот что я сделал:
если у вас нет предопределенного пограничного света, просто добавьте в свой CSS:
источник
Firefox: 18
источник
Установить CSS как
Попробуйте, если это работает.
источник