Подтвердить что ты не робот

<input type="submit"> ошибка заполнения на Safari mobile?

(Это похоже на вопрос (без ответа) # 3430506, но применяется к входным тегам вместо элементов HTML5.)

Вкл. < input type="submit" > кнопок, браузер Safari для iPhone/мобильных устройств добавляет отступы влево и вправо. Этого не происходит на настольной версии, а также на любых других браузерах для мобильных и настольных Webkit, которые я пробовал. По-видимому, размер шрифта в px с каждой стороны добавляется (т.е. Шрифт 14px означает, что общая ширина 14px + ширина текста + 14px).

В настоящее время я пытаюсь удалить следующее:

/* webkit user-agent stylesheet uses input[type="submit"] */

form input[type="submit"] { /* more specific to override webkit */ 
   -webkit-appearance:none;  
   -webkit-border-radius:0px;
   margin:0;  
   padding:0;  
   border:0;  
   display:block;
}

Я видел много ответов об использовании -webkit-appearance: none... это не имеет никакого значения. Не снимает округлые углы. Я сделал страницу для демонстрации того, как версия рабочего стола предоставляет различные объекты -webkit-appearance; все имеют -webkit-border-radius: 0 и приведенный выше код.

Попробуйте просмотреть их на рабочем столе Safari, затем iPhone:
http://deleri.com/test.html

(Safari Mobile снимок экрана для тех, у кого нет iPhone:)
deleri.com/safari.png

Хотя мне бы хотелось узнать, почему эта ошибка возникает, сейчас я больше беспокоюсь о ее исправлении. Я пробовал каждый тип отображения/переполнения/размер окна /-webkit-anything/width: авто/текст-отступ, который можно вообразить, и не может исправить его, установив вручную ширину (конечная ширина должна быть равна проценту, а странное дополнение применяется). Я начинаю сомневаться, если это какое-то непонятное свойство, или если таблица стилей пользовательского агента не перезаписывается. Любые мысли?

4b9b3361

Ответ 1

Если вы попытаетесь установить дополнение на огромное значение, скажем, 100px, вы заметите, что верхнее и нижнее заполнение увеличиваются, а влево и вправо остается неизменным по умолчанию в мобильном Safari. Поэтому я полагаю, что можно с уверенностью предположить, что это довольно просто считается ошибкой в ​​процедурах webkit iOS, и нет прямого решения, если Apple не решит проблему.

Обходным решением будет создание DIV, который будет выглядеть так, как вы хотите, и добавьте обработчик onclick, который отправит вашу форму. Нет необходимости когда-либо использовать настоящую кнопку отправки.

Ответ 2

У вас есть контроль над формой? aka: вы вручную вводили форму?

Если это так, добавьте в него тег id или class

<input type="submit" id="submit" value="submit">

затем настройте css на

form input #submit { /* more specific to override webkit */ 
   -webkit-appearance:none;  
   -webkit-border-radius:0px;
   margin:0;  
   padding:0;  
   border:0;  
   display:block;
}

Ответ 3

У меня была аналогичная проблема, и я заметил, что моя проблема была решена, когда я устанавливал фон в градиент вместо обычного фона.

Это как-то просто игнорировало значения прокладки

#submit{
    background:#a0b9dc;
    padding:9px 35px;
 }

Нижеприведенный код разрешил проблему заполнения для меня на кнопках отправки.

#submit{
    background:#a0b9dc;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #A0B9DC));
    background: -o-linear-gradient(bottom, #A0B9DC 0%);
    background: -moz-linear-gradient(bottom, #A0B9DC 0%);
    background: -webkit-linear-gradient(bottom, #A0B9DC 0%);
    background: -ms-linear-gradient(bottom, #A0B9DC 0%);
    background: linear-gradient(to bottom, #A0B9DC 0%);
    padding:9px 35px;
}

Ответ 4

Я столкнулся с этой ошибкой сегодня, когда моя мама сказала мне, что страница, которую я сделал, пропускает текст на ее старом iPhone 3G. Разумеется, я запустил свою жену, старую 3G, где-то лежал в ящике, и текст на одной из моих кнопок отбрасывается в сторону, потому что Safari вставляет гигантский интервал.

Хорошей новостью является то, что в последнем обновлении (не знаю точно, что, но у меня есть обновленный iPhone 4), эта ошибка исправлена.

Плохая новость заключается в том, что если пользователи не обновляют свои браузеры, я не могу найти никакого способа обойти это без использования тега.

Мой совет сейчас - проверить версию Mobile Safari. Если они используют последнюю версию (или какая бы версия не исправляла эту ошибку или выше), они получают страницу с помощью кнопки. Если нет, они могут получить страницу с альтернативными тегами, используемыми для создания кнопок. На моей странице это выглядит не так хорошо, и это немного неудобно, но я уже проверяю браузеры на основе мобильных или настольных версий сайта, поэтому это не слишком важно.

Надеюсь, что это поможет.

Ответ 5

Это может быть глупое предложение, но если проблема связана с

<input type="submit" /> 

Вы могли бы попробовать изменить его для

<button type="submit" />

Что делает то же самое, но может не иметь ошибки?