GridView RowStyle-Horizo​​ntalAlign属性是否应该覆盖CSS text-align属性?

时间:2010-03-19 19:35:43

标签: .net asp.net css

a)据我所知,GridView’s RowStyle-HorizontalAlign属性应该覆盖CSS的text-align属性,因此GridView单元格内的文本应该位于单元格的左侧,而是移动到右边。那是为什么?

b)同样,RowStyle-Font-Bold应该覆盖CSS的font-weight属性,因此字体不应该是粗体。但同样,CSS的属性会覆盖RowStyle’s Font-Bold属性。为什么?

<div id="someClass">            
      <asp:GridView ID="gvwShowUsers"  runat="server" >
          <RowStyle BackColor="#FFFBD6" ForeColor="#333333" Font-Bold="false" 
               HorizontalAlign="Left" />
          <Columns>
             <asp:BoundField DataField="UserName" HeaderText="UserName"  />
          </Columns>
      </asp:GridView>
</div>

CSS文件:

#someClass td
{
  font-weight:bolder;
  text-align:right;
}

感谢名单


编辑:

  

解决方法是将样式应用于每个字段(例如ItemStyle-Horizo​​ntalAlign)

我尝试将ItemStyle应用于GridView’s字段:

   <div id="someClass">            
      <asp:GridView ID="gvwShowUsers"  runat="server" >
         <RowStyle Font-Bold="false" HorizontalAlign="Left" />
          <Columns>
             <asp:BoundField DataField="UserName" HeaderText="UserName">
                <ItemStyle HorizontalAlign="Left" Font-Bold="false" />
             </asp:BoundField>
          </Columns>
      </asp:GridView>
   </div>

但是,即使应用ItemStyle页面仍然在单元格的右侧显示文本,我已经决定检查发送给用户的html页面的源代码,因为事实证明<tr><td>个元素的Align属性设置为left,所以......完全混淆了!

以下是html页面的源代码:

<table id="GridView1" style="font-weight:normal;">
   <tr align="center" style=" font-weight:bold;">
       <th scope="col">UserName</th>
   </tr>
       <tr align="right" valign="bottom" style="font-weight:normal;">
       <td align="right" style="font-weight:normal;"> Nancy</td>
   </tr>
</table>

1 个答案:

答案 0 :(得分:1)

如果将样式添加到<tr>元素,则CSS文件中的样式将获胜,因为#someClass td选择器更具体。

解决方法是将样式应用于每个字段(例如ItemStyle-HorizontalAlign)。