这真让我烦恼。我正在使用GridView并希望以这样的方式对其进行格式化,使得边框在所有浏览器中显示相同。目前,我在IE,FF和Chrome之间的结果各不相同。我不确定我在CSS中做错了什么(我对CSS很新)但是必须正确,因为其中一个浏览器随时都能正确显示边框。 gridview CSS如下:
.gridViewData
{
height:auto;
width:544px;
position:relative;
text-align:center;
background-color:#7D9EBA;
border:solid thin black;
border-right:none 0px black;
}
.gridViewData td
{
padding:2px;
border-top-style:none;
border-bottom-style:solid;
border-left-style:solid;
border-right-style:none;
border-color:Black;
border-width:thin;
}
.gridViewData th
{
height:10px;
width: 544px;
position:relative;
text-align:center;
border-top-style:dashed;
border-bottom-style:solid;
border-left-style:solid;
border-right-style:none;
border-color:Black;
border-width:thin;
background-color:white;
}
.gridViewData .alt
{
background-color:Red;
}
.gridViewData .pgr
{
background-color:Orange;
}
我希望桌子看起来像这幅粗略的绘图:D。标题在单元格之间应该没有边框。
____________________________
|____________________________|
|___|__________|________|____|
|___|__________|________|____|
|___|__________|________|____|
在IE中,标题没有顶部边框。在FF中,它看起来很好,在Chrome中标题中有分隔符。 这已经困扰了我一段时间,所以希望有人可以对此有所了解。
由于
答案 0 :(得分:3)
使用GridView属性来实现此目的,而不是将CSS应用于生成的表元素。例如,可以通过将CSS应用于属性来设置标题样式:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.headerstyle.aspx
修改强>
请注意,声明性bordercolor属性添加内联样式声明,该声明仅适用于表本身,而不适用于单个单元格。以编程方式添加bordercolor属性不使用内联样式,而是使用HTML bordercolor属性,这些属性适用于表中的所有边框:
OnRowDataBound="MyGrid_RowDataBound"
protected void MyGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (TableCell tc in e.Row.Cells)
{
tc.Attributes["style"] = "border-color: #000";
}
}
我发布了一篇关于此事的博客文章 - 查看Lee Dumond的评论:
http://www.codersbarn.com/post/2009/05/31/Set-Color-of-GridLines-in-Gridview.aspx#comment