js中classname=“”;清除的是所有css樣式,還是某些css樣式呢?
網(wǎng)友解答: 如果是原生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屬性內(nèi)聯(lián)設置等多種方法,并且不同設置方式還有優(yōu)先級。
由于class屬性可以有多個值,使用空格分割,所以在設置和刪除class也可以一塊或分別刪除某些class樣式。
classname=“”就是將此元素的所有class樣式全部刪除,但并不是刪除所有樣式,會保留通過style、id等其他方法進行的設置,重新計算css樣式賦給元素進行顯示。
如果您是不想刪除多個class樣式??梢栽O置className等于其中一部分樣式,或者其他樣式使用其他方式進行設置,比如id或style。
如果是jquery修改css樣式也主要有以下三種方式通過class函數(shù)操作樣式var label_class = $cr.attr("class"); //獲取樣式
$cr.attr("class","high"); //設置樣式
$cr.addClass("high1"); //追加樣式
$cr.removeClass("high1"); //移除樣式
$cr.removeClass("high1 high"); //同時移除多個樣式
$cr.toggle("high1");//對樣式參數(shù)有無進行切換
$cr.hasClass("high1");//判斷是否含有指定樣式,實際調(diào)用的為is(".high1");
通過css函數(shù)操作樣式$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
通過樣式專有函數(shù)操作樣式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的祖父節(jié)點的相對偏移,包含position.left和position.top兩個屬性
$cr.scrollTop(); //獲取元素的滾動條距頂端的距離
$cr.scrollLeft(300); //獲取元素的滾動條距左端的距離,也可以通過參數(shù)設置滾動左邊的距離
$cr.show(); //表示display:block,
$cr.hide();//表示display:none;
$cr.toggle(); //切換元素的可見狀態(tài)
網(wǎng)友解答:如果一個元素身上原本有多個class,那么classNane=''就會清除所有的樣式,可以用新增方法element.classList.add('name'),給元素添加class,同理,element.classList.remove('name'),會在多個class中刪除name類名,element.classList.toggle('name'),則是判斷,有就刪除,沒有就添加