Padding не работает в Safari и IE в списке выбора
Знает ли кто-нибудь, почему мой Safari не выполняет прописку в избранных списках? Он отлично работает в FF, пожалуйста, скажите мне, что делать. есть ли проблема с doctype?
код:
<select style="padding-left:15px">
<option>male></option>
<option>female></option>
</select>
Я использую следующий doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Ответы
Ответ 1
Несмотря на то, что спецификация W3 не запрещает заполнение в блоках выбора, по какой-либо причине браузеры веб-браузера (Safari, Chrome) не поддерживают его. Вместо этого вы можете удалить padding-left
и использовать text-indent
вместо этого, добавив ту же сумму в поле выбора width
.
Из вашего примера в вашем комментарии:
<select id="sexID" name="user[sex]"
style="border:1px solid #C1272D;
width:258px; // 243 + 15px
text-indent:15px;
height:25px;
color:#808080;">
Ответ 2
Используйте комбинацию text-indent и line-height для создания иллюзии заполнения. Работает в Safari и также работает в IE.
<select style="text-indent:15px; line-height:28px;">
<option>male</option>
<option>female</option>
</select>
Ответ 3
Я знаю, что это старая проблема, но, возможно, более новое решение помогает людям, работающим над этим сейчас.
Я добавил -webkit-appearance: initial;
в свой стиль с дополнением, чтобы устранить проблему.
-webkit-appearance: none;
не помог мне в этом случае, потому что он показывает вместо этого текстовое поле.
Протестировано...
Safari v5.1.7 (7534.57.2) на окнах
Safari v8.0.6 (10600.6.3) на Mac
iPhone 6
Ответ 4
Попробуйте это, это работает для firefox, т.е. какой-то truble с дополнением, но работает с фоновым изображением.
Лучшие работы в Google Chrome и Firefox.
Это не работает в опере вообще, кроме дополнений.
Поэтому мне все равно, что он не работает в опере или другом браузере, потому что я их ненавижу, и не все проблемы решены для работы во всех браузерах.
Просто выберите опцию 208 пикселей и поставьте ее так.
У него есть некоторые элементы взлома, т.е.;)
.sl{
background-color: Transparent;
border: 0;
background: #181818;
color: #cccccc;
outline: none;
padding: 15px;
padding-left: 5px;
font-size: 8pt;
line-height: 10px;
width: 208px;
height: 29px;
-webkit-appearance: none;
}
<select style="background: url(select.gif) no-repeat 0 0;" name="some_countries" class="sl">
<option style="background: #000;" value="">What you need ?</option>
<option style="background: #000;" value="">I think it good</option>
<option style="background: #000;" value="">what do you think ?</option>
<option style="background: #000;" value="">Do you think the same lime me ? :)</option>
<option style="background: #000;" value="">So what are you wating ?</option>
<option style="background: #000;" value="">Grab it now and be happy ;)</option>
</select>
Посмотрите в действии, как это выглядит;)
Надеюсь, вы кое-что помогли;)
Ответ 5
Я только что исследовал ту же проблему. Ответ, который я придумал, заключается в том, чтобы установить свойства границы как заполнение, но прозрачно. Например
Оригинал:
select.paddedBox {
padding-left:15px;
}
становится:
select.paddedBox {
border-bottom:solid 0px transparent;
border-left:solid 15px transparent;
border-right:solid 0px transparent;
border-top:solid 0px transparent;
}
Если вы все еще хотите использовать границу, вы можете использовать свойство контура, чтобы установить его
Ответ 6
Для конкретного окна выбора примените CSS как "-webkit-appearance: none;"