成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

如何理解css的預處理器、后處理器以及選擇器

本篇文章給大家帶來了css中預處理器、后處理器和選擇器的相關知識,希望對大家有幫助。

如何理解css的預處理器、后處理器以及選擇器

css預處理器

css預處理器:用一種專門的編程語言,為CSS增加了一些編程的特性,將CSS作為目標生成文件,然后開發者就只要使用這種語言進行編碼工作。

css存在的問題:

  • 語法不夠強大,比如無法嵌套書寫導致模塊化開發中需要書寫很多重復的選擇器;

  • 沒有變量和合理的樣式復用機制,使得邏輯上相關的屬性值必須以字面量的形式重復輸出,導致難以維護。

  • 所以需要預處理器提供 CSS 缺失的樣式層復用機制、減少冗余代碼,提高樣式代碼的可維護性。

目前比較主流的三個處理器分別是 Less、Sass、Stylus

Sass、LESS和Stylus的對比

安裝
1.sass的安裝

首先安裝ruby,建議安裝到C盤中,安裝過程中選擇“Add Ruby executables to your PATH”

ruby安裝成功后,啟動Ruby的Command控制面板,輸入命令

  gem install sass

回車后會自動安裝好Sass

2.Less的安裝

分為兩種:客戶端和服務器端安裝。

a.客戶端

只需要在官網載一個Javascript腳本文件主“less.js”,然后在我們需要引入LESS源文件的HTML的中加入如下代碼:

<link rel="stylesheet/less" type="text/css" href="文件路徑/styles.less"> <script src="文件路徑/less.js" type="text/javascript"></script>

b.服務器

利用node的包管理器(npm)安裝LESS,安裝成功后就可以在Node環境中對LESS文件進行編譯。

首先安裝node,安裝成功后,啟動node的Command控制面板,輸入命令

  $ npm install less

回車后會自動安裝好less

3.Stylus的安裝

Stylus的安裝和LESS在服務器端的安裝很相似,先安裝Node 。在Node的Command控制面板輸入命令:

 $ npm install stylus

回車后會自動安裝好stylus

Sass、LESS和Stylus轉換成css文件

1.sass

先在項目中創建一個Sass文件,此例中將其命名為“style.scss”,并且將其放在對應的項目樣式中

啟動Ruby的Command控制面板,找到需要轉譯的Sass文件

在對應的目錄下輸入下面的命令:

sass style.scss style.css sass --watch style.scss:style.css

就會生成自動“style.css”文件,并自動更新對應的CSS樣式文件

2.Less(了解)

在安裝的Node JS環境下通過其自己的命令來進行轉譯。

 $ lessc style.less

上面的命令會將編譯的CSS傳遞給stdout,你可以將它保存到一個文件中:

$ lessc style.less > style.css

3.Stylus(了解)

Stylus具有可執行性,因此Stylus能將自身轉換成CSS。Stylus可以讀取自“stdin”輸出到“stdout”,因此Stylus可以像下面轉譯源文件:

$ stylus –compress  <some.styl> some.css

Stylus也像Sass一樣,同時接受單個文件和整個目錄的轉譯。例如,一個目錄名為“css”將在同一個目錄編譯并輸出“.css”文件。

$ stylus css

下面的命令將輸出到“./public/stylesheets”:

 $ stylus css –out public/stylesheets

還可以同時轉譯多個文件:

$ stylus one.styl two.styl

如果你的瀏覽器安裝了Firebug,那么可以使用FireStylus擴展。

$ stylus –firebug <path>

變量的處理

Less:變量處理方式–懶加載,所有 Less 變量的計算,都是以這個變量最后一次被定義的值為準。

Less

@size: 10px;.box { width: @size; } @size: 20px;  .ball { width: @size; }

輸出:

.box { width: 20px; } .ball { width: 20px; }

Stylus

size = 10px .box   width: sizesize = 20px .ball   width: size

輸出:

.box {  width: 10px;}.ball {  width: 20px;}

Sass的變量處理方式和Stylus相同,變量值輸出時根據之前最近的一次定義計算。這其實代表了兩種理念:Less 更傾向接近 CSS 的聲明式,計算過程弱化調用時機;而 Sass 和 Stylus 更傾向于指令式。

如果在Less中引入第三方樣式庫,可以通過重新配置變量來改變樣式

優點:stylus和sass這樣的處理會不容易受多個第三方庫變量名沖突的影響,因為一個變量不能影響在定義它以前的輸出樣式

css后處理器

參考鏈接

css后處理器是對css進行處理,并最終生成css預處理器,它屬于廣義上的css預處理器

舉例:css壓縮工具(clean-css),Autoprefixer(以Can I Use上的瀏覽器支持數據為基礎,自動處理兼容問題)

Autoprefixer:

標準css:

.container {display: flex;}.item {flex: 1;}

兼容處理后

.container { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; } .item { -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; }

優點:使用Css語法,容易進行模塊化,貼近Css的未來標準

缺點:邏輯處理能力有限

框架舉例

PostCss:是一個基于JS插件的轉換樣式的工具。PostCSS插件可以像預處理器,它們可以優化和Autoprefix代碼;可以添加未來語法;可以添加變量和邏輯;可以提供完整的網格系統;可以提供編碼的快捷方式等等

優點:

  • 多樣化的功能插件,創建了一個生態的插件系統
  • 根據你需要的特性進行模塊化
  • 快速編譯
  • 創建自己的插件,且具可訪問性
  • 可以像普通的CSS一樣使用它
  • 不依賴于任何預處理器就具備創建一個庫的能力
  • 可以與許多流行工具構建無縫部署

font-family

font-family用來規定元素的字體系列。

font-family 可以把多個字體名稱作為一個“回退”系統來保存。如果瀏覽器不支持第一個字體,則會嘗試下一個。也就是說,font-family 屬性的值是用于某個元素的字體族名稱或/及類族名稱的一個優先表。瀏覽器會使用它可識別的第一個值。

font-family 定義的原則:

  • 通常會先進行英文字體的聲明,選擇最優的英文字體,這樣不會影響到中文字體的選擇,中文字體聲明則緊隨其次。
  • 兼顧多操作系統,不同系統下的字體表示:

如何理解css的預處理器、后處理器以及選擇器
如何理解css的預處理器、后處理器以及選擇器
如何理解css的預處理器、后處理器以及選擇器

  • 當使用一些非常新的字體時,要考慮向下兼容,兼顧到一些極舊的操作系統,可以使用字體族系列 serif 和sans-serif 結尾。為低級系統提供fallback方案

css選擇器

參考鏈接

選擇器

分類:基礎選擇器、組合選擇器、屬性選擇器、偽類選擇器和偽元素等

基礎選擇器:

id選擇器(#footer),匹配所有id屬性等于footer的元素。 類選擇器(.info),匹配所有class屬性中包含info的元素。 通用選擇器(*),匹配任何元素。 標簽選擇器(E),匹配所有使用E標簽的元素。 同級元素選擇器(E~F ),匹配任何在E元素之后的同級F元素(CSS3)。

屬性選擇器:(E表示元素,attr表示屬性,val表示屬性的值。)

 E[attr]選擇器,匹配所有具有attr屬性的E元素,不考慮它的值。  E[attr=val]匹配所有attr屬性值為val的E元素。  E[attr~=val]匹配具有attr屬性且屬性值用空格分隔的字符列表。  E[attr|=val]匹配具有attr屬性且屬性值為用連接符(-)分隔的字符串,并以val開頭的E元素。  E[attr^="val"],屬性attr的值以"val"開頭的元素(CSS3)。  E[attr$=“val”],屬性attr的值以"val"結尾的元素(CSS3)。  E[attr*="val"],屬性attr的值包含"val"字符串的元素(CSS3)。

組合選擇器

  多元素選擇器(E, F),同時匹配多有E元素或F元素。   后代選擇器(E F),匹配所有屬于E元素后代的F元素,E和F之間用空格分隔。   子元素選擇器(E > F), 匹配所有E元素的子元素F。   相鄰選擇器(E + F),匹配所有緊隨E元素之后的同級元素F。

偽類選擇器:

   E:link, 匹配所有未被點擊的鏈接.    E:visited, 匹配所有已被點擊的鏈接。    E:active, 匹配鼠標已經將其按下,還沒釋放的E元素。    E:hover, 匹配鼠標懸停其上的E元素。    E:focus, 匹配獲得當前焦點的E元素。

結構性偽類:E:nth-child(n), 匹配其父元素的第n個子元素,第一個編號為1。

!important屬性

1、用于解決IE對某些CSS規范有偏差的情況.
比如在IE中的效果總是和其他的瀏覽器如firefox,opera等相差2px,導致頁面布局有錯位, 這是因為IE對盒之間距離的解釋的bug造成的,針對這種情況我們就可以利用!important來幫助解決。

.myclass{ margin-left:20px!important; margin-left:40px;}

只有當同時出現兩個同名的樣式時,才可以這樣用,此時IE瀏覽器是識別的
2、如果有定義了一個樣式A,比如font-size,你不打算讓以后也叫樣式A的覆蓋掉這個font-size,也可以用 !important . 而如果新樣式也用了!important 則還是會強制覆蓋掉

.A{ font-size:12px !important;}.A{ font-size:14px;   //不會生效 }.A{ font-size:14px !important; //生效 }

優先級

!important >id選擇器>class、屬性、偽類選擇器>標簽選擇器

權值越大優先級越高,權值相同,后定義的優先級較高,

瀏覽器查找元素是從右到左查找的,好處是為了快速過濾掉一些無關緊要的樣式規則和元素

例如:p#pBox p span.red{color:red;},瀏覽器的查找順序如下:先查找html中所有class=’red’的span元素,找到后,再查找其父輩元素中是否有p元素,再判斷p的父元素中是否有id為pBox的p元素,如果都存在則匹配上。

屬性繼承

CSS屬性繼承:外層元素的樣式,會被內層元素進行繼承。多個外層元素的樣式,最終都會“疊加”到內層元素上。

不可繼承的:display、margin、border、padding、background、height、min-height、max-height、width、min-width、max-width、overflow、position、left、right、top、bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、page-bread-before和unicode-bidi。

CSS文本屬性都會被繼承的:
color、 font-size、font-family、font-style、 font-weight
text-align、text-decoration、text-indent、letter-spacing、line-height
提示:<body>中的CSS屬性,會被所有的子元素繼承。

優先級就近原則,同權重的情況下樣式定義最近者為標準,載入樣式以最后載入的定位為準

ID選擇器和Class選擇器的區別

ID選擇器:每個元素只能有一個ID,每個頁面只能有一個元素使用該ID

class選擇器:多個元素可以共用相同類,一個元素可以有多個類

雪碧圖原理

原理:把小圖標合成一張大圖,通過給元素的公共css設置background-image為該合成圖,這樣每個元素都會以該合成圖為背景,而且頁面也只加載一張合成圖,然后再給每個元素單獨微調其background-position。把多個請求合并成一個。

background-position

設置背景圖像的起始位置。

background-position屬性設置背景原圖像(由 background-image 定義)的位置,意味著使用這個屬性的前提是必須設置背景原圖像background-image。

background-position的屬性值:

  • 方向值:x軸方向:left | right | center; y軸方向:top| bottom | center
  • 使用百分比來設置屬性值,以自身容器的長寬 減去 圖片的長寬 乘以 百分比 所得的數值來確定圖片的起始位置。
  • 數值: X軸方向:x px ; Y軸方向:x px

(學習視頻分享:css視頻教程)

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
A级毛片无码久久精品免费| 北条麻妃一区二区三区AV高清| 2021国内精品久久久久精品| AV在线播放日韩亚洲欧| 变态SM无码凌虐视频网站| 国产成 人 黄 色 网 站 小说| 国产女主播喷水视频在线观看| 精品无人乱码高清在线观看| 蜜桃国产乱码精品一区二区三区w 蜜桃国产乱码精品一区二区三区 蜜桃国产精品乱码一区二区三区 蜜桃传媒在线观看免费版7 | 国产成人精品无码专区| 好男人资源在线WWW免费| 久碰人妻人妻人妻人妻人掠| 欧美日韩一区二区三区精品视频| 日韩人妻无码一区2区3区| 香港A级毛片经典免费观看| 亚洲熟妇色XXXXX无码| 99国产精品白浆无码流出| 俄罗斯人和欧洲人的性格差异| 国产免费破外女真实出血视频| 久久久久国色AV免费观看| 欧美亚洲综合另类色妞网| 天天摸夜夜摸夜夜狠狠摸| 亚洲卡5卡6卡7卡2021入口| 2020久久天天躁狠狠躁夜夜| 夫では満足できない人妻| 交换人生俱乐部全文免费阅读| 免费看又黄又爽又猛的视频| 色窝窝亚洲AV网在线观看 | 国产香蕉尹人在线视频你懂的| 久久人人爽人人爽人人片AV东京| 青春草无码精品视频在线观看| 午夜福利1000集无码| 中文乱码精品一区二区三区人妻| 不知火舞和三个小男孩| 国偷自产一区二视频观看| 内射极品少妇一区二区AV| 天天AV天天爽无码中文| 伊人久久大香线蕉AV色婷婷色| 成人免费无码不卡毛片视频| 狠狠色伊人亚洲综合网站野外| 欧美精产国品一二三产品区别 | 人妻少妇精品中文字幕av蜜桃 | 久久99国产精品久久99小说| 人妻少妇精品视中文字幕国语| 亚洲A∨无码一区二区| 97国产精华最好的产品| 国产欧美日韩一区二区三区在线| 男人把大JI巴放进女人有视频| 无码熟妇人妻AV在线影片最多| 中国CHINESE老熟女| 国产精品久久久久精品综合 | 哈昂~哈昂够了太多了男男| 欧美爽到高潮漏水大喷视频| 亚洲AV无码乱码国产精品FC2| AV日日碰狠狠躁久久躁| 河南妇女毛深深的沟WCD| 人妻久久久一区二区三区| 亚洲精品性爱av| 丰满少妇人妻无码| 久久亚洲精品国产精品| 推油少妇久久99久久99久久| 中文字幕无码免费久久9一区9| 国产免费久久精品99久久| 欧美日韩一区二区三区精品视频在线| 亚洲成色WWW久久网站| 大香伊蕉AⅤ在人线国产| 浪荡受NP纯肉公共场合BL男男 | 双乳被一左一右吃着的小说| 中文人妻无码一区二区三区在线| 国产女人乱人伦精品一区二区| 人妻丰满熟妇AⅤ无码区| 亚洲一级 片内射欧美乱强| 国产大片内射1区2区| 欧美日韩国产免费一区二区三区 | 精品无人区无码乱码大片国产| 熟妇高潮精品区一区二区三| 337P粉嫩大胆噜噜噜| 精品卡一卡2卡三卡四卡乱码| 熟妇的滚烫的肉唇翻进翻出| BGMBGMBGM成熟交| 久久婷婷国产剧情内射白浆| 亚洲AV色香蕉一区二区蜜桃小说| 成人亚洲AV网站在线看AAAA| 妺妺窝人体色WWW精品777| 亚洲欧洲日产国码AⅤ| 国产精品成熟老女人视频| 人妻丰满AV无码久久不卡| 再深点灬舒服灬太大了网站| 好男人影视官网在线WWW| 四季AV一区二区三区免费观看| がーるずらっしゅ在线中文| 猫咪WWW免费人成人入口| 亚洲欧美黑人深喉猛交群| 国产欧美久久久精品影院| 少妇┅┅快┅┅用力| B里可以放多少个鸡蛋| 猫咪AV最新永久网址无码| 亚洲欧美偷拍另类A∨| 国产又粗又猛又爽又黄的视频免费黑人了 | 精品少妇av无码美人妻| 亚洲 日韩 欧美 成人 在线观| 国产98在线 | 传媒麻豆| 日本无人区码一二三区别| CHINESEHD国产精品麻豆| 免费无码午夜福利片69| 永久免费AV无码网站国产APP| 精品一区二区三区在线观看视频| 亚洲AV午夜福利精品一区人妖| 国产精品无码一二区免费| 爸的比老公大两倍儿媳妇怎么称呼 | 乖我们在办公室试试| 人人妻人人爽人人澡AV| 97人妻人人做人碰人人爽一| 蜜桃成人无码区免费视频网站| 泳池里强摁做开腿呻吟漫画视频| 久久精品国产亚洲AV无码麻豆| 亚洲国产精品成人网址天堂| 国语对白做受XXXXX在线中国| 性色ΑV一二三天美传媒 | 宝宝才两根手指就疼哭了怎么回事 | 日欧一片内射VA在线影院| 草草影院CCYY国产日本欧美| 人妻无码一区二区视频| 宝贝真乖四人一起NP| 日本成熟…@视频| 宝宝才两根手指就疼哭了怎么回事| 欧美特级特黄AAAAAA在线看| YY8840私人影院的在线| 奇米影视7777狠狠狠狠影视| А√天堂中文最新版在线下载种子| 情人伊人久久综合亚洲| 抱着边走边撞水流了一地的水| 日本JAPANESE醉酒人妻| 出轨 无码 论坛| 天天曰天天躁天天摸孕妇| 国产精品久久国产精品99盘| 玩弄JaPan白嫩少妇HD小说| 国产精品久久久久久麻豆一区 | 色噜噜国产精品视频一区二区| 绯色av蜜臀av少妇无码| 忘忧草在线社区日本WWW| 国产精品天干天干| 亚洲成A人片在线观看无码专区| 精品无码久久久久久久久水蜜桃 | 亚洲AV成人无码精品区| 精品水蜜桃久久久久久久| 一边做一边喷17P| 男人扒开女人下部添高潮的视频| CHINESE新版少妇嫖妓VI| 日韩精品一区二区三区乱码79| 公的大龟慢慢挺进我的体内| 小SAO货水好多真紧H无码视频| 禁欲少校大哥的囚禁| 一本加勒比HEZYO无码人妻| 男人用嘴添女人下身免费视频| 八戒八戒看片在线WWW看| 涩爱AV挺进少妇张开双暴躁| 国产强奷在线播放| 亚洲色精品VR一区二区三区| 蜜桃视频一区二区三区在线观看| YYYY11111少妇无码影院| 双乳被一左一右的吸着| 激情综合亚洲色婷婷五月APP | 性孕交大肚子孕妇| 久久99国产精品二区| 99久久国语露脸精品国产色| 日韩无码av一区二区| 国产三级精品三级男人的天堂| 亚洲熟妇A∨日韩熟妇在线| 女生输了给对方玩一个月| 动漫人物插画动漫人物的视频| 亚洲AV一宅男色影视| 蜜桃AV噜噜一区二区三区| 成人无码区免费AⅤ片在线观看| 午夜无码视频在线观看网站| 久久精品国产国产精品四凭| AV人摸人人人澡人人超碰下载 | 中文精品一卡2卡3卡4卡| 日老太太毛茸茸B.内射| 国产又粗又湿又刺激18禁| 在线天堂网WWW天堂在线| 日韩精品人妻系列无码AV东京| 国产又粗又猛又爽又黄的视频免费黑人了| 瑜伽裤国产一区二区三区| 日本又黄又爽又色又刺激的视频| 国产亚洲大尺度无码无码专线| 在线精品免费视频无码的| 日日澡夜夜澡人人高潮| 极品少妇被猛得白浆直流草莓视频| 91精品人妻一区二区三区蜜蜜挑| 偷窥丶偷拍丶妓女丶自由| 久久香蕉国产线看观看手机| 成人免费高清A级毛片| 亚洲国产欧美在线人成APP| 欧美最猛黑人XXXX黑人猛交 | 亚洲AV无码成人黄网站在线观看| 男女后进式猛烈XX00动态图| 国产精品视频一区二区| 2021国内精品久久久久精品K| 无遮挡粉嫩小泬久久久久久软件|