我正在使用 ASP DetailsView
,并且希望项目标题根据所处的模式而有所不同DetailsView
。
我有两张图片 - 每一张都是 500 像素宽和 30 像素高。右边的 300px 是白色的,而左边的 200px 是绿色或灰色的,这取决于表单将处于何种模式(灰色表示只读,绿色表示编辑)。我希望彩色区域成为字段标题的背景,图像的白色部分位于实际绑定数据的后面。
使用皮肤和一些简单的 CSS,这非常适用于 Firefox(21.0 版):
<asp:DetailsView SkinID="DetailsViewSkin" runat="server" CssClass="DetailsView"
RowStyle-CssClass="DetailsViewRow"
EditRowStyle-CssClass="DetailsViewRowEdit"
FieldHeaderStyle-CssClass="DetailsViewHeader"/>
.DetailsView
{
width: 500px;
}
.DetailsViewRow
{
background: url('../Images/KL/tableRowGrayjpg') no-repeat #fff;
}
.DetailsViewHeader
{
width: 200px;
height:30px;
}
.DetailsViewRowEdit
{
background: url('../Images/tableRowGreen.jpg') no-repeat #fff;
}
彩色区域出现在标题后面,其余区域覆盖图像的白色部分。但是,对于 IE(版本 10)和 Chrome(版本 26.0.1410.64),背景图像同时出现在<td>
标题和<td>
值中。
任何人都知道这是否可能或一些跨浏览器技巧?谢谢!
编辑
这是正在生成的 html 代码(为了更清楚一点)。
<table id="dvPerson" class="DetailsView" cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
<tbody>
<tr class="DetailsViewRow"> <!-- DetailsViewRowEdit, when in edit mode -->
<td class="DetailsViewHeader"></td>
<td> … </td>
</tr>
</tbody>
</table>
Firefox 仅将DetailsViewRow
(带有图像的 css)应用于<tr>
元素,因此<td>
's 保持原样,但 Chrome 和 IE 将其应用于每个单独<td>
的元素,因此每列都有背景图像。