在“JS属性操作的注意事项”一节中,例 2 使用 style 引用样式属性的方法来设置的样式是行内样式,这种方法一次只能设置单个样式,因此需要设置多个不同的行内样式时,要使用多条 JS 代码来分别设置,这就使得代码量相对比较多。
如果希望简化行内样式设置代码,我们可以使用 style 的 cssText 属性来同时设置多个样式,多个样式代码连写成一行代码,从而极大地减少了代码量。下面使用 cssText 属性来修改“JS属性操作的注意事项”中的例 2。
【例 1】使用 cssText 属性同时设置元素的多个行内样式。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用cssText属性同时设置元素的多个行内样式</title>
<script>
window.onload = function (){
var oBtn1 = document.getElementById("btn1");
var oBtn2 = document.getElementById("btn2");
var oP = document.getElementById("p1");
oBtn1.onclick = function(){
//使用cssText属性后,只使用一行代码就同时设置了5个行内样式
oP.style.cssText = 'width:300px;background:red;padding:20px;
color:yellow;border:10px solid #ccc';
};
oBtn2.onclick = function(){
oP.style.cssText = 'width:330px;background:yellow;padding:10px;
color:red;border:10px solid #333';
};
};
</script>
</head>
<body>
<input type="button" id="btn1" value="样式一">
<input type="button" id="btn2" value="样式二">
<p id="p1">12月3日午间消息,第四届世界互联网大会今日开幕,在全体大会上,腾讯公司控股董
事会主席兼首席执行官马化腾发表了演讲,称未来互联网企业将给各行各业赋能,解决全部痛点。
</p>
</body>
</html>
上述代码在 Chrome 浏览器中的运行结果和例 2 完全一样。
cssText 属性不但可以添加元素的行内样式,也可以修改甚至清除元素的行内样式,示例如下。
【例 2】使用 cssText 属性添加、修改和清除元素行内样式。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用cssText属性设置元素行内样式</title>
<style>
div { width:100px;height:100px;border:1px solid red;}
</style>
<script>
window.onload = function (){
var oDiv = document.getElementById('div1');
var aBtn = document.getElementsByTagName('input');
aBtn[0].onclick = function (){
//添加行内样式
oDiv.style.cssText = 'width:200px;height:120px;border:5px solid blue';
};
aBtn[1].onclick = function (){
//修改行内样式
oDiv.style.cssText = 'width:150px;height:50px;border:2px dotted red';
};
aBtn[2].onclick = function (){
oDiv.style.cssText = '';//清除行内样式
};
};
</script>
</head>
<body>
<div id="div1">DIV</div>
<input id="btn1" type="button" value="添加行内样式"/>
<input id="btn2" type="button" value="修改行内样式"/>
<input id="btn3" type="button" value="清除行内样式"/>
</body>
</html>
上述代码首先使用内嵌样式给 div 元素设置了宽、高及边框样式。单击第一个按钮时会对 div 添加行内样式,我们看到添加的行内样式和内嵌样式存在冲突,由于行内样式的优先级高于内嵌样式,所以单击第一个按钮时,div 使用了行内样式。
在单击第一个按钮后再单击第二个按钮时,会用新的行内样式替换当前的行内样式。在添加或修改行内样式后,再单击第三个按钮时,会清除 div 的行内样式,此时,内嵌样式将发挥作用,即回到最初的样式。上述代码在 Chrome 浏览器中的运行结果如图 1~图 4 所示。