jQuery修改class属性和CSS样式

class属性修改

  类属性即class属性,规定类名.
  用类选择器规定样式的时候,需要为元素指定类名,即class属性的值.
  注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔.
 
  用jQuery进行类名修改既可以用attr()方法修改”class”属性,也可以用addClass(), removeClass(), toggleClass()等方法来完成.
 
addClass()
  addClass()方法向匹配的元素增加指定的类名(一个或多个).
  注意对于元素来说,class属性可以有多个值.该方法不会移除已经存在的值,而是在原有的基础上追加一个或多个class属性. 
  用attr()方法设置class属性,是一个覆盖的过程;而addClass()则是一个追加的过程.
  class之间最终是用空格来隔开的.
  如果需要添加多个类,用空格分隔类名.
  从1.4开始,这个方法的参数也可以传入一个function.
 
removeClass()
  removeClass()方法从被选元素移除一个或多个类.如需移除若干类,用空格来分隔类名.
  如果没有传参数,该方法将会移除被选元素的所有类.
 
 
toggleClass()
  toggleClass()方法对被选元素的一个或多个类进行切换(设置或移除).
  该方法检查每个元素中的指定类,如果存在则删除,如果不存在则添加.
  通过添加参数,可以设置只进行删除或者只进行添加操作.
  格式:$(selector).toggleClass(class,switch)
  switch值为true时,只添加;为false时,只删除.
 
 
hasClass()
  hasClass()方法检查被选元素是否包含指定的class.
  还可以用is()方法实现同样的功能,方法参数传入一个选择器字符串,比如”.className”.
 

CSS样式修改

  jQuery中还有一些方法直接返回或者设置元素的CSS属性.
css()
  读操作: 获取匹配元素集合中第一个元素的指定样式值(一个或多个).
  注:读取多个样式值的操作是在jQuery v1.9才加入的.
  写操作: 为匹配元素集合中的每一个元素设置一个或多个CSS属性的值.
  传入的参数可以是单个的键值对,也可以是PlainObject指定的多个值,还可以是function.(v1.4).
 
  jQuery会处理各个浏览器中不太相同的一些具体情况,比如W3C的cssFloat在IE中是styleFloat,在jQuery中,你可以使用float,然后jQuery会帮你把它翻译成每个浏览器中应该有的正确名称.
  还有,jQuery会合理解读CSS和DOM格式的多词属性,比如.css(“background-color”)和.css(“backgroundColor”),它都是可以处理的.
 
 
height()和width()
  高度和宽度属性.这个宽高值不包括padding,border和margin.除非box-sizing属性被使用了.
  注意写操作的时候set的是content的宽高,不包括box-sizing的部分.
 
  读操作仍然是返回集合第一个元素的属性值.
  .css(“width”)和.width()的区别是:前者返回带单位的值,比如400px;后者返回不带单位的像素数值,即400.
  所以如果值需要被用于某种计算,.height()和.width()是被推荐使用的.
  读取得到的数值不一定是整型,并且如果用户缩放了页面,其值可能是不正确的,因为浏览器没有暴露这种情况的API.
  还有一种不准确的情况,当这个元素的父元素隐藏起来时,该元素的尺寸可能读不准.
 
  写操作支持的value类型是字符串或者数字.
  如果是数字,jQuery默认是px为单位.
  如果是字符串,除了可以数字加单位之外,任何合理的CSS measurement都可以用,比如100%,50%,或者auto.
 
position()
  返回第一个匹配元素相对于父元素(offset parent)的位置.
  只有读操作.
 
offset()
  返回第一个匹配元素的坐标,或者设定每一个匹配元素的坐标,这个坐标是相对于document的.
 
 
offsetParent()
  返回父类,只有读操作.
 
scrollLeft()和scrollTop()
 
 
 

参考资料

  圣思园张龙老师JavaWeb视频教程75
  jQuery API: http://api.jquery.com/
  w3school 参考手册:
 
 

jQuery修改class属性和CSS样式的更多相关文章

  1. 修改html 属性,css样式。

    一 通过修改标签属性来改变它的样式  js设置和获取标签的属性 <script type="text/javascript"> window.onload = func ...

  2. JQuery DOM操作 、属性和CSS样式操作、其他函数

    DOM操作 1.在div1内部最后追加一个节点 $("#div1").append("<img src='../01-HTML基本标签/img/Male.gif'/ ...

  3. 关于jquery中用函数来设置css样式

    关于jquery中用函数来设置css样式 2016-12-21 23:27:55 1.jquery语法 $(selector).css(name,function(index,value)) name ...

  4. 修改input属性placeholder的样式

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. jquery中的属性和css

    jQuery中的属性用于获取或设置元素的属性 1.attr(),获取或设置所有相匹配的元素的属性值:removeAttr("attr"),移除所有相匹配的元素的属性 //html ...

  6. 伪元素选择器,选择器优先级,CSS修改文字属性,CSS修改字体属性,CSS修改其他属性

    伪元素选择器 未使用元素选择器的效果 第一行:伪元素选择器:选择部分内容 第二行:伪元素选择器:选择部分内容 伪元素选择器:选择部分内容 伪元素选择器:选择部分内容 ::selection:选择指定元 ...

  7. 怎么修改placeholder字体的css样式

    修改palceholder内文字的css样式 ::-webkit-input-placeholder{ color: red; font-size: 20px; line-height: 50px; ...

  8. 一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性

    如果一个DOM元素包含多个类名,其中的两个类名的属性产生冲突,并不是根据htnl中类名的顺序来决定DOM元素的属性, 而是根据css样式中的顺序来决定DOM元素的属性,它取决于css样式表中后读取到的 ...

  9. jQuery动态追加移除CSS样式

    jQuery基础知识,动态添加删除CSS样式 <!DOCTYPE html> <html lang="en"> <head> <meta ...

随机推荐

  1. android给View设置边框 填充颜色 弧度

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  2. 瀑布流StaggeredGridView 下拉刷新

    1.项目中用到了瀑布流,之前用的是PinterestLikeAdapterView这个控件  然后上拉加载更多跟下拉刷新用的是XListView ,但是加载更多或者下拉刷新的时候闪屏,对用户体验很不好 ...

  3. 小菜学习Winform(一)贪吃蛇2

    前言 上一篇<小菜学习Winform(一)贪吃蛇>中实现了简单版的贪吃蛇,在文章末也提到需要优化的地方,比如使用oo.得分模式.速度加快模式和减少界面重绘.因为是优化篇,实现方式上一篇有, ...

  4. geotrellis使用(十四)导出定制的GeoTiff

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 需求说明 实现方案 总结 一.前言        最 ...

  5. C# 在Word文档中生成条形码

    C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称.制造商.类别.价格等.目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书 ...

  6. (3)MEF插件系统中通信机制的设计和实现

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 一般的WinForm中通过C#自带的Event机制便能很好的实 ...

  7. 【十大经典数据挖掘算法】Apriori

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 关联分析 关联分析是一类非常有 ...

  8. 从零开始学 Java - 我放弃了 .NET ?

    这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...

  9. 查看.NET Core源代码通过Autofac实现依赖注入到Controller属性

    一.前言 在之前的文章[ASP.NET Core 整合Autofac和Castle实现自动AOP拦截]中,我们讲过除了ASP.NETCore自带的IOC容器外,如何使用Autofac来接管IServi ...

  10. 实现terminal代理

    问题 作为一名Linuxer,熟练使用终端是一项必备技能,但终端中有时下载安装功能速度很慢,令人崩溃.我自然而然想到了可否加个代理,提高速度.我之前一直用shadowsocks,浏览器使用switch ...