Javascript cssText基本使用指北

2021-06-28 00:39:13 字數 2158 閱讀 2722

一、csstext之起步

那些年,我們是這樣設定樣式的:

***.style.width = "233px";

***.style.position = "fixed";

***.style.left = "233px";

現如今,我們可以這樣搞:

***.style.csstext="width:233px;height:233px;position:fixed";
w3c是這樣描述csstext

csstext,domstring型別

csstext特性必須返回序列化的css規則。

當設定csstext特性時執行這些步驟:

1. 解析其值。

2. 如果解析失敗則終止執行。

3. 如果新物件的type並不匹配當前物件的type則丟擲"invalidmodificationerror"異常。

4. 替換當前物件為新物件。

我以為關鍵在於第四條:

替換當前物件為新物件。
替換,也就是說會覆蓋到目標元素之前本身所具有的全部樣式(繼承的不算)。

舉個栗子:

這裡有乙個,長下面這個模樣:

.***

然後我要改變它的高度,我可以這麼寫:

***.style.height= "466px";

但是客官你不可以這麼寫:

***.style.csstext="height:466px;";

二、csstext之提速

基於上面的原因,我們在使用csstext修改某個元素樣式的時候,需要首先得到它當前的樣式:

var *** = document.getelementbyid("warp");

var ***_style = ***.style.csstext;

然後在加上現在的樣式:

***_style += "position:fixed;"

***.style.csstext = ***_style;

但是,客官如果貴司有下面這種情況,還請留步。

面對這種喪心病狂、男默女淚的情況,我們需要額外注意一點:

當我們使用var ***_style = ***.style.csstext;得到樣式的時候,最後是沒有分號的。

也就是說,如果某個元素的樣式是:height: 100px; width: 100px;overflow: hidden;

在ie6/7/8下我們會得到:height: 100px; width: 100px; overflow: hidden

最後的分號被丟掉了。

結果就是當我們再使用

***_style += "background:#f60;"

***.style.csstext = ***_style;

來處理樣式時,會出現:height: 100px; width: 100px; overflow: hiddenbackground:#f60;

當然你可以選擇使用:***_style = "background:#f60;" + ***_style的方式,最後沒有分號也不會影響,但是世事難料,安全起見,還是額外判斷一下,補上這個分號比較可靠。

除此以外,ie6/7/8下返回的屬性和值全是大寫,為了避免日後出現意外,還是.tolowercase( )比較好。

三、csstext之靠邊停車

大家一路上在前端的道路上馳騁下去吧,就不用靠邊停車了!

馬上就要回家給偉大的祖國母親慶祝生日了,微博上出現了2種不同的聲音:

作業本同學說:

某註明作家(反正我是不認識)說:

作為還在上班(班,小名segmentfault)的人,我就不說什麼了...

大家國慶節快樂!

spine unity 執行庫簡單基本使用指南

說是寫個指南,其實是想吐槽。官方執行庫文件真的辣雞的不行,它的說明文件看著寫的挺全的,結果都是過時的了,裡面提的api大部分根本就找不到!官方文件 但是我們又不得不用不是,所以就要自己翻它 找真正能呼叫的api了,這裡推薦還是看一看它的官方文件,可以至少讓我們對它的架構思路有一定的理解,方便快速分析...

Vue基本使用二 指令

指令 directives 是帶有 v 字首的特殊屬性 用來設定當前元素的文字內容。相當於 innertext 的功能 v text msg 預設的文字內容h1 v html msg 預設的文字內容h1 v bind title msg v bind zhidingyi xm 預設的文字內容h1 t...

React Native Cookie使用指南

web開發中,cookie是乙個常用工具。通常會將使用者與伺服器會話的sessionid儲存在cookie中,用以在請求中標示會話 或者將登入態token值儲存在cookie中,請求中通過cookie值校驗登入態。當我們使用react native開發應用時,是否還能像在web開發中那樣使用cook...