为输入类型定义CSS异常

时间:2011-08-22 09:15:01

标签: html css css-selectors

我已经在css文件上创建了输入类型样式,通过它,我正在改变输入类型文本框的样式,以及我在我的整个网页中使用的样式。但是,现在我遇到了一个问题,我想要一个特定的输入类型,不应该受我创建的css文件的影响。简而言之,我想要特殊输入类型的css异常。所以......输入样式保持不变,不受css样式的影响。任何想法,如何实现这一点。 理念将不胜感激!!!

这是我的css文件的代码

input
{
color:#000000;
font-size:14px;
border:#666666 solid 2px;
height:24px;
margin-bottom:10px;
width:200px;


}
textarea
{
color:#000000;
font-size:14px;
border:#666666 solid 2px;
height:124px;
margin-bottom:10px;
    width:200px;

}

我希望如此,它不应该应用于此

<input type="image" src="images/loginbutton.png" style="width:80px;height:40px" />

5 个答案:

答案 0 :(得分:18)

以下选择器可帮助您在CSS3中排除image类型:

input:not([type="image"])

如果您不想依赖CSS3 - 由于浏览器兼容性,您可能不会这样做 - 您应该将初始选择器更改为更具体,如下所示:

input[type="text"], input[type="password"]

修改:似乎需要更深入的解释

这将起作用的原因是因为它不会专门排除任何输入类型,但您只会包含想要定位的类型。

所以不要说我有a,b和c而我想排除b。你可以说我只想定位a和c。

答案 1 :(得分:0)

你可以给出你不想要被称为class =“nostyle”的输入,然后在CSS中定义......

.nostyle {
    margin: 0;
    border: 0;
    }

...或者你想要非风格输入的任何东西。

答案 2 :(得分:0)

如果您不关心IE 8及更低版本you can use :not()。否则,您将需要覆盖您为图像输入应用的所有样式,或者找到一些其他方法使选择器更具体(例如为每个输入添加一个类)。

答案 3 :(得分:0)

这可能太明显了,但是你可以在textarea上设置一个你不希望应用该样式的id吗?然后给这个元素自己的风格?

否则,您可以尝试使用一组更具体的后代选择器来定位该特定元素。

答案 4 :(得分:0)

有办法做你要求的,但我建议不要这样做。我建议制作所有样式元素(包括输入等)在CSS中有实际的类而不仅仅是输入。这样你就可以轻松地使项目没有类或者有不同的类。

我理解这不会回答你的问题,但希望这会对你有所帮助,如果你确实改变它,就像编写更多CSS一样麻烦,从长远来看,它可能更好,可能是这样的:

input.normal {
    color:#000000;
    font-size:14px;
    border:#666666 solid 2px;
    height:24px;
    margin-bottom:10px;
    width:200px;
}


input.alternate {
   something:here;
}