如何覆盖css属性?

时间:2010-10-14 05:22:06

标签: jquery html css properties

我曾尝试使用jquery,但无法覆盖.gridHeader类的width属性。

我想修复(假设是100px)表格中第一列的宽度。

<html>
    <head>
        <style>
            html, body {
                font-family:Tahoma;
                font-size:11px;
            }
            .grid {
                border-left:1px solid #CCCCCC;
                border-top:1px solid #CCCCCC;
            }
            .gridHeader {
                background-color:#EFEFEF;
                border-bottom:1px solid #CCCCCC;
                font-weight:bold;
                height:20px;
                padding-left:3px;
                text-align:left;
                width:100%; /* problematic, that I cannot change*/
            }
            table.grid > tbody > tr > td {
                border-bottom:1px solid #CCCCCC;
                border-right:1px solid #CCCCCC;
                padding:3px;
            }
        </style>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $(".gridHeader").css("width","");
            });
        </script>
    </head>
<body>
    <table width="100%">
        <tr>
            <td class="gridHeader" style="width:100px">Vikas
            </td>
            <td class="gridHeader">Vikas Patel Vikas Patel Vikas Patel
            </td>
            <td class="gridHeader">Vikas Patel Vikas Patel
            </td>
        </tr>
        <tr>
            <td>Vikas
            </td>
            <td>Vikas Patel Vikas Patel Vikas Patel
            </td>
            <td>Vikas Patel Vikas Patel
            </td>
        </tr>
    </table>
</body>
</html>

4 个答案:

答案 0 :(得分:12)

您需要使用removeAttr删除内联样式,然后使用css()方法,如下所示:

$(".gridHeader").removeAttr('style').css("width","100px");

如果您只想将宽度应用于第一列,可以使用:first过滤器选择器,如下所示:

$(".gridHeader:first").removeAttr('style').css("width","100px");

答案 1 :(得分:2)

我猜你的问题不是第一列,而是其他人,虽然他们仍然有100%应用。

$(".gridHeader").css("width","");

...不起作用,因为你没有设定合法价值。

试试这个:

$(".gridHeader").not(':first-child').css("width","auto");

答案 2 :(得分:0)

适合我吗?除非我不明白你的“问题”。

检查:http://www.jsfiddle.net/YjC6y/21/

答案 3 :(得分:0)

如果你想覆盖CSS内联,你可能会这样运气:

style="width:100px !important;"