IOS 强制在输入端设置圆角和眩光

IOS 设备在表单输入上添加了很多烦人的样式,特别是在输入[ type = mit ]上。下面显示的是桌面浏览器和 iPad 上相同的简单搜索表单。

桌面:

Desktop

IPad:

iPad

输入[ type = text ]使用了一个 CSS 框阴影插入,我甚至指定了-webkit-orders-桡: none; 这显然会被覆盖。我的输入按钮的颜色和形状在 iPad 上完全变了样。有人知道我该怎么补救吗?先谢谢你。

93102 次浏览

have a look to normalize.css

There's a demo where you can test the form elements and see how they look like in ios. There are multiple webkit oriented properties.

The version I had working is:

input {
-webkit-appearance: none;
}

In some webkit browser versions, you may also be faced with the border-radius still being in place. Reset with the following:

input {
-webkit-border-radius:0;
border-radius:0;
}

This can be extended to apply to all webkit styled form components such as input, select, button or textarea.

In reference to the original question, you wouldn't use the value 'none' when clearing any unit based css element. Also be aware that this hides checkboxes in Chrome, so perhaps use something like input[type=text] or input[type=submit], input[type=text] or instead filter out those that don't use rounded corner settings such as input:not([type=checkbox]), input:not([type=radio]).

For the submit button don't use:

<input type="submit" class="yourstylehere" value="submit" />

Instead use the button tag:

<button type="submit" class="yourstylehere">Submit</button>

This worked for me.

You can get rid of some more webkits form, input, etc. styling with this:

input, textarea, select {
-webkit-appearance: none;
}

This is the what I use in my projects

* {
-webkit-tap-highlight-color: transparent;
}
a, article, div, h1, h2, h3, h4, h5, h6, img, section, span {
-moz-user-select: none;
-webkit-user-select: none;
}
input, select, textarea {
-webkit-appearance: none;
-webkit-border-radius:0;
border-radius: 0;
}

You also get this problem in some browsers if you have the following:

<a class="btn btn-primary" href="#" type="button">Link</a>


instead of:

<a class="btn btn-primary" href="#" role="button">Link</a>

This can happen if you change your input element for an anker element and forget to change type to role.

I had this problem on both Chrome and Safari on my IPad.