CSS行内样式

比眉伴天荒 2022-12-29 12:44 159阅读 0赞

一、CSS在页面中可以帮助用户完成如下任务:

  • 显隐特效:借助CSS的display和visibility实现。再结合渐隐、渐显和各种动画序列,可以设计出复杂的视觉效果
  • 尺寸缩放:使用CSS的width和height实现。在变形动画中常见,如设计图像、栏目、页面展开、收缩等;动态控制目标对象的大小,设计变化的页面布局等
  • 对象定位:使用CSS的position、left、top、right、和bottom等,在位移动画中常见,如开发网页游戏
  • 视图控制:使用CSS的clip、overflow、visibility,可以动态的控制页面对象的显示方式和显示内容
  • 透明设计:使用CSS的opacity,一般与显隐、缩放、位移动画配合使用,增强渐进、渐弱效果
  • 对象效果:动态改变字体样式、文本版式、网页布局版式等,设计图像特效等
  • UI交互:配合CSS+HTML,设计强大功能的交互表格、交互表单,设计富有变化的网页皮肤

二,引入css样式表的三种方式:

1)行内样式(内联样式)
概念:称行内样式、行间样式,是通过标签的style属性来设置元素的样式;

基础语法

  1. <标签名 style="属性1:属性值1;属性2:属性值2;">内容</标签名>

缺点:没有实现样式和结构的分离

2)内部样式表(内嵌样式表)

是将css代码集中写在HTML文档的head头部标签中,并且用style标签定义;

基础语法:

  1. <head>
  2. <style type="text/css">
  3. div{
  4. color: red;
  5. font-size: 12px;
  6. }
  7. </style>
  8. </head>

缺点:没有彻底分离

3)外部样式表(外链式)

概念:是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中;

基本语法:

  1. <head>
  2. <link rel="stylesheet" type="text/css" href="css文件路径">
  3. </head>

注意:

  • link是一个单标签;
  • link标签要放在head头部标签中,并且指定link的三个属性;

属性:

  • rel:定义当前文档与被链接文档之间的关系,在这里需要指定为”stylesheet”,表示被链接的文档是一个样式表文件;
  • type:定义所链接文档的类型;
  • href:定义所有链接外部样式表文件的url,可以是绝对路径也可以是相对路径;

缺点:需要引入

主要讲讲行内样式

三、操作行内样式;

CSS的很多属性都时有复合名的,使用连字符“-”,如border-right 、margin-left等,但在脚本中(js代码)连字符会被定义为减号,会自动参数表达式的运算;解决这个问题 需要使用 小驼峰命名:borderRight 、marginLeft等

1,使用style对象:

  1. elementNode.style.fontFamily="Arial,Helvetica,sans-serif";
  2. elementNode.style.cssFloat="left";//float是js中的保留字,需要使用cssFloat来表示float属性
  3. elementNode.style.color="#ff0000";
  4. elementNode.style.width="100px";//单位不能遗漏
  5. elementNode.style.top=top+"px";//设置动态属性

2,使用getPropertyValue()方法,早期IE不支持,但直接使用elementNode.style.width访问样式属性:

  1. var value=elementNode.style.getPropertyValue(propertyName)

例:

  1. window.onload = function(){
  2. var box = document.getElementById("box");//获取<div id="box">
  3. var width = box.style.getPropertyValue("width");
  4. <=>var width = box.style.width
  5. box.innerHTML = "盒子宽度:"+width
  6. var marginLeft=box.style.getPropertyValue("margin-left"); //需要连字符的样式属性
  7. box.innerHTML = "盒子外边距:"+marginLeft
  8. }

3,setProperty()方法:为指定元素设定样式;不兼容早期的IE,elementNode.sytle.width=“500px”;

  1. elementNode.setProperty(propertyName,value,priority); // 参数解释:属性名,属性值,是否设置!important优先级
  2. window.onload = function(){
  3. var box = document.getElementById("box");//获取<div id="box">
  4. box.style.setProperty("width","400px","");
  5. box.style.setProperty("height","400px","");
  6. //兼容早期的IE
  7. box.style.width= "400px";
  8. box.style.height = "400px";
  9. }

4,removeProperty()方法:移除指定CSS的样式声明

  1. elementNode.removeProperty(propertyName)

5,item()方法:返回style对象中指定索引位置的CSS属性名称

  1. element.style.item(index);

6,getPropertyPriority()方法:获取指定的css属性中是否附加了!important,有则返回important,无则返回空字符串

  1. <div id="box" style="width: 100px;height: 100px;background-color: red;border: solid 50px blue;"></div>
  2. window.onload = function(){//不兼容IE
  3. var box=document.getElementById("box");
  4. box.οnmοuseοver=function(){
  5. box.style.setProperty("background-color","blue","");
  6. box.style.setProperty("border","solid 50px red","");
  7. }
  8. box.οnclick=function(){
  9. box.innerHTML=(box.style.item(0)+":"+box.style.getPropertyValue("width"));
  10. box.innerHTML=box.innerHTML+"<br>"+(box.style.item(1)+":"+box.style.getPropertyValue("height"));
  11. }
  12. box.οnmοuseοut=function(){
  13. box.style.setProperty("background-color","red","");
  14. box.style.setProperty("border","solid 50px blue","");
  15. }
  16. window.onload = function(){//兼容ie
  17. var box=document.getElementById("box");
  18. box.οnmοuseοver=function(){
  19. box.style.backgroundColor="blue"
  20. box.style.border="solid 50px red";
  21. }
  22. box.οnclick=function(){
  23. box.innerHTML="width:"+box.style.width;
  24. box.innerHTML=box.innerHTML+"<br>"+"height:"+box.style.height;
  25. }
  26. box.οnmοuseοut=function(){
  27. box.style.backgroundColor="red";
  28. box.style.border="solid 50px blue";
  29. }
  30. }

拓展:非IE浏览器支持style访问,但是它无法获取style对象中指定序号位置的属性名称,可以使用cssText属性获取全部的style属性值,通过String的split()把字符串转为数组再操作;

使用getAttribute(“style”)方法,也是获取style的属性值,不过该方法放回值保留style属性值的原始模样,比如颜色使用的是rgb,

而cssText的返回值可能会经过浏览器处理,且不同浏览器返回值 略有不同

  1. <div id="box" style="width: 600px;height: 200px;background-color: #81F9A5;border: solid 2px blue;padding:10px;"></div>
  2. window.οnlοad=function(){
  3. var box=document.getElementById("box");
  4. var str=box.style.cssText;//获取全部style属性的字符串
  5. //var str=box.getAttribute("style");
  6. var a=str.split(";");
  7. var temp="";
  8. for(var b in a){
  9. var prop=a[b].split(":");
  10. if(prop[0]){
  11. temp+=b+" : "+prop[0]+"="+prop[1]+"<br>";
  12. }
  13. }
  14. box.innerHTML="box.style.cssText="+str;
  15. box.innerHTML=box.innerHTML+"<br><br>"+temp;
  16. }

结语:想要学习前端或者正在学习前端的小伙伴可以加这边的裙:953352883,裙里有前端小白,也有前端大佬,进裙可以免费领取前端学习资料,前端面试题哦,期待你的加入。

发表评论

表情:
评论列表 (有 0 条评论,159人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CSS样式

    一、CSS在页面中可以帮助用户完成如下任务: 显隐特效:借助CSS的display和visibility实现。再结合渐隐、渐显和各种动画序列,可以设计出复杂的视觉效