CSS屬性(transition/transform)和CSS變量

一哄辣、CSS3 box-shadow 和 text-shadow 屬性:
1.1 box-shadow語法:

box-shadow: h-offset v-offset blur-radius spread-radius color inset;
對象選擇器 {box-shadow:X軸偏移量 Y軸偏移量 陰影模糊半徑 陰影擴(kuò)展半徑 陰影顏色 [投影方式]}
默認(rèn)值是none

1. h-offset:必需窖维。水平陰影的位置潮尝。允許負(fù)值。如果值為0,則對象的左右邊都有陰影绑洛,如果值為正值,則陰影在對象的右邊童本,其值為負(fù)值時(shí)真屯,陰影在對象的左邊(默認(rèn)是outset,如果是inset相反)穷娱;
2. v-offset:必需绑蔫。垂直陰影的位置。允許負(fù)值泵额。如果值為0配深,則對象的底部和頂部都有陰影,如果為正值嫁盲,陰影在對象的底部篓叶,其值為負(fù)值時(shí),陰影在對象的頂部(默認(rèn)是outset羞秤,如果是inset相反)缸托;
3. blur-radius:此參數(shù)可選,但其值只能是正值瘾蛋,如果其值為0時(shí)俐镐,表示陰影不具有模糊效果,其值越大陰影的邊緣就越模糊哺哼;
4. spread-radius:可選佩抹。其值可以是正負(fù)值奇唤,如果值為正,則整個(gè)陰影都延展擴(kuò)大匹摇,反之值為負(fù)值時(shí)咬扇,則縮小廊勃;  
5. color:可選懈贺。陰影的顏色;
6. inset:可選坡垫。如不設(shè)值梭灿,默認(rèn)投影方式是外陰影;如取其唯一值“inset”冰悠,其投影為內(nèi)陰影堡妒;
注意:box-shadow和text-shadow一樣可以使用一個(gè)或多個(gè)投影,如果使用多個(gè)投影時(shí)必須需要用逗號“溉卓,”分開皮迟。

1.2 text-shadow語法:

text-shadow 屬性向文本設(shè)置陰影。默認(rèn)值是none
text-shadow: h-shadow v-shadow blur color;
1. h-shadow必需桑寨。水平陰影的位置伏尼。允許負(fù)值。
2. v-shadow必需尉尾。垂直陰影的位置爆阶。允許負(fù)值。
3. blur可選沙咏。模糊的距離辨图。
4. color可選。陰影的顏色肢藐。

二故河、CSS3 transition 屬性
2.1 定義和用法

transition 屬性是一個(gè)簡寫屬性,用于設(shè)置四個(gè)過渡屬性:默認(rèn)值是all 0 ease 0
transition-property
transition-duration
transition-timing-function
transition-delay
注:請始終設(shè)置 transition-duration 屬性窖壕,否則時(shí)長為 0忧勿,就不會(huì)產(chǎn)生過渡效果杉女。

2.2 語法

transition: property duration timing-function delay;

transition-property 規(guī)定設(shè)置過渡效果的 CSS 屬性的名稱瞻讽。
-one 沒有屬性會(huì)獲得過渡效果。
-all 所有屬性都將獲得過渡效果熏挎。
-property 定義應(yīng)用過渡效果的 CSS 屬性名稱列表速勇,列表以逗號分隔。

transition-duration 規(guī)定完成過渡效果需要多少秒或毫秒坎拐。
-time 規(guī)定完成過渡效果需要花費(fèi)的時(shí)間(以秒或毫秒計(jì))烦磁。默認(rèn)值是 0养匈,意味著不會(huì)有效果。

transition-timing-function 規(guī)定速度效果的速度曲線都伪。
-linear 規(guī)定以相同速度開始至結(jié)束的過渡效果(等于 cubic-bezier(0,0,1,1))呕乎。
-ease-in    規(guī)定以慢速開始的過渡效果(等于 cubic-bezier(0.42,0,1,1))。
-ease-out   規(guī)定以慢速結(jié)束的過渡效果(等于 cubic-bezier(0,0,0.58,1))陨晶。
-ease-in-out    規(guī)定以慢速開始和結(jié)束的過渡效果(等于 cubic-bezier(0.42,0,0.58,1))猬仁。
-cubic-bezier(n,n,n,n)  在 cubic-bezier 函數(shù)中定義自己的值∠扔可能的值是 0 至 1 之間的數(shù)值湿刽。

transition-delay 定義過渡效果何時(shí)開始。

參考CSS詳解

三褐耳、CSS3 transform 屬性
3.1 定義和用法

transform 屬性向元素應(yīng)用 2D 或 3D 轉(zhuǎn)換诈闺。該屬性允許我們對元素進(jìn)行旋轉(zhuǎn)、縮放铃芦、移動(dòng)或傾斜:默認(rèn)值是none
-none   定義不進(jìn)行轉(zhuǎn)換雅镊。
-matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)  定義 3D 轉(zhuǎn)換,使用 16 個(gè)值的 4x4 矩陣刃滓。  
-translate(x,y) 定義 2D 轉(zhuǎn)換漓穿。   
-translate3d(x,y,z) 定義 3D 轉(zhuǎn)換。   
-translateX(x)  定義轉(zhuǎn)換注盈,只是用 X 軸的值晃危。 
-translateY(y)  定義轉(zhuǎn)換,只是用 Y 軸的值老客。 
-translateZ(z)  定義 3D 轉(zhuǎn)換僚饭,只是用 Z 軸的值。 
-scale(x,y) 定義 2D 縮放轉(zhuǎn)換胧砰。 
-scale3d(x,y,z) 定義 3D 縮放轉(zhuǎn)換鳍鸵。 
-scaleX(x)  通過設(shè)置 X 軸的值來定義縮放轉(zhuǎn)換。  
-scaleY(y)  通過設(shè)置 Y 軸的值來定義縮放轉(zhuǎn)換尉间。  
-scaleZ(z)  通過設(shè)置 Z 軸的值來定義 3D 縮放轉(zhuǎn)換偿乖。  
-rotate(angle)  定義 2D 旋轉(zhuǎn),在參數(shù)中規(guī)定角度哲嘲。  
-rotate3d(x,y,z,angle)  定義 3D 旋轉(zhuǎn)贪薪。   
-rotateX(angle) 定義沿著 X 軸的 3D 旋轉(zhuǎn)。    
-rotateY(angle) 定義沿著 Y 軸的 3D 旋轉(zhuǎn)眠副。    
-rotateZ(angle) 定義沿著 Z 軸的 3D 旋轉(zhuǎn)画切。    
-skew(x-angle,y-angle)  定義沿著 X 和 Y 軸的 2D 傾斜轉(zhuǎn)換。  
-skewX(angle)   定義沿著 X 軸的 2D 傾斜轉(zhuǎn)換囱怕。  
-skewY(angle)   定義沿著 Y 軸的 2D 傾斜轉(zhuǎn)換霍弹。  
-perspective(n) 為 3D 轉(zhuǎn)換元素定義透視視圖毫别。

3.2 語法

transform: none|transform-functions;

3.3 轉(zhuǎn)換屬性

transform-origin    允許你改變被轉(zhuǎn)換元素的位置。  
transform-style 規(guī)定被嵌套元素如何在 3D 空間中顯示典格。    
perspective 規(guī)定 3D 元素的透視效果岛宦。  
perspective-origin  規(guī)定 3D 元素的底部位置。  
backface-visibility 定義元素在不面對屏幕時(shí)是否可見耍缴。

3.4 transform-origin

3.4.1 定義和用法
transform-origin 屬性允許您改變被轉(zhuǎn)換元素的位置恋博。
2D 轉(zhuǎn)換元素能夠改變元素 x 和 y 軸。3D 轉(zhuǎn)換元素還能改變其 Z 軸私恬。
3.4.2 語法
transform-origin: x-axis y-axis z-axis; 默認(rèn)值:50% 50% 0
x-axis  定義視圖被置于 X 軸的何處债沮。
可能的值:left center right length %
y-axis  定義視圖被置于 Y 軸的何處。
可能的值:top center bottom length %
z-axis  定義視圖被置于 Z 軸的何處本鸣。
可能的值:length
注:該屬性必須與 transform 屬性一同使用疫衩。

四、CSS3 filter(濾鏡) 屬性
4.1 定義和使用

filter 屬性定義了元素(通常是<img>)的可視效果(例如:模糊與飽和度)荣德。默認(rèn)值是none
支持的效果有:
-blur(模糊) 給圖像設(shè)置高斯模糊,"radius"一值設(shè)定高斯函數(shù)的標(biāo)準(zhǔn)差闷煤,或者是屏幕上以多少像素融在一起, 所以值越大越模糊涮瞻;如果沒有設(shè)定值鲤拿,
則默認(rèn)是0;這個(gè)參數(shù)可設(shè)置css長度值署咽,但不接受百分比值近顷。
-grayscale(灰度)
-drop-shadow(陰影)
-sepia(褐色濾鏡)
-brightness(亮度)
-contrast(對比)
-h(huán)ue-rotate(色相)
-invert(反相)
-saturate(飽和度)
-opacity(透明度)

五、:root 偽類

這個(gè)偽元素匹配的是文檔的根元素宁否,也就是 <html> 標(biāo)簽窒升。
所以常用于聲明全局的 CSS 變量:
:root {
  --color: #fff;
}

在使用時(shí):
img {
  background: var(--base);
}

六、CSS 變量(自定義屬性)
參考:CSS 變量教程
6.1 變量的聲明

聲明變量的時(shí)候慕匠,變量名前面要加兩根連詞線(--)饱须。
body {
  --foo: #7F583F;
  --bar: #F7EFD2;
}
上面代碼中,body選擇器里面聲明了兩個(gè)變量:--foo和--bar台谊。
它們與color蓉媳、font-size等正式屬性沒有什么不同,只是沒有默認(rèn)含義锅铅。所以 CSS 變量(CSS variable)又叫做"CSS 自定義屬性"(CSS custom properties)酪呻。因?yàn)樽兞颗c自定義的 CSS 屬性其實(shí)是一回事。
注:變量名大小寫敏感狠角,--header-color和--Header-Color是兩個(gè)不同變量号杠。

6.2 var() 函數(shù)

6.2.1 var()函數(shù)用于讀取變量。

a {
  color: var(--foo);
  text-decoration-color: var(--bar);
}

6.2.2 var()函數(shù)還可以使用第二個(gè)參數(shù)丰歌,表示變量的默認(rèn)值姨蟋。如果該變量不存在,就會(huì)使用這個(gè)默認(rèn)值立帖。

color: var(--foo, #7F583F);

6.2.3 第二個(gè)參數(shù)不處理內(nèi)部的逗號或空格眼溶,都視作參數(shù)的一部分。

var(--font-stack, "Roboto", "Helvetica");
var(--pad, 10px 15px 20px);

6.2.4 var()函數(shù)還可以用在變量的聲明晓勇。

:root {
  --primary-color: red;
  --logo-text: var(--primary-color);
}

6.2.5 變量值只能用作屬性值堂飞,不能用作屬性名。

.foo {
  --side: margin-top;
  /* 無效 */
  var(--side): 20px;
}
上面代碼中绑咱,變量--side用作屬性名绰筛,這是無效的。

6.3 JavaScript 操作

JavaScript 操作 CSS 變量的寫法如下描融。
// 設(shè)置變量
document.body.style.setProperty('--primary', '#7F583F');

// 讀取變量
document.body.style.getPropertyValue('--primary').trim();
// '#7F583F'

// 刪除變量
document.body.style.removeProperty('--primary');

七铝噩、HTML5 中的自定義數(shù)據(jù)屬性 dataset

HTML5 中可以為元素添加非標(biāo)準(zhǔn)的自定義屬性,只需要加上 data- 前綴窿克,可以隨便添加和命名骏庸。添加之后,可以通過元素的 dataset 屬性來訪問這些值年叮,dataset 的值是 DOMStringMap 的一個(gè)實(shí)例化對象具被,其中包含之前所設(shè)定的自定義屬性的“名-值”對。
例如:在項(xiàng)目中處理參數(shù)值(一個(gè)有 px 只损、另一個(gè)沒有)
運(yùn)用 dataset 儲(chǔ)存后綴一姿,有 px 后綴的標(biāo)簽中設(shè)置 <input data-sizing: px>:
<input type="range" name="blur" min="0" max="25" value="10" data-sizing="px">
<input type="color" name="base" value="#8aa8af">
JS 中通過 dataset.sizing 來獲取后綴值:
const suffix = this.dataset.sizing || ''; 
此時(shí) suffix 獲取到的值,針對顏色為空跃惫,而針對長度類的則為 'px'啸蜜。

八、用 JavaScript 改變 CSS 屬性值

在 JavaScript 中 document.documentElement 即代表文檔根元素辈挂。所以要改變?nèi)值?CSS 變量衬横,可以這樣寫:
document.documentElement.style.setProperty('--base', '#fff');
或
document.body.style.setProperty('--primary', '#7F583F');

document.documentElement和document.body的區(qū)別
參考:document.documentElement和document.body的區(qū)別

頁面具有 DTD,或者說指定了 DOCTYPE 時(shí)终蒂,使用 document.documentElement蜂林。
頁面不具有 DTD,或者說沒有指定了 DOCTYPE拇泣,時(shí)噪叙,使用 document.body。

documentElement 和 body 相關(guān)說明:
(1) body是DOM對象里的body子節(jié)點(diǎn)霉翔,即 <body> 標(biāo)簽睁蕾;
(2) documentElement 是整個(gè)節(jié)點(diǎn)樹的根節(jié)點(diǎn)root,即<html> 標(biāo)簽;
(3DOM把層次中的每一個(gè)對象都稱之為節(jié)點(diǎn)子眶,就是一個(gè)層次結(jié)構(gòu)瀑凝,你可以理解為一個(gè)樹形結(jié)構(gòu),就像我們的目錄一樣臭杰,一個(gè)根目錄粤咪,根目錄下有子目錄,子目錄下還有子目錄渴杆。
以HTML超文本標(biāo)記語言為例:整個(gè)文檔的一個(gè)根就是,在DOM中可以使用document.documentElement來訪問它寥枝,它就是整個(gè)節(jié)點(diǎn)樹的根節(jié)點(diǎn)。而body是子節(jié)點(diǎn)磁奖,要訪問到body標(biāo)簽囊拜,在腳本中應(yīng)該寫:document.body。

九比搭、toggle() 方法
9.1 定義和用法

toggle() 方法切換元素的可見狀態(tài)冠跷。
如果被選元素可見,則隱藏這些元素敢辩,如果被選元素隱藏蔽莱,則顯示這些元素。

9.2 語法

$(selector).toggle(speed,callback,switch)

speed   
可選戚长。規(guī)定元素從可見到隱藏的速度(或者相反)盗冷。默認(rèn)為 "0"。
可能的值:毫秒 (比如 1500)"slow" "normal" "fast"
在設(shè)置速度的情況下同廉,元素從可見到隱藏的過程中仪糖,會(huì)逐漸地改變其高度、寬度迫肖、外邊距锅劝、內(nèi)邊距和透明度。
如果設(shè)置此參數(shù)蟆湖,則無法使用 switch 參數(shù)故爵。

callback    
可選。toggle 函數(shù)執(zhí)行完之后隅津,要執(zhí)行的函數(shù)诬垂。
除非設(shè)置了 speed 參數(shù),否則不能設(shè)置該參數(shù)伦仍。

switch  
可選结窘。布爾值。規(guī)定 toggle 是否隱藏或顯示所有被選元素充蓝。
True - 顯示所有元素
False - 隱藏所有元素
如果設(shè)置此參數(shù)隧枫,則無法使用 speed 和 callback 參數(shù)喉磁。

注:該效果適用于通過 jQuery 隱藏的元素,或在 CSS 中聲明 display:none 的元素(但不適用于 visibility:hidden 的元素)官脓。

9.3 向 Toggle 事件綁定兩個(gè)或更多函數(shù)

toggle() 方法用于綁定兩個(gè)或多個(gè)事件處理器函數(shù)协怒,以響應(yīng)被選元素的輪流的 click 事件。該方法也可用于切換被選元素的 hide() 與 show() 方法确买。
在javascript中toggle()為連續(xù)點(diǎn)擊事件,當(dāng)里面含有多個(gè)function(){}函數(shù)時(shí),每次點(diǎn)擊依次執(zhí)行里面的function的函數(shù),直至最后一個(gè).隨后每次點(diǎn)擊都重復(fù)對這幾個(gè)函數(shù)的輪番調(diào)用
語法:$(selector).toggle(function1(),function2(),functionN(),...)
function1() 必需斤讥。規(guī)定當(dāng)元素在每偶數(shù)次被點(diǎn)擊時(shí)要運(yùn)行的函數(shù)纱皆。
function2() 必需湾趾。規(guī)定當(dāng)元素在每奇數(shù)次被點(diǎn)擊時(shí)要運(yùn)行的函數(shù)。
functionN(),... 可選派草。規(guī)定需要切換的其他函數(shù)搀缠。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市近迁,隨后出現(xiàn)的幾起案子艺普,更是在濱河造成了極大的恐慌,老刑警劉巖鉴竭,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歧譬,死亡現(xiàn)場離奇詭異,居然都是意外死亡搏存,警方通過查閱死者的電腦和手機(jī)瑰步,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來璧眠,“玉大人缩焦,你說我怎么就攤上這事≡鹁玻” “怎么了袁滥?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灾螃。 經(jīng)常有香客問我题翻,道長,這世上最難降的妖魔是什么腰鬼? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任嵌赠,我火速辦了婚禮,結(jié)果婚禮上垃喊,老公的妹妹穿的比我還像新娘猾普。我一直安慰自己,他們只是感情好本谜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布初家。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪溜在。 梳的紋絲不亂的頭發(fā)上陌知,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音掖肋,去河邊找鬼仆葡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛志笼,可吹牛的內(nèi)容都是我干的沿盅。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼纫溃,長吁一口氣:“原來是場噩夢啊……” “哼腰涧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起紊浩,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤窖铡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后坊谁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體费彼,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年口芍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箍铲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阶界,死狀恐怖虹钮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膘融,我是刑警寧澤芙粱,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站氧映,受9級特大地震影響春畔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岛都,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一律姨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臼疫,春花似錦择份、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤价。三九已至,卻和暖如春拔创,著一層夾襖步出監(jiān)牢的瞬間利诺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工剩燥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慢逾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓灭红,卻偏偏與公主長得像侣滩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子比伏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,194評論 0 7
  • 請參看我github中的wiki胜卤,不定期更新疆导。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,133評論 2 19
  • 前端開發(fā)面試知識(shí)點(diǎn)大綱: HTML&CSS: 對Web標(biāo)準(zhǔn)的理解赁项、瀏覽器內(nèi)核差異、兼容性澈段、hack悠菜、CSS基本功:...
    秀才JaneBook閱讀 2,383評論 0 25
  • 今日讀《翻新你的大腦》評判視角: 我們通常的評判依據(jù):可能是依就以往的所見所聞的經(jīng)驗(yàn),而經(jīng)驗(yàn)的形成卻是依每個(gè)人...
    梁木純閱讀 138評論 0 0
  • 1.認(rèn)準(zhǔn)目的--把事做對 在領(lǐng)導(dǎo)分給你一項(xiàng)任務(wù)時(shí)败富,最好能多問一兩句悔醋,做這件事的目的是什么。因?yàn)轭I(lǐng)導(dǎo)布置任務(wù)時(shí)沒想那...
    濃湯閱讀 219評論 0 3