JS修改css樣式

2021-10-09 09:46:17 字數 1842 閱讀 2002

通過js修改css樣式

語法:元素.style.樣式名=「樣式值」;

注意,如果在css中的樣式名中含有 - ;

​ 這種名稱在js中是不合法的,比如background-color;

​ 需要將這總命名改為駝峰命名法:backgroundcolor

我們通過style設定的都是內聯樣式,

而內聯樣式優先順序比較高,所以通過js**修改的樣式往往會立即顯現

但是如果在樣式中寫了!important,則此時樣式會有乙個最高的優先順序,

​ 即使通過js也不能覆蓋樣式,此時會導致js的樣式修改失效

所以盡量不要為樣式新增!important

通過js讀取css樣式

通過style設定和讀取的都是內聯樣式

​ 語法:元素.style.樣式名

獲取元素當前顯示的樣式

​ 語法:元素.currentstyle.樣式名

它可以讀取當前元素正在顯示的樣式

​ 如果當前元素沒有設定該樣式,則獲取它的預設值

currentstyle只有ie瀏覽器支援,其他瀏覽器都不支援

在其他瀏覽器中,

​ getcomputedstyle()這個方法來獲取元素當前的樣式

​ 這個方法是window的,可以直接使用

需要兩個引數

​ 引數一:要獲採樣式的元素

​ 引數二:可以傳遞乙個偽元素,一般都傳null

該方法會返回乙個物件,物件中封裝了當前元素對應的樣式

可以通過物件.樣式名來獲採樣式值

如果獲取的樣式沒有設定,則會獲取到真實的值,而不是預設值

比如:沒有設定width,它不會獲取到auto,而會獲取到實際寬度

但是這個方法不支援ie8以下的瀏覽器

通過currentstyle和getcomputedstyle來獲取到的樣式都是唯讀的

不能修改,如果要修改必須通過style屬性

clientwidth

clientheight

​ 這兩個屬性可以獲取元素的可見寬度可高度

​ 這些屬性都是不帶px的,返回的都是乙個數字,可以直接進行計算

​ 會獲取元素高度和寬度,包括內容區和內邊距

​ 這些屬性都是唯讀的

offsetwidth

offsetheight

獲取元素整個的大小,包括邊框

offsetparent

​ 可以用來獲取當前元素的定位父元素

​ 會獲取到離當前元素最近的開啟了定位的祖先元素

​ 如果所有祖先都沒開啟定位,那麼就會返回body

offsetleft

​ 當前元素相對於其定位父元素的水平偏移量

offsettop

​ 當前元素相對於其定位父元素的垂直偏移量

scrollwidth

scrollheight

​ 可以獲取元素整個滾動區域的高度和寬度

scrollleft

​ 可以獲取水平滾動條滾動的距離

scrolltop

​ 可以獲取垂直滾動條滾動的距離

當滿足scrollheight-scrolltop==clientheight

說明滾動條到底了

使用js修改css樣式表

有些情況下,我們需要頁面載入時就快速修改元素的樣式,但如果在頁面dom載入完後再修改css,雖然元素樣式快速變化,但肉眼能觀察到,所以需要js動態生成樣式表,宣告所希望的css樣式.執行js時,頁面會有很短暫的阻塞,等js執行完畢後,瀏覽器會根據所修改的樣式繼續渲染css.這樣的樣式才不會 閃一下 ...

15 js修改html的css樣式

學習目標 1 使用js操作html的css樣式 2 通過輪詢框示例加深js的了解 學習過程 之前我們學習了使用js修改html的屬性達到一種互動的效果,事實上,使用js修改html的css樣式可以實現一種更加絢麗的互動效果。這節課我們就學習一下如何使用js修改html的樣式的方法。要修改html的樣...

css 修改scrollbar樣式

滾動條從外觀來看是由兩部分組成 1,可以滑動的部分,我們叫它滑塊2,滾動條的軌道,即滑塊的軌道,一般來說滑塊的顏色比軌道的顏色深。滾動條的css樣式主要有三部分組成 1 webkit scrollbar 定義了滾動條整體的樣式 2 webkit scrollbar thumb 滑塊部分 3 webk...