4

cssの特異性の問題があります。

「請求書なし」の場合はスタイルの色を変えたい<td>ので、ifステートメントでスタイルを設定します。請求書がない場合、スタイルはstyle = "id=\"no-bills\"";です。私はこれをcssで動作させるようにしました。ここで、ユーザーがその上にカーソルを合わせた場合、背景を赤にしたいので、cssを変更して追加しました#bill-list #no-bills td:hover。これは、カーソルをtd:hover合わせたときにさらに特異性を追加する必要があります。残念ながら、これは機能しません(背景は同じままです)。

これが私のCSSです:

#bill-list
{
    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
    font-size: 12px;
    /*margin: 45px;*/
    width: 100%;
    text-align: left;
    border-collapse: collapse;
}
#bill-list th
{
    font-size: 13px;
    font-weight: normal;
    padding: 8px;
    background: #b9c9fe;
    border-top: 4px solid #aabcfe;
    border-bottom: 1px solid #fff;
    color: #039;
}
#bill-list td
{
    padding: 8px;
    background: #e8edff; 
    border-bottom: 1px solid #fff;
    color: #669;
    border-top: 1px solid transparent;
}
#bill-list tr:hover td
{
    background: #d0dafd;
    color: #339;
}

#bill-list #bill td
{
    background: white;
}

#bill-list #no-bills
{
    background: #FFCC99;
}
#bill-list #no-bills td:hover
{
    color: orange;
    background: red /*#FFCC66*/;
}

これが私のコード(スニペット)です:

<table id="bill-list">
<thead>
    <tr>
        <% for (int i=0; i<vecHeader.size(); i++) { %>
            <th><%=vecHeader.get(i) %></th>
        <% } %>
    </tr>
</thead>

<tbody>
    <%  int uniqueId = 0;
        for (int i=0; i < vecValue.size(); i++) { 
        boolean hasBills = true;
        String style = "";
        if ( vecBills.get(i) == null || vecBills.get(i).size() == 0 ) {
            hasBills = false;
            style = "id=\"no-bills\"";
        }
        %>
        <tr id="bill<%=i%>" onclick="javascript:showBillDetails(<%=i%>)">
            <% for (int j=0; j < vecHeader.size(); j++) {
                prop = (Properties)vecValue.get(i);
                %>
                <td <%=style%>><%=prop.getProperty((String)vecHeader.get(j), "&nbsp;") %>&nbsp;</td>
            <% } %>
        </tr>
...
...

誰かアイデアはありますか?

4

2 に答える 2

4

HTMLコードを投稿する必要がありますが、それを生成するコードではありません。ここでは関係ありません。

no-bills最初の問題:同じページに2つのIDを含めることはできませんか?

それからあなたの問題:あなたtd:hoverはの子孫であるスタイルを作ろうとしています#no-bills。後者は同じtdであり、アセンダントではありません!#bill-list #no-bills:hover次に、ホバーされているように見えるスタイルを設定する必要がありますtd

于 2012-07-25T19:46:08.243 に答える
1

試す

#bill-list #no-bills:hover

それ以外の

#bill-list #no-bills td:hover

請求書が複数ある場合は、idよりもclassを使用する必要があります。

于 2012-07-25T20:00:02.477 に答える