卸下'空格'由“;显示:无”;d元素
Removing the 'spaces' occupied by "display:none"d elements
我搜索了一下,发现这个问题被问了很多次,但我似乎找不到适合我当前布局的解决方案。
我有这个
html:
<div>
<table>
<tr>
<td>
<input type="button" id="buttonHello" class="hiddenButton">
<b id="textHello">
</td>
</tr>
<tr>
<td>
<input type="button" id="buttonBye" class="hiddenButton">
<b id="textBye">
</td>
</tr>
</table>
</div>
css:
.hiddenButton{
display:none;
}
在我的js中,当我做这样的事情时,
if (something) document.getElementById('buttonBye').style.display='inline';
我仍然得到了未显示的按钮和文本所占据的空间。我尝试了不同的解决方案,但没有一个是一致的。
谢谢!
edit:是的,这是一个模型,我现在还不能访问真正的代码。
默认情况下,表格单元格有填充,表格有单元格间距,使其美观有序。
为了完全隐藏这些,您需要实际切换<tr>
元素的display
,而不是它们的内容。
根据浏览器的不同,表的单元格间距和单元格填充有一个默认值(非零)。
因此,如果不按如下方式重置值,带有空单元格的表将占用一些空间:
<table cellpadding="0" cellspacing="0">
通过添加这些属性,表将折叠为0x0维度。(基于使用Firefox检查table
元素。)
更符合标准的方法是:
table {
border-spacing: 0;
}
这给出了类似的效果,但留下了一个2x4维度的表,因此有一点剩余空间。
最后,去除空间最可靠的CSS方法是
tr {
display: none;
}
(只需记住使用display: table-row
重置原始显示类型即可。)
从HTML5开始,cellpadding
和cellspacing
已经过时,但浏览器仍然可以响应这些属性。
Fiddle演示:http://jsfiddle.net/audetwebdesign/MzzrV/
相关文章:
- 选择带有空格分隔单词的元素
- 删除仅空格数组元素
- Resharper 9 在 JavaScript 事件处理程序中为 HTML 元素添加了空格
- 在自定义标记中查找包含特定值的元素,并带有空格分隔的值
- jQuery:如果元素为空,不包括空格和注释
- 流星:如何使用空格键来应用不同的CSS元素
- 如何在不使用 CSS 的情况下在动态添加的 javascript DOM 元素中保留空格
- 如何在数组的元素之间插入空格,该数组作为 HTML 表单的输入读取
- 元素 ID 上的角度插值会导致向属性值添加尾随空格
- 删除每个数组元素开头的空格
- 如何使用jQuery隐藏仅包含空格的HTML元素
- 卸下'空格'由“;显示:无”;d元素
- 为什么空格会影响我的html元素中的JavaScript
- 如何在 ng 重复元素后添加空格
- 根据元素宽度向javascript字符串添加空格
- 流星.js&mongodb-如何在每个空格中传递当前元素的id
- jQuery定位ID中有空格的元素
- 如何在元素后面添加空格
- 使用javascript在元素之间添加空格/新行
- 为什么& # 39;mouseenter& # 39;Event does只对每次迭代中空格键#的第一个元素起作用