css - 带定位的动态表格布局 - firefox 错误?

标签 css html

仅限火狐!我正在使用具有页眉、正文和页脚的绝对定位表格。当页眉或页脚高度动态更改时,中间/正文单元格中的 var 元素必须符合单元格高度。这一切最初都可以在没有动态变化的情况下工作,但是当内部变量发生变化时,它就会失去其高度:100% 的能力。有趣的是:当我将位置 css 移动到表父节点时,它工作正常。

这是一个demo

代码如下:

<!-- WRONG result -->
<!-- Parent does not hold positional css -->
<div style="">
<table style="position:absolute;top:200px;left:100px;height:300px;width:300px;background:black">
<tr><td style="height:1%;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
<tr><td style="padding:0px;background:green">
<var style="height:100%;width:100%;display:block;background:red">With style.position set on table.<br><br>Once table cells height are dynamically altered, this var element (or div) looses its ability to measure height:100%</var>
</td></tr>
<tr><td style="height:20px;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
</table>
</div>

<!-- RIGHT result -->
<!-- Parent holds positional css -->
<div style="position:absolute;top:200px;left:500px;">
<table style="height:300px;width:300px;background:black">
<tr><td style="height:1%;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
<tr><td style="padding:0px;background:green">
<var style="height:100%;width:100%;display:block;background:red">With style.position set on table.parentNode<br><br>This one behaves how i expect it to</var>
</td></tr>
<tr><td style="height:20px;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
</table>
</div>

最佳答案

Chrome 比其他浏览器更智能,但这并不意味着其他浏览器有问题(我不是在谈论 IE,好吗?)。 Chrome 只是为您解决了一些错误或其他问题,Google Way。

当您将表格标记视为 div、img 或其他一些标记时,它的行为方式往往与它们相同。

所以在这里我们正在检索它的一个属性:

我只是切换了display:blockdisplay:table在 child ( <var> )

<!-- LEFT result -->
<div style="">
<table style="position:absolute;top:200px;left:100px;height:300px;width:300px;background:black">
<tr><td style="height:1%;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
<tr><td style="padding:0px;background:green">
<var style="height:100%;width:100%;display:table;background:red">With style.position set on table.<br><br>Once table cells height are dynamically altered, this var element (or div) looses its ability to measure height:100%</var>
</td></tr>
<tr><td style="height:20px;color:#FFF" onclick="this.innerHTML+=this.innerHTML">Click Me!<br></td></tr>
</table>
</div>

关于css - 带定位的动态表格布局 - firefox 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947743/

相关文章:

javascript - 使用 Javascript 使用 createDocumentFragment 添加长 html

java - Thymeleaf <select> 标签生成选项(数字)

javascript - Knockout.js 'enable' 绑定(bind)在IE8中隐藏按钮元素

html - Flexbox vs Twitter Bootstrap(或类似框架)

html - DIV 元素不适合网页长度

html - 如何在 CSS 中使文本居中并且最大宽度为 800px?

javascript - 输入文件在 ReactJS 上的悬停效果

html - 具有三个元素的标题,一左一中一右

javascript - jQuery 不处理事件

php - 如何使用 PHP 和简单的 HTML DOM 实现多个数组(+形成)