css之基本選擇器,postcss和cssmodule是什么?
postcss是什么?
根據官網的解釋,它是一種javascript編寫的工具,用來轉化css的。可以認為它是處理css的插件集合,需要配合諸如webpack、gulp等編譯工具才能展現它強大的能力。
目前社區提供了非常多的插件,比較有名的如下:
autoprefixer 可以為css的屬性配置兼容性的前綴,不需要手動添加postcss-preset-env 允許你使用更加現代的css特性stylelint 檢查css語法錯誤cssnano css的壓縮器等等postcss的原理如果大家了解babel的原理,那就應該聽說過AST即抽象語法樹。編譯器將字符串進行詞法分析、語法分析,再做轉換,最終達到預期的結果。postcss也是同樣的原理,這個包已經為使用者提供了解析的方法parse,并且也提供了很多轉化的API,利用這些就可以自己開發一款postcss插件了。
css Module是什么?先前呢,我們使用css選擇器,它是對整個頁面是有效的,也就是全局的,當你每次迭代需求的時候,需要考慮每次添加新的css是否會影響到其他地方,所以我們有時選擇為樣式表添加命名空間。css Module為我們提供了另外一種開發方式,它可以使css具有局部作用域。
用法如下:
用法是如此的簡單,基本一看就會,css-loader為我們提供了css Module的開關,只要為css-loader添加參數選項modules就可以開啟。注意:它必須放在less或者sass的loader之前。
那它如何做到局部作用域的呢?
打開element面板可以發現,它把class變成了md5戳,對應每個組件,保持唯一。
vue的scoped由此我們聯想到vue的scoped,它也解決了css局部作用域的問題!
它在dom上生成了一個data屬性,并且給class選擇器添加了屬性選擇器,類似于之前的md5戳。不過由于添加了屬性選擇器,使得選擇器的優先級變高了,想在組件外面覆蓋css屬性就變得不那么容易了!
喜歡我的回答就關注我吧,有問題可以發表評論,我們一起學習,共同成長!
box在HTML中的意思?
這是個CSS的相鄰同胞選擇器。 .box + .box 意思就是:選擇緊鄰第一個box元素的同胞box元素。 這倆類名一樣,解釋起來有點混亂。 我舉個例子。 例如: 標題 標題
文章段落
如果我這么寫:.box1 + h1 ,那么我選擇的就是類名叫.h1-1的元素。 如果:.box2 + h1 ,它不會選擇任何元素,因為.box2的下面沒有一個叫h1的同胞元素。 如果:h1 + div ,那么會選擇.box2的div元素。 第一個元素 + 第二個元素 這個選擇器只會選擇 緊鄰第一個元素 并且是在第一個元素下面的同胞級元素 上面那段代碼,如果你寫 :.box1 + .box2 將沒有效果,因為他們中間夾了個h1元素。 但是有一個選擇器可以實現,就是.box1 ~ .box2 同胞選擇器。 能力有限,不知幫到了嗎?html子元素怎么表示?
在使用 emmet 的縮寫形式來創建 html 代碼結構的時候,可以使用嵌套。在元素里嵌套它的子元素,可以使用大于號(>)。
比如在一個無序列表 ul 元素里,嵌套一個它的子元素 li 元素 … 先輸入一個 ul .. 后面加上一個大于號,如果你學習過寧皓網的 CSS3 選擇器的課程,你會知道,這個 > 號表示元素的子元素 … 在它的右邊輸入大于號左邊的元素的子元素的名字 …. 這里就是 li 元素 … 按下 tab 鍵 …
得到的代碼就是一組 ul 元素里嵌套一個 li 子元素 ..
這個 ul>li 有個更簡單的形式,(#撤回).... 直接使用 ul+ … 這個簡寫形式會得到同樣的結果 …
類型的還有 ol+ … 它是 ol>li 的簡寫形式 … 也就是在 ol 有序列表元素里,嵌套一個 li 元素 …
table
html5class是用于什么?
class 屬性定義了元素的類名。
class 屬性通常用于指向樣式表的類(即CSS .class 選擇器)。但是,它也可以用于 JavaScript 中(通過 HTML DOM), 來修改 HTML 元素的類classname:規定元素的類的名稱。如需為一個元素規定多個類,用空格分隔類名。 <span class="left important">. HTML 元素允許使用多個類。