一、CSS在页面中可以帮助用户完成如下任务:
1.显隐特效:借助CSS的display和visibility实现。再结合渐隐、渐显和各种动画序列,可以设计出复杂的视觉效果
2.尺寸缩放:使用CSS的width和height实现。在变形动画中常见,如设计图像、栏目、页面展开、收缩等;动态控制目标对象的大小,设计变化的页面布局等
3.对象定位:使用CSS的position、left、top、right、和bottom等,在位移动画中常见,如开发网页游戏
4.视图控制:使用CSS的clip、overflow、visibility,可以动态的控制页面对象的显示方式和显示内容
5.透明设计:使用CSS的opacity,一般与显隐、缩放、位移动画配合使用,增强渐进、渐弱效果
6、对象效果:动态改变字体样式、文本版式、网页布局版式等,设计图像特效等
7.UI交互:配合CSS+HTML,设计强大功能的交互表格、交互表单,设计富有变化的网页皮肤
二、操作行内样式;
CSS的很多属性都时有复合名的,使用连字符“-”,如border-right 、margin-left等,但在脚本中(js代码)连字符会被定义为减号,会自动参数表达式的运算;解决这个问题 需要使用 小驼峰命名:borderRight 、marginLeft等
2.1使用style对象:
elementNode.style.fontFamily="Arial,Helvetica,sans-serif";
elementNode.style.cssFloat="left";//float是js中的保留字,需要使用cssFloat来表示float属性
elementNode.style.color="#ff0000";
elementNode.style.width="100px";//单位不能遗漏
elementNode.style.top=top+"px";//设置动态属性
2.11使用getPropertyValue()方法,早期IE不支持,但直接使用elementNode.style.width访问样式属性
var value=elementNode.style.getPropertyValue(propertyName)
例:
window.onload = function(){
var box = document.getElementById("box");//获取
var width = box.style.getPropertyValue("width");
<=>var width = box.style.width
box.innerHTML = "盒子宽度:"+width;
var marginLeft=box.style.getPropertyValue("margin-left"); //需要连字符的样式属性
box.innerHTML = "盒子外边距:"+marginLeft;
}
2.12 setProperty()方法:为指定元素设定样式;不兼容早期的IE,elementNode.sytle.width="500px";
elementNode.setProperty(propertyName,value,priority); // 参数解释:属性名,属性值,是否设置!important优先级
window.onload = function(){
var box = document.getElementById("box");//获取
box.style.setProperty("width","400px","");
box.style.setProperty("height","400px","");
//兼容早期的IE
box.style.width= "400px";
box.style.height = "400px";
}
2.13 removeProperty()方法:移除指定CSS的样式声明
elementNode.removeProperty(propertyName)
2.14 item()方法:返回style对象中指定索引位置的CSS属性名称
element.style.item(index);
2.15 getPropertyPriority()方法:获取指定的css属性中是否附加了!important,有则返回important,无则返回空字符串
window.onload = function(){//不兼容IE
var box=document.getElementById("box");
box.οnmοuseοver=function(){
box.style.setProperty("background-color","blue","");
box.style.setProperty("border","solid 50px red","");
}
box.οnclick=function(){
box.innerHTML=(box.style.item(0)+":"+box.style.getPropertyValue("width"));
box.innerHTML=box.innerHTML+"
"+(box.style.item(1)+":"+box.style.getPropertyValue("height"));
}
box.οnmοuseοut=function(){
box.style.setProperty("background-color","red","");
box.style.setProperty("border","solid 50px blue","");
}window.onload = function(){//兼容ie
var box=document.getElementById("box");
box.οnmοuseοver=function(){
box.style.backgroundColor="blue"
box.style.border="solid 50px red";
}
box.οnclick=function(){
box.innerHTML="width:"+box.style.width;
box.innerHTML=box.innerHTML+"
"+"height:"+box.style.height;
}
box.οnmοuseοut=function(){
box.style.backgroundColor="red";
box.style.border="solid 50px blue";
}
}
拓展:非IE浏览器支持style访问,但是它无法获取style对象中指定序号位置的属性名称,可以使用cssText属性获取全部的style属性值,通过String的split()把字符串转为数组再操作
使用getAttribute("style")方法,也是获取style的属性值,不过该方法放回值保留style属性值的原始模样,比如颜色使用的是rgb,
而cssText的返回值可能会经过浏览器处理,且不同浏览器返回值 略有不同
window.οnlοad=function(){
var box=document.getElementById("box");
var str=box.style.cssText;//获取全部style属性的字符串
//var str=box.getAttribute("style");
var a=str.split(";");
var temp="";
for(var b in a){
var prop=a[b].split(":");
if(prop[0]){
temp+=b+" : "+prop[0]+"="+prop[1]+"
";
}
}
box.innerHTML="box.style.cssText="+str;
box.innerHTML=box.innerHTML+"
"+temp;
}