CSS form[action] 不适用于查询字符串

Ant*_*ney 2 css css-selectors

大家好,我的 CSS 有一些问题,我正在尝试根据用户所在的页面突出显示导航上的链接。

我有这种样式,它可以按照我希望的方式工作,但是当我将查询字符串传递到 pcisHPprofile.aspx 时,CSS 不起作用。有谁知道我如何让这种风格与查询字符串一起使用?

 body form[action="pcisHPprofile.aspx"] #btnuser

{
    padding: 18px 4px 5px 4px;
    background-image: url(../images/tabbluleft.gif) ;
    background-repeat:no-repeat; 
    color: #fff;

}



<div id="nav" class="nav" >

      <ul>
       <li id="tab1">
       <a id="btnsession" href="pcissessionlist.aspx" > <span >Session</span></a>
         </li>
          <li id="tab2">
              <a id="btnsystem" href="pcissystemsettings.aspx" > <span >System Settings</span></a>
            </li>
          <li id="tab3">
          </li>
          <li id="tab4">
                            <a id="btnuser" href="pcisuserlist.aspx" > <span >User Logins</span></a>
              </li>
          <li id="tab5">
                                          <a id="btninterpreter" href="pcisinterpreterlist.aspx" > <span >Interpreter Profile</span></a>

              </li>
       <li id="tab6"><asp:LinkButton ID="btnreports" runat="server" Visible="false" cssid="cssreports" PostBackUrl="#"><span>Reports</span></asp:LinkButton></li>
      </ul> 

    </div>
Run Code Online (Sandbox Code Playgroud)

SWi*_*ilk 5

我假设 #btnuser 是某些表单内的某些按钮,其中其中一个表单具有 action="pcisHPprofile.aspx"?

如果这是正确的,那么您的错误是您有许多具有相同 id attirbute id="btnuser" 的按钮。ID 属性在页面上必须是唯一的。将按钮和选择器上的 id="btnuser" 更改为 class="btnuser":

body form[action="pcisHPprofile.aspx"] #btnuser {
}
Run Code Online (Sandbox Code Playgroud)

body form[action="pcisHPprofile.aspx"] .btnuser {
}
Run Code Online (Sandbox Code Playgroud)

那么它应该可以工作。

在第一种表单中,仅当 id="btnuser" 的 FIRST 按钮实际上位于 action="pcisHPprofile.aspx" 的表单内时,它才可能起作用。如果它位于任何其他形式内,则它将不起作用。

最好的问候,SWilk

更新:

在OP更新问题后,我认为这种形式的选择器应该有效:

body form[action^="pcisHPprofile.aspx"] #btnuser {
...
}
Run Code Online (Sandbox Code Playgroud)

它将是表单内 id=btnuser 的元素,该操作以“pcisHPprofile.aspx”开头。如果实际操作属性仅包含“pcisHPprofile.aspx”或“pcisHPprofile.aspx?any-parameters&and=some-values”,这并不重要。

最好的问候,SWilk