iPhone iOS不会正确显示盒子阴影

reb*_*ebz 49 webkit css3 mobile-webkit ios

该设计

响应式设计上的联系表单具有插入阴影和常规外部阴影的输入字段.见下图.

移动设备上的输入场设计


代码

input {
    background:#fff;
    height:auto;
    padding:8px 8px 7px;
    width:100%;
    box-sizing:border-box;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    border:#fff solid 3px;
    border-radius:4px;
    box-shadow:0px 0px 5px rgba(0, 0, 0, .25), inset 2px 2px 3px rgba(0, 0, 0, .2);
}
Run Code Online (Sandbox Code Playgroud)

问题

iOS v4 +无法正确显示框阴影.见下图.

输入框阴影渲染不正确


经测试

我尝试过使用-webkit-box-shadow.

-webkit-box-shadow:0px 0px 5px rgba(0, 0, 0, .25),
                   inset 2px 2px 3px rgba(0, 0, 0, .2);
Run Code Online (Sandbox Code Playgroud)

我已经申请display:block;了输入元素.


目前的解决方法

我宁愿不必这样做,但这是我能达到预期效果的唯一方法.

HTML

<p><input /></p>
Run Code Online (Sandbox Code Playgroud)

CSS

p {
   width:50%;
   box-sizing:border-box;
   -moz-box-sizing:border-box;
   -webkit-box-sizing:border-box;
   box-shadow:0px 0px 5px rgba(0, 0, 0, .35);
   border-radius:4px;
}

    input {
        background:#fff;
        height:auto;
        padding:8px 8px 7px;
        width:100%;
        box-sizing:border-box;
        -moz-box-sizing:border-box;
        -webkit-box-sizing:border-box;
        border:#fff solid 3px;
        border-radius:4px;
        box-shadow:inset 2px 2px 3px rgba(0, 0, 0, .2);
    }
Run Code Online (Sandbox Code Playgroud)

即使使用此解决方法,iOS上的插入阴影也无法正确呈现; 但它足够接近.


我的问题

是否可以在iOS设备上正确渲染单个元素上的多个box-shadow实例?如果没有,插入阴影怎么样?或者我是否正确使用此属性及其值?

提前致谢!

小智 153

尝试添加-webkit-appearance: none;iOS往往会搞乱表单.

  • 并记得把它放在盒子阴影之前,而不是之后 (7认同)
  • 修好了!先生,给我喝一杯. (3认同)
  • 它已经过了.3年,但是"iOS趋向于搞乱形式"..我必须投票:' - )注意:iOS box-shadow需要3件事.1)盒子阴影`-webkit-box-shadow上的供应商前缀:...`2)边界半径设置,例如1px`border-radius:1px` 3)禁用外观`-webkit-appearance:none;` (3认同)
  • 这在今天仍然有用.+1 (2认同)