react 改變css樣式 React的CSS方案

2021-10-19 22:25:25 字數 1109 閱讀 8901

react的css方案

css的缺陷

樣式與狀態相關的情況越來越多,需要動態、能直接訪問元件state的css。

css不是元件化。一切樣式都是全域性,類的命名重複,但當你使用三方外掛程式時卻無法避免命名衝突。

關於sass題外話

sass指預編譯器和縮排式css語言

預編譯器有兩種node-sass和dart-sass,node-sass已經退出舞台了

scss並不能解決css的問題

vue的解決方案

v-bind 和 class/style 的結合,解決了依賴變化時樣式發生變化

scoped css的語法

內聯css

傳統的inline-style

const textstyles = >;

var styles =

.row {}

.cell {}

複製**

css modules還有一大缺憾:和vue的解決一樣,因為css寫在css檔案,無法處理動態css。

styled-components

es6 的模板字串,在js檔案裡寫純粹的css。

const title = styled.h1`

font-size: 1.5em;

text-align: center;

color: palevioletred;

複製**

返回的是乙個帶樣式的元件

// 在充分使用css全部功能的同時,非常方便的實現動態css, 甚至可以直接呼叫props!

padding: 4em;

background: $;

複製**

小結要解決的兩個問題:模組化和動態css

內聯css,引入式css,css in js,css modules

內聯css:部分偽元素選擇器不支援

引入式:樣式作用於全域性

css in js:很好的實現了state和style的結合,因為css就在js檔案裡直接訪問就行

css in js 是對內聯css的公升級補充了內聯不支援的部分選擇器,完美地實現了模組化和動態css

css modules:利用classname來處理樣式,無法處理動態css。

Javascript 改變CSS樣式

有三種方法 直接改變樣式 改變classname和改變csstext 改變classname document.getelementbyid obj classname 改變csstext document.getelementbyid obj style.csstext width 20px bo...

css改變placeholder樣式

placeholder預設樣式已經漸漸不能滿足開發者的需求,接下來推薦給大家自定義placeholder的樣式的方法。方式1 因為每個瀏覽器的css選擇器都有所差異,所以需要針對每個瀏覽器做單獨的設定 可以在冒號前面寫input和textarea webkit input placeholder m...

jQuery基礎 改變CSS樣式

jquery提供css 的方法來實現嵌入式改變元素樣式,css 61dh a css color 123456 這裡選擇器 61dh a 表示id為 61dh 的元素下的所有鏈結。css color 123456 表示把顏色設為 123456 如果我們需要改變多個樣式屬性,我們可以先定義屬性變數,然...