2011-05-29 74 views
0

我想规范化页面中的某些元素,例如在提交按钮上放置一些边距/填充。如何仅将属性应用于提交按钮

尝试与input.submit {margin:0; padding:1px 6px 1px 6px;},但似乎它不起作用。我如何使用CSS 2.1来做到这一点?

+0

并非所有的浏览器都完全实现了CSS 2.1。你需要支持他们吗? – Wylie 2011-05-29 21:48:23

回答

2

最可靠的CSS 2.1我认为你可以选择将classid应用于按钮,或隔离特定父元素内部的按钮。

否则CSS 2.1 确实支持attribute=value选择符号,所以:

input[type=submit], 
/* or */ 
button[type=submit] 

应该工作。但是,这在Internet Explorer中可靠地变得可靠(但令我惊讶的是),根据PPK, of Quirksmode,在IE> = 7中可用。

编辑进一步探索的问题:

input.submit {margin:0; padding:1px 6px 1px 6px;}“不工作”的原因是因为选择,input.submit会选择input元素与submit一个类名。除非你提交了提交按钮的类名,你的html中没有匹配的元素。

使用jQuery可以将提交元素与选择器$('input:submit')相匹配,但这不是有效的CSS选择器(就目前我所知); CSS可以提供​​的最近的东西,如上所述,input[type=submit]


进一步的参考文献:CSS2 [attr] selector, at Quirksmode.org

1

在CSS3兼容的浏览器可以使用:

input[type="submit"] {margin:0; padding:1px 6px 1px 6px;} 

如果您不能使用CSS3,你将不得不设置在提交输入一个类:

<input type="submit" class="submit" value="Submit form" /> 
+0

:O我说CSS 2.1 .... – markzzz 2011-05-29 21:44:34

+0

请参阅我的答案的补充。 – Arjan 2011-05-29 21:47:12

+0

'input [type = submit]'[**在CSS2下有效**](http://www.w3.org/TR/CSS2/selector.html#matching-attrs)。 – 2011-05-29 21:49:28

1

是。 input[type="submit"]是一个有效的CSS 2.1选择器。

来源:W3C CSS Selectors

+0

好吧,我认为这是CSS3。猜猜我一直工作太久,试图让浏览器看起来很漂亮,甚至完全不支持CSS2。 – Arjan 2011-05-29 21:54:42