示例页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Button test</title>
<style>
* { border: none; margin: 0; padding: 0; }
body { padding: 5em; }
span { background: lightblue; display: inline-block; }
button { background: red; outline: 1px solid red }
button div { background: yellow; }
button::-moz-focus-inner {
padding: 0;
border: 0;
}
button {
-webkit-appearance: none;
-webkit-box-sizing: content-box;
-webkit-box-align: start;
-webkit-border-fit: lines;
-webkit-margin-collapse: discard;
}
</style>
</head>
<body>
<span>Adjacent text</span><button><div>Button</div></button>
</body>
</html>
这是图片:
您可以在按钮中看到额外的白色填充。是否有可能在Safari浏览器中摆脱填充?
答案 0 :(得分:2)
有点迟到了,但我发现它超越了webkit边框:
-webkit-border-fit:border !important;
为我做了一个享受。对于Magento特别有用,webkit-border-fit
属性有时派上用场,但可能会导致某些<button>
出现问题。
答案 1 :(得分:1)
以下来自The Filament Group的CSS已经在所有浏览器中使用了一段时间了。 CSS的基础,用于剥离所有样式的按钮如下:
span
用于滑门技术(优于您当前使用的div
,这可能是一个问题),可以通过链接找到完整的样式列表。< / p>
button {
position: relative;
border: 0;
padding: 0;
cursor: pointer;
outline: none; /* for good measure */
overflow: visible; /* removes extra side padding in IE */
}
button::-moz-focus-inner {
border: none; /* overrides extra padding in Firefox */
}
button span {
position: relative;
display: block;
white-space: nowrap;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* Safari and Google Chrome only - fix margins */
button span {
margin-top: -1px;
}
}
答案 2 :(得分:1)
问题在某些版本的Safari中得到修复,我不确定究竟是什么,但最新版本(5.1.5)对我有用。
答案 3 :(得分:0)
<button>
等表单元素通常作为本机操作系统控件实现/绘制,因此它们在不同浏览器中的外观和行为可能不同。如果您想完全控制样式,最好使用<a>
标记。
答案 4 :(得分:0)
button { background: red; outline: 1px solid red, position: fixed; }
解决Chrome和&amp ;;中额外填充的问题。苹果浏览器。你必须指定position: fixed
,这解决了我的问题。希望它也适合你们!