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 如果我們需要改變多個樣式屬性,我們可以先定義屬性變數,然...