您可以将表格行高度设置为0吗? IE 8,Chrome,Firefox,Opera。
为什么,你问!好吧,我有一行是在用户点击父行时动态构建和显示的。麻烦的是,如果没有行,单击时,它仍会显示一个空的1像素高行。
这是孩子gridview:
<asp:TemplateField HeaderStyle-CssClass="hidden-column" ItemStyle-CssClass="hidden-column" FooterStyle-CssClass="hidden-column">
<ItemTemplate>
<tr>
<td colspan="8" >
<div id='<%# Eval("PublicationID") %>' style="display: none; position: relative;">
<asp:GridView ID="GridView2_ABPubs" runat="server" AutoGenerateColumns="false" Width="100%"
DataKeyNames="PublicationID" Font-Names="Verdana" Font-Size="small">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="ChildPublicationSelector" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="NameAbbrev" HeaderText="Publication Name" SortExpression="NameAbbrev" />
</Columns>
</asp:GridView>
</div>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
CSS:
.hidden-column
{
display: none;
}
JavaScript的:
<script language="JavaScript" type="text/javascript">
var currentlyOpenedDiv = "";
function CollapseExpand(object) {
var div = document.getElementById(object);
//if (currentlyOpenedDiv != "" && currentlyOpenedDiv != div) {
// currentlyOpenedDiv.style.display = "none";
//}
if (div.style.display == "none") {
div.style.display = "inline";
currentlyOpenedDiv = div;
}
else {
div.style.display = "none";
}
}
</script>
答案 0 :(得分:1)
我不认为0行高度技巧完美无缺 - 无论如何 - 使用Firefox和IE它会在桌面上形成一个更胖的边界。如果关闭边框,这对你来说可能无关紧要(尽管我认为你仍然会在表格顶部找到一个空白的1像素行)。许多网页设计师在第一行使用间隔gif(1x1透明gif,大小适当宽度)以获得相同的效果,从而解决了这两个问题。
答案 1 :(得分:0)
如果你愿意,你可以通过display:none隐藏一行,但我认为浏览器总是给盒子的最小高度为1px
答案 2 :(得分:0)
因为我必须有50位代表发表评论,所以我会发一个答案。
我认为你想要的东西可以用普通的javascript完成, 我用了一个水果的例子。希望你不介意。
点击This Fiddle查看以下代码的作用。如果这是你想要的。 :)
的javascript:
$(document).ready(function(){
$(".toggler").click(function(e){
e.preventDefault();
$('.fruit'+$(this).attr('data-prod-fruit')).toggle();
});
});
HTML:
<table>
<tr>
<td>Product</td>
<td>Price</td>
<td>Destination</td>
<td>Updated on</td>
</tr>
<tr>
<td>Oranges</td>
<td>100</td>
<td><a href="#" class="toggler" data-prod-fruit="1">+ On Store</a></td>
<td>22/10</td>
</tr>
<tr class="fruit1" style="display:none">
<td></td>
<td>120</td>
<td>City 1</td>
<td>22/10</td>
</tr>
<tr class="fruit1" style="display:none">
<td></td>
<td>140</td>
<td>City 2</td>
<td>22/10</td>
</tr>
<tr>
<td>Apples</td>
<td>100</td>
<td><a href="#" class="toggler" data-prod-fruit="2">+ On Store</a></td>
<td>22/10</td>
</tr>
<tr class="fruit2" style="display:none">
<td></td>
<td>120</td>
<td>City 1</td>
<td>22/10</td>
</tr>
<tr class="fruit2" style="display:none">
<td></td>
<td>140</td>
<td>City 2</td>
<td>22/10</td>
</tr>
和一些CSS让它看起来很漂亮:
table{
border-collapse: collapse;
border-style: hidden;
margin:0 auto 0 auto;
position:relative;
width:100%;
font-size:12px;
background-color:#edf1f7;
}
table td, table th {
border: 1px solid black;
height:30px;
}
答案 3 :(得分:0)
td {
line-height: 0;
padding: 0;
}
tr {
border-spacing: 0;
}
答案 4 :(得分:-1)
一个很好的起点是在<td>
元素的样式上设置 overflow:hidden 。