目的:
我正在编写与此类似的代码来创建一个输入字段具有嵌入式按钮的组件:
http://codepen.io/anon/pen/pgwbWG?editors=110
如您所见,按钮绝对定位top
并bottom
设置为0
,以实现 100% 高度元素。
还要注意的是,文本输入的边框必须保持可见并包裹按钮。为了实现这一点,我margin: 1px
在按钮上添加了一个(应该)空间来显示周围的文本输入红色边框(通常在输入字段内容无效时)。
问题:
是在 Firefox 上它(大部分)正确呈现,而在 Chrome 上(显然在最新的 Safari 上)它将在按钮底部有 1px 的间隙。
CSS 看起来不错,但它似乎是渲染中的计算/舍入问题,按钮的底部或顶部边距并不是真正的 1px(可以看到它检查元素)。而且输入的填充似乎也有影响。
在不同的缩放率下,它会在button的顶部或底部添加或删除 1px 的边距,从而产生 1px-gap 或覆盖边框。
当我将按钮边距设置为时0px
,底部边距是固定的,但我在顶部松开了 1px 边距,最终覆盖了text-input的红色边框。
示例:
可能我解释不清楚或过于冗长,所以这里有一些错误的截图,来自 Chrome 上的不同缩放(注意 CSS 总是相同的):
解决方案:
我找不到跨浏览器解决方案。如何处理它并获得一致的组件?(请不要使用Javascript)