我正在创建一个支持 jQuery 的网页,其中包含指向外部站点的图像链接,用作浏览器主页。每组相关链接(开发、社交等)都包含在一个文件夹中,可以通过单击其标题来展开或折叠该文件夹。这在 Firefox、Chrome 和 Safari 中运行良好。
在 Internet Explorer 中(惊喜!)我得到了这种奇怪的行为。假设有三个垂直堆叠的文件夹。如果我折叠第一个文件夹,则第二个和第三个文件夹及其内容会向上移动以填充空间,但第二个文件夹的内容除外,它们在页面上保持相同的绝对位置。
我已经创建了页面的精简版本,显示问题所需的最低限度。在这里,我有名为“Red”、“Green”和“Blue”的文件夹,每个文件夹都包含一个图像。
如果我单击红色标题,蓝色图像将随其文件夹向上移动,但绿色图像保持在相同位置,现在位于蓝色图像后面。
但是,如果我将文件夹标题和正文元素上的边框样式设置为“无”而不是“实心”,则绿色图像会按预期与其他元素一起移动。
网页文件夹.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type='text/javascript' src='jquery-1.7.2.min.js'></script>
<script type='text/javascript' src='folder.js'></script>
<link rel='stylesheet' type='text/css' href='style.css'></link>
<title>Folder Example</title>
</head>
</html>
样式表 style.css:
div.folder-header
{
background-color:#f0f0f0;
border-color:#e0e0e0;
border-width:1px;
cursor:pointer;
}
div.folder-body
{
background-color:#f8f8f8;
border-color:#e0e0e0;
border-width:1px;
}
div.link-viewport
{
position:relative;
}
img.link-image
{
position:absolute;
display:block;
border:none;
}
JavaScript 文件 layout.js:
$(document).ready(function()
{
var border = true;
var folder = function(title, src)
{
var section = $('<div>').appendTo('body');
var header = $('<div>').addClass('folder-header').text(title).appendTo(section);
var folder = $('<div>').addClass('folder-body').appendTo(section);
var viewport = $('<div>').addClass('link-viewport').css('width', 64).css('height', 64).appendTo(folder);
var image = $('<img>').addClass('link-image').attr('src', src).appendTo(viewport);
header.css('border-style', border ? 'solid' : 'none');
folder.css('border-style', border ? 'solid' : 'none');
header.click(function()
{
folder.toggle();
});
};
folder("Red", "red.png");
folder("Green", "green.png");
folder("Blue", "blue.png");
});
图像文件 red.png、green.png 和 blue.png:
任何建议都感激不尽!