经过对各种浏览器的测试发现,以Webkit和Presto为内核的浏览器会出现如下情况:
当父容器width%5!=0,子元素左右布局width分别为A_width+B_width=100%,问题见图
当打开一个宽度%5==0的窗口时,这个像素差值就没有了。(当然你也可以尝试拖动改变窗口大小,发现右边没有差值的时候,点击“Our width?”可以查看这时的所有元素的宽度)
我觉得是内核对百分比算法上可能存在问题,已经将BUG提交给Webkit了,让他们测试一下是不是有这个问题吧。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
html,body { width:100%;}
</style>
</head>
<body id="body" style="margin:0;padding:0;">
<div id="green" style="width:100%; background:green;">I'm green!</div>
<div id="red" style="width:20%; float:left; background:red;">I'm red!</div>
<div id="blue" style="width:80%; float:left; background:blue;">I'm blue!</div>
<input type="button" value="Our width?" onclick="showOurWidth()"/>
<input type="button" value="Open width%5==0" onclick="openWindow()"/>
<script type="text/javascript">
function getWidth(id) {
return document.getElementById(id).offsetWidth;
}
function showOurWidth() {
alert('Body width:'+getWidth('body'));
alert('Green width:'+getWidth('green'));
alert('Red width:'+getWidth('red'));
alert('Blue width:'+getWidth('blue'));
alert('Green width == Red+Blue = '+(getWidth('green')==(getWidth('red')+getWidth('blue'))));
}
function openWindow() {
window.open(window.location, '', 'width=500, height300');
}
</script>
</body>
</html>
补充:示例代码中是采用的20%和80%,如果是其他百分比(19% 81%),width%?==0的?可能会是其他值,这种情况应该能够说明,渲染的算法可能是小数点进位上出现了问题。
- 大小: 21.4 KB
- 大小: 13.9 KB
分享到:
相关推荐
**Cef浏览器内核**是基于Chromium Embedded Framework (CEF) 的一款开源浏览器组件,它为开发者提供了在C#编程环境中构建嵌入式浏览器应用的能力。CEF是一个强大的框架,允许开发者将Chromium浏览器引擎集成到自己的...
测试浏览器内核版本
"WebKit.NET-0.5"是一个将Chrome浏览器的内核WebKit移植到.NET框架的项目,使得开发者可以使用C#这种编程语言来创建自己的简单浏览器或Web应用。 WebKit是一个开源的渲染引擎,广泛用于许多浏览器,如早期的Safari...
csEXWB项目为开发者提供了一种用C#实现的Web浏览器内核,这使得开发者能够更方便地在.NET Framework环境下构建自定义的浏览器应用程序。C#语言的特性,如强类型、垃圾回收机制以及丰富的类库支持,使得csEXWB成为...
在本"腾讯X5浏览器内核静态集成demo"中,我们将探讨两种集成方式,即动态集成和静态集成,以及它们的应用场景。 首先,我们来看**动态集成**。动态集成通常指的是在运行时通过下载和安装插件或组件来实现功能。在这...
浏览器内核检测工具浏览器内核检测工具浏览器内工具.核检测工具浏览器内核检测工具浏览器内核检测工具ss
VB环境下使用非IE内核的浏览器控件,Google
每种内核都有其优势和局限性,选择哪一种内核往往取决于浏览器制造商的目标和策略,以及用户对速度、兼容性、安全性、隐私等方面的偏好。随着技术的不断发展,浏览器内核的市场竞争激烈,不断推动着网页浏览体验的...
标题“得到浏览器尺寸,判断浏览器内核”涉及的是前端开发中的一个重要方面,即浏览器兼容性和用户界面交互。这篇博文可能是关于如何获取浏览器窗口的尺寸以及识别浏览器所使用的渲染引擎(内核)。在网页开发中,...
浏览器内核Chromium 84是Google Chrome浏览器的核心组件,它是开源的,允许开发者们根据自己的需求进行定制和改进。这个版本在2020年发布,主要关注性能优化、安全更新以及对Web标准的支持。在游戏开发领域,尤其是...
总之,"C# chrome内核浏览器"项目提供了一种在C#环境中利用Chrome技术实现Web浏览功能的方式,适用于需要在桌面应用中集成浏览器功能的开发者。通过Visual Studio 2015进行开发和测试,结合提供的组件或库,开发者...
双核浏览器,如Maxthon、360浏览器等,结合了Trident和WebKit两种内核,主要目的是为了兼顾兼容性和性能。它们会根据网页的特性自动切换内核,对于那些专门为IE设计,依赖ActiveX控件的网站,双核浏览器会使用...
Android framework 系统编译 新版WebView浏览器内核101.0.4951.61
浏览器内核的选择直接影响到浏览器的性能、兼容性和网页展示效果。以下是一些关于浏览器内核的重要知识点: 1. **Trident内核**:由微软开发,主要用于Windows平台上的Internet Explorer系列浏览器。Trident内核因...
在IT行业的前端开发与网页测试领域,了解不同的浏览器内核及其特性是至关重要的。这是因为不同的浏览器内核在解析HTML、CSS以及执行JavaScript时可能存在差异,这直接影响到网页的兼容性和性能表现。根据提供的文件...
Java 浏览器调用IE内核是一种技术手段,它允许开发者通过Java应用程序来利用Internet Explorer的渲染引擎显示网页内容。这种技术在某些场景下很有用,比如在旧系统的兼容性需求或者特定功能的实现上。以下将详细介绍...
因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览器也很多,这也是Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。 事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致...
【标题】"易语言谷歌69内核最新浏览器源码" 涉及的主要知识点是易语言编程和基于谷歌浏览器Chromium内核的开发。易语言是一种以中文为编程语句的编程工具,旨在降低编程的门槛,使更多的人能够理解和创建程序。而...
标题中的“cpp”通常指的是C++编程语言,而“wke”和“libcef”是两种不同的浏览器内核。在IT行业中,浏览器内核是控制网页渲染和与用户交互的关键组件。现在,我们来深入探讨这个话题。 首先,Wke(Webkit for ...