2014-02-06 142 views
0

我使用的是包括CSS,有精灵形象的收件箱图标和插图箱阴影添加到我的每一个单行的表单元素(我删除了图像的URL,因为它在头部动态定义(CDN问题))。1px的边界移动

形式在Chrome,FF看起来不错,和IE11在PC上,但在Android上1px的边框消失了!

这里是有问题的CSS:

.textbox { 
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; 
    font-size:14px; 
    color:#8e8d8d; 
    font-family:"Droid Sans"; 
    padding:11px 15px 10px 50px; 
    background-color:#fdfdfd; 
    width: 100%; 
    display:block; 
    border:1px solid #d8d8d8; 
    margin:13px 0 -3px 0; 
    -webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px; 
    box-shadow:inset 2px 2px 4px #f1f1f1; 
} 
input[type="text"], input[type="password"], select, .remember input[type="checkbox"]+label, .remember input[type="checkbox"]:checked+label { 
    background:url() no-repeat; 
    background-size: 39px 297px; 
} 
input.user  { background-position:0 -31px; } 
input.password { background-position:0 -69px; } 
input.code  { background-position:0 -107px; } 
input.confirm { background-position:0 -145px; } 
input.email { background-position:0 -183px; } 
input.company { background-position:0 -221px; } 
input.phone { background-position:0 -259px; } 

任何想法?

编辑:

为了清楚起见,这里是用来设置背景URL的响应代码:

input.textbox, select.textbox, .checkbox input[type="checkbox"]+label, .checkbox input[type="checkbox"]:checked+label { 
    background-image:url('images/page-modal-sprites-1x.png'); 
} 

@media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi){ 
    /* Retina images */ 
    input.textbox, select.textbox, .checkbox input[type="checkbox"]+label, .checkbox input[type="checkbox"]:checked+label { 
     background-image:url('images/page-modal-sprites-2x.png'); 
    } 
} 

EDIT2:

用户httpgio缩小了问题的插入框阴影,删除导致边界正确显示。它也仅在移动Chrome上发生。海豚10没有这样的问题。

我现在正在寻找一种方法来保持我的box-shadow不失Android上的Chrome移动我的境界。

+0

消失?或者很难在小屏幕上看到?当你放大Android时,它在那里吗?其他操作系统呢? –

+0

@Paulie_D下面是一个突出显示该问题的图库:http://imgur.com/a/asILJ如果设置为1px,则边框完全消失。我手边没有任何其他移动操作系统。我可以想象的唯一影响是我用来在1x像素密度背景和2像素密度bg之间进行选择的条件代码,但是在那里没有改变边界,只是对background-url的响应改变。 ..我会将其添加到帖子,以防万一。 –

回答

0

我认为第一步要找到你的解决方案是在告诉我们您所使用的手机浏览器。这是在多个移动浏览器或只是一个特定的?

.textbox { 
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; 
    font-size:14px; 
    color:#8e8d8d; 
    font-family:"Droid Sans"; 
    padding:11px 15px 10px 50px; 
    background-color:#fdfdfd; 
    width: 100%; 
    display:block; 
    border:1px solid #d8d8d8; 
    margin:13px 0 -3px 0; 
    -webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px; 
} 
input[type="text"], input[type="password"], select, .remember input[type="checkbox"]+label, .remember input[type="checkbox"]:checked+label { 
    background:url() no-repeat; 
    background-size: 39px 297px; 
    border:1px solid #d8d8d8; 
} 
input.user  { background-position:0 -31px; } 
input.password { background-position:0 -69px; } 
input.code  { background-position:0 -107px; } 
input.confirm { background-position:0 -145px; } 
input.email { background-position:0 -183px; } 
input.company { background-position:0 -221px; } 
input.phone { background-position:0 -259px; } 

问题不得不与盒子阴影。插入框阴影实际上是与边框重叠,并且不让其显示。由于我们无法在CSS元素的属性上设置z-index,因此下一个解决方案是使用div来包装它,并将border和border-radius应用于包装div。但是,由于他想要一个完全简约的方法,所以最好省去箱形阴影。

+0

我使用的浏览器是针对KitKat的Chrome Mobile。我曾在Dolphin 10中试过,并且边框渲染得很好。 –

+1

刚刚看到您的画廊......您是否可以暂时禁用任何方块阴影,并查看是否能解决您的问题?如果是这样,它可能是一个z索引的问题。 – httpgio

+1

你是正确的,禁用插入阴影会导致边框出现。但是我讨厌因为一个浏览器的bug而不得不去除阴影......有没有办法改变盒子阴影的z-index? –