js中classname=“”;清除的是所有css样式,还是某些css样式呢?
网友解答: 如果是原生js设置css样式有以下四种方式 :dom.style.top=“100px”dom.style.cssText = "margin-top:50px"dom.cl
如果是原生js设置css样式有以下四种方式 :
dom.style.top=“100px”
dom.style.cssText = "margin-top:50px"
dom.className = "class1 class2";
dom.setAttribute("class", "class1 class2");
而元素样式的设置也包括id设置,class设置,style属性内联设置等多种方法,并且不同设置方式还有优先级。
由于class属性可以有多个值,使用空格分割,所以在设置和删除class也可以一块或分别删除某些class样式。
classname=“”就是将此元素的所有class样式全部删除,但并不是删除所有样式,会保留通过style、id等其他方法进行的设置,重新计算css样式赋给元素进行显示。
如果您是不想删除多个class样式。可以设置className等于其中一部分样式,或者其他样式使用其他方式进行设置,比如id或style。
如果是jquery修改css样式也主要有以下三种方式通过class函数操作样式var label_class = $cr.attr("class"); //获取样式
$cr.attr("class","high"); //设置样式
$cr.addClass("high1"); //追加样式
$cr.removeClass("high1"); //移除样式
$cr.removeClass("high1 high"); //同时移除多个样式
$cr.toggle("high1");//对样式参数有无进行切换
$cr.hasClass("high1");//判断是否含有指定样式,实际调用的为is(".high1");
通过css函数操作样式$cr.css("color"); //css(name)读取style样式
$cr.css("color","red"); //css(key,value)设置style样式,等价于cr.style.color="red"
$cr.css({'fontSize':'30px','backgroundColor':'#888888'}); //css(properties)同时设置多个样式。在带有-的样式属性中如font-size,添加引号后,可以写成font-size也可以写成驼峰式fontSize
通过样式专有函数操作样式var width = $cr.width(); //读取宽高相关样式:height、width、innerHeight、innerWidth、outerHeight、outerWidth
$cr.width(800); //设置宽高相关样式:height、width、innerHeight、innerWidth、outerHeight、outerWidth
var offset = $cr.offset(); //偏移类。获取元素在当前视窗中的相对偏移,只对可见元素有效,包含offset.left和offset.top两个属性
var position = $cr.position(); //位置类。获取元素相对于最近的一个position属性设置为relative或absolute的祖父节点的相对偏移,包含position.left和position.top两个属性
$cr.scrollTop(); //获取元素的滚动条距顶端的距离
$cr.scrollLeft(300); //获取元素的滚动条距左端的距离,也可以通过参数设置滚动左边的距离
$cr.show(); //表示display:block,
$cr.hide();//表示display:none;
$cr.toggle(); //切换元素的可见状态
网友解答:如果一个元素身上原本有多个class,那么classNane=''就会清除所有的样式,可以用新增方法element.classList.add('name'),给元素添加class,同理,element.classList.remove('name'),会在多个class中删除name类名,element.classList.toggle('name'),则是判断,有就删除,没有就添加