jQuery中是否有一种语法方法来定义多个CSS属性,而不是像这样把所有的东西都排在右边:
$("#message").css("width", "550px").css("height", "300px").css("font-size", "8pt");
如果你有20个这样的代码,你的代码会变得难以阅读,有什么解决方案吗?
例如,通过jQuery API, jQuery可以理解并返回两者的正确值
.css({ "background-color": "#ffe", "border-left": "5px solid #ccc" })
and
.css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }).
注意,在DOM表示法中,属性名周围的引号是可选的,但在CSS表示法中,由于名称中的连字符,它们是必须的。
如果你想改变多个CSS属性,那么你必须使用下面的对象结构:
$(document).ready(function(){
$('#message').css({
"background-color": "#0F0",
"color":"red",
"font-family":"verdana"
});
});
但是当我们想要改变很多风格时,情况会变得更糟,所以我建议你添加一个类,而不是使用jQuery改变css,并且添加一个类也更易于阅读。
请看下面的例子:
CSS
<style>
.custom-class{
font-weight: bold;
background: #f5f5f5;
text-align: center;
font-size: 18px;
color:red;
}
</style>
jQuery
$(document).ready(function(){
$('#message').addclass('custom-class');
});
后一个例子比前一个例子的一个优点是,如果你想在点击某物时添加一些css,并想在第二次点击时删除该css,那么在后一个例子中,你可以使用.toggleClass('custom-class')
在前一个例子中,你必须设置所有的CSS与你之前设置的不同的值,这将是复杂的,所以使用类选项将是更好的解决方案。