4 種方式可以在 HTML 中引入 CSS。其中有 2 種方式是在 HTML 文件中直接添加 CSS 代碼,另外兩種是引入 外部 CSS 文件。下面我們就來看看這些方式和它們的優缺點。
內聯方式
內聯方式指的是直接在 HTML 標簽中的 style 屬性中添加 CSS。
示例:
<div style="background: red"></div>
這通常是個很糟糕的書寫方式,它只能改變當前標簽的樣式,如果想要多個 <div> 擁有相同的樣式,你不得不重復地為每個 <div> 添加相同的樣式,如果想要修改一種樣式,又不得不修改所有的 style 中的代碼。很顯然,內聯方式引入 CSS 代碼會導致 HTML 代碼變得冗長,且使得網頁難以維護。
嵌入方式
嵌入方式指的是在 HTML 頭部中的 <style> 標簽下書寫 CSS 代碼。
示例:
<head> <style> .content { background: red; } </style> </head>
嵌入方式的 CSS 只對當前的網頁有效。因為 CSS 代碼是在 HTML 文件中,所以會使得代碼比較集中,當我們寫模板網頁時這通常比較有利。因為查看模板代碼的人可以一目了然地查看 HTML 結構和 CSS 樣式。因為嵌入的 CSS 只對當前頁面有效,所以當多個頁面需要引入相同的 CSS 代碼時,這樣寫會導致代碼冗余,也不利于維護。
鏈接方式
鏈接方式指的是使用 HTML 頭部的 <head> 標簽引入外部的 CSS 文件。
示例:
<head> <link rel="stylesheet" type="text/css" href="style.css"> </head>
這是最常見的也是最推薦的引入 CSS 的方式。使用這種方式,所有的 CSS 代碼只存在于單獨的 CSS 文件中,所以具有良好的可維護性。并且所有的 CSS 代碼只存在于 CSS 文件中,CSS 文件會在第一次加載時引入,以后切換頁面時只需加載 HTML 文件即可。
導入方式
導入方式指的是使用 CSS 規則引入外部 CSS 文件。
示例:
<style> @import url(style.css); </style>
比較鏈接方式和導入方式
鏈接方式(下面用 link 代替)和導入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我們來比較這兩種方式,并且說明為什么不推薦使用 @import。
小結:我們應盡量使用 <link> 標簽導入外部 CSS 文件,避免或者少用使用其他三種方式。
說,我想問問小伙伴們你知道幾種往JS數組中添加元素的方法呢?下面我們一起去看看吧。
特點:
1.尾部 添加一個或者多個元素
2.返回數組新的長度
3. 該方法會改變數組長度,直接修改原數組
<script>
let arr = [1,2,3,4];
// push()方法
let newArr = arr.push(5);
console.log("newArr",newArr);//添加一個元素5,返回長度5
console.log("arr",arr);//[1,2,3,4,5]
</script>
也可以添加多個元素,如添加2個元素5、6 arr.push(5,6)
<script>
let arr = [1, 2, 3, 4];
// push()方法
let newArr = arr.push(5, 6);
console.log("newArr", newArr);//添加兩個元素5、6,返回長度6
console.log("arr", arr);//[1,2,3,4,5,6]
</script>
也可以往數組中添加對象,arr.push({})
<script>
let arr = [1, 2, 3, 4];
// push()方法
let newArr = arr.push({});//添加 空對象
console.log("newArr", newArr);//5
console.log("arr", arr);//[1,2,3,4,{}]
</script>
特點:與push方法類似,只不過添加到頭部
<script>
let arr = [1, 2, 3, 4];
let newArr = arr.unshift(0);//添加元素0
console.log("newArr", newArr);//5
console.log("arr", arr);//[0,1,2,3,4]
</script>
參數1:索引位置
參數2:添加元素的個數
參數3:要添加的元素
<script>
let arr = [1, 2, 3, 4];
let newArr = arr.splice(4,0,5);
console.log("newArr", newArr);//[]
console.log("arr", arr);//[1,2,3,4,5]
</script>
<script>
let arr = [1, 2, 3, 4];
let newArr = (arr[arr.length] = 6);
console.log("newArr", newArr);//6
console.log("arr", arr);//[1,2,3,4,6]
</script>
添加多個元素:
<script>
let arr = [1, 2, 3, 4];
let newArr = arr.concat(5,6,7);
console.log("newArr", newArr);//[1,2,3,4,5,6,7]
console.log("arr", arr);//[1,2,3,4]
</script>
添加數組:
<script>
let arr = [1, 2, 3, 4];
let newArr = arr.concat([10,20]);
console.log("newArr", newArr);//[1,2,3,4,10,20]
console.log("arr", arr);//[1,2,3,4]
</script>
當大家聽到這個詞或許能猜到是在js里面寫編寫css樣式,可我們以前都是在html內或引用外部css文件樣式,為什么現在可以在js里編寫css樣式呢?
先讓我們看看“關注點分離”的概念,以前在開發前端項目里面,關注點分離是對只與“特定概念、目標”相關聯的軟件組成部分進行“標識、封裝和操縱”的能力。
它代表標識、封裝和操縱關注點的能力,是處理復雜性的一個原則。
由于關注點混雜在一起會導致復雜性大大增加,能夠把不同的關注點分離開來,分別處理就是處理復雜性的一個原則,一種方法。
在前端開發的領域,把html、css、js分開成三個獨立部分,方便維護,各自解耦,降低復雜度。
通俗的理解,css-in-js就是把css寫進js。
即不寫“行內樣式”和“行內腳本”。
相對于js的突飛猛進,css的進化就比較緩慢,隨著前端react、vue等框架模塊化概念的出現,改變了獨立三個部分的局面。
html寫到js里面,使html的弱化與js的強化成為了一種趨勢,頁面也被切分成一個個模塊。
這時候對css來講,獨立打包似乎并不是那么的理所當然了,一個模塊有它自己的html、js、css才是更好的切分頁面功能的方式。
現在隨著組件化概念的流行,css 的弱化與 js 的強化趨勢也在慢慢形成,從組件層面維護css樣式的需求日益增大。
css-in-js就是在組件內部使用js對css進行了抽象,可以對其聲明和加以維護。這樣不僅降低了編寫css樣式帶來的風險,也讓開發變得更加輕松。
css-in-js理念,即是摒棄原有的用.css文件書寫樣式,而把樣式寫進js里面,這樣就可以做到一個組件對應一個文件、一個文件便是一個組件,一次開發公共使用的目的。
目前有很多基于css-in-js思想衍生出來的第三方庫,如styled-components、emotion、jss、styled-jsx等等。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。