以下是您的问题的两个潜在解决方案:
使用 em 而不是百分比
我已经能够通过使用类似于 Squeezemod http://codepen.io/makerbox/pen/xksiK的技术来克服这个问题- 它使用 javascript 来获取浏览器窗口的宽度和高度,然后将其分解为 ems:
//set function to get the size of 1em depending on browser aspect and size
function squeezemod(){
var windowWidth = window.innerWidth;
var windowHeight = window.innerHeight;
var skinnyem = windowWidth / 95;
var fatem = windowHeight / 45;
var ratio = windowWidth / windowHeight;
if (ratio<2.1){
var emval = skinnyem;
}else{
var emval = fatem;
};
$("body").css({"font-size": emval + "px"});
};
//on resize do these functions
$(window).resize(function(){
squeezemod();
});
您还需要在 HTML 头中初始化该函数:
<script type="text/javascript">
//squeezemod();
</script>
使用 em 调整大小的所有内容都将根据浏览器窗口的大小调整大小。它也根据宽高比而变化。
您可能需要调整计算以使其适合您。Squeezemod 修复从来都不是 100%。
或者,使用 Safari 特定的边框
通过使用 javascript,将浏览器特定样式设置为您的项目类:
if ( $.browser.safari ){
$(".item").css('xxxxxx', 'xxxxxxx');
};
xxxxxx 是您定义样式的地方,例如 margin 1px 利用它来添加 Safari 以适合您项目的任何方式移除的宽度 - 边距、边框等。您甚至可以仅使用此方法为 Safari 完全重新定义宽度。