国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

css基礎知識二十:說說對Css預編語言的理解?有哪些區(qū)別?

這篇具有很好參考價值的文章主要介紹了css基礎知識二十:說說對Css預編語言的理解?有哪些區(qū)別?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

css基礎知識二十:說說對Css預編語言的理解?有哪些區(qū)別?,css,rust,前端
一、是什么

Css 作為一門標記性語言,語法相對簡單,對使用者的要求較低,但同時也帶來一些問題

需要書寫大量看似沒有邏輯的代碼,不方便維護及擴展,不利于復用,尤其對于非前端開發(fā)工程師來講,往往會因為缺少 Css 編寫經驗而很難寫出組織良好且易于維護的 Css 代碼

Css預處理器便是針對上述問題的解決方案

預處理語言

擴充了 Css 語言,增加了諸如變量、混合(mixin)、函數等功能,讓 Css 更易維護、方便

本質上,預處理是Css的超集

包含一套自定義的語法及一個解析器,根據這些語法定義自己的樣式規(guī)則,這些規(guī)則最終會通過解析器,編譯生成對應的 Css 文件

二、有哪些

Css預編譯語言在前端里面有三大優(yōu)秀的預編處理器,分別是:

  • sass
  • less
  • stylus

sass

2007 年誕生,最早也是最成熟的 Css預處理器,擁有 Ruby 社區(qū)的支持和 Compass 這一最強大的 Css框架,目前受 LESS 影響,已經進化到了全面兼容 Css 的 Scss

文件后綴名為.sass與scss,可以嚴格按照 sass 的縮進方式省去大括號和分號

less

2009年出現,受SASS的影響較大,但又使用 Css 的語法,讓大部分開發(fā)者和設計師更容易上手,在 Ruby社區(qū)之外支持者遠超過 SASS

其缺點是比起 SASS來,可編程功能不夠,不過優(yōu)點是簡單和兼容 Css,反過來也影響了 SASS演變到了Scss 的時代

stylus

Stylus是一個Css的預處理框架,2010 年產生,來自 Node.js社區(qū),主要用來給 Node 項目進行 Css 預處理支持

所以Stylus 是一種新型語言,可以創(chuàng)建健壯的、動態(tài)的、富有表現力的Css。比較年輕,其本質上做的事情與SASS/LESS等類似

三、區(qū)別

雖然各種預處理器功能強大,但使用最多的,還是以下特性:

  • 變量(variables)
  • 作用域(scope)
  • 代碼混合( mixins)
  • 嵌套(nested rules)
  • 代碼模塊化(Modules)

因此,下面就展開這些方面的區(qū)別

基本使用

less

.box {
  display: block;
}

sass

.box
  display: block

stylus

.box
display: block

嵌套

三者的嵌套語法都是一致的,甚至連引用父級選擇器的標記 & 也相同

區(qū)別只是 Sass 和 Stylus 可以用沒有大括號的方式書寫

less

.a {
  &.b {
    color: red;
  }
}

變量

變量無疑為 Css 增加了一種有效的復用方式,減少了原來在 Css 中無法避免的重復「硬編碼」

less聲明的變量必須以@開頭,后面緊跟變量名和變量值,而且變量名和變量值需要使用冒號:分隔開

@red: #c00;

strong {
  color: @red;
}

sass聲明的變量跟less十分的相似,只是變量名前面使用$開頭

$red: #c00;

strong {
  color: $red;
}

stylus聲明的變量沒有任何的限定,可以使用$開頭,結尾的分號;可有可無,但變量與變量值之間需要使用=

在stylus中我們不建議使用@符號開頭聲明變量

red = #c00

strong
  color: red

作用域

Css 預編譯器把變量賦予作用域,也就是存在生命周期。就像 js一樣,它會先從局部作用域查找變量,依次向上級作用域查找

sass中不存在全局變量

$color: black;
.scoped {
  $bg: blue;
  $color: white;
  color: $color;
  background-color:$bg;
}
.unscoped {
  color:$color;
} 

編譯后

.scoped {
  color:white;/*是白色*/
  background-color:blue;
}
.unscoped {
  color:white;/*白色(無全局變量概念)*/
} 

所以,在sass中最好不要定義相同的變量名

less與stylus的作用域跟javascript十分的相似,首先會查找局部定義的變量,如果沒有找到,會像冒泡一樣,一級一級往下查找,直到根為止

@color: black;
.scoped {
  @bg: blue;
  @color: white;
  color: @color;
  background-color:@bg;
}
.unscoped {
  color:@color;
} 

編譯后:

.scoped {
  color:white;/*白色(調用了局部變量)*/
  background-color:blue;
}
.unscoped {
  color:black;/*黑色(調用了全局變量)*/
} 

混入

混入(mixin)應該說是預處理器最精髓的功能之一了,簡單點來說,Mixins可以將一部分樣式抽出,作為單獨定義的模塊,被很多選擇器重復使用

可以在Mixins中定義變量或者默認參數

在less中,混合的用法是指將定義好的ClassA中引入另一個已經定義的Class,也能夠傳遞參數,參數變量為@聲明

.alert {
  font-weight: 700;
}

.highlight(@color: red) {
  font-size: 1.2em;
  color: @color;
}

.heads-up {
  .alert;
  .highlight(red);
}

編譯后

.alert {
  font-weight: 700;
}
.heads-up {
  font-weight: 700;
  font-size: 1.2em;
  color: red;
}

Sass聲明mixins時需要使用@mixinn,后面緊跟mixin的名,也可以設置參數,參數名為變量$聲明的形式

@mixin large-text {
  font: {
    family: Arial;
    size: 20px;
    weight: bold;
  }
  color: #ff0000;
}

.page-title {
  @include large-text;
  padding: 4px;
  margin-top: 10px;
}

stylus中的混合和前兩款Css預處理器語言的混合略有不同,他可以不使用任何符號,就是直接聲明Mixins名,然后在定義參數和默認值之間用等號(=)來連接

error(borderWidth= 2px) {
  border: borderWidth solid #F00;
  color: #F00;
}
.generic-error {
  padding: 20px;
  margin: 4px;
  error(); /* 調用error mixins */
}
.login-error {
  left: 12px;
  position: absolute;
  top: 20px;
  error(5px); /* 調用error mixins,并將參數$borderWidth的值指定為5px */
} 

代碼模塊化

模塊化就是將Css代碼分成一個個模塊\

scss、less、stylus三者的使用方法都如下所示文章來源地址http://www.zghlxwxcb.cn/news/detail-563662.html

@import './common';
@import './github-markdown';
@import './mixin';
@import './variables';

到了這里,關于css基礎知識二十:說說對Css預編語言的理解?有哪些區(qū)別?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【CSS】CSS選擇器全解指南【CSS基礎知識詳解】

    【CSS】CSS選擇器全解指南【CSS基礎知識詳解】

    ?????個人主頁:@花無缺 歡迎 點贊?? 收藏? 留言?? 加關注?! 本文由 花無缺 原創(chuàng) 本文章收錄于專欄 【CSS】 【CSS專欄】 已發(fā)布文章 ??【CSS基礎認知】 CSS注釋用于解釋代碼,給代碼添加解釋性說明,便于以后代碼的維護和理解 瀏覽器會忽略注釋內的所有內容 CSS注釋

    2024年02月01日
    瀏覽(24)
  • css 基礎知識

    CSS(層疊樣式表)是用于描述網頁中元素樣式和布局的一種標記語言。以下是一些CSS的基礎知識: 選擇器:選擇器用于選擇HTML文檔中的元素,并為其應用樣式。常見的選擇器有標簽選擇器、類選擇器和ID選擇器。 標簽選擇器:使用HTML標簽名作為選擇器,可以選擇所有匹配該

    2024年02月10日
    瀏覽(23)
  • CSS基礎知識,必須掌握?。?!

    CSS基礎知識,必須掌握?。?!

    CSS背景屬性用于定義HTML元素的背景 CSS屬性定義背景效果: background-color - 定義背景顏色 background-image - 定義背景圖片 background-repeat - 是否平鋪,水平平鋪(repeat-x)、垂直平鋪(repeat-y)、不平鋪(no-repeat) background-attachment - 是否固定背景圖片,不隨滾動而發(fā)生位置改變 bac

    2023年04月09日
    瀏覽(29)
  • 關于CSS的基礎知識

    關于CSS的基礎知識

    CSS的基本介紹 css(Cascading style sheets):層疊樣式表 作用:給頁面中的html標簽設置樣式 css標簽寫在style標簽中,style標簽一般寫在head標簽里面,title標簽下面 css常見引入方式 title引入方式一(內嵌式)/title 內嵌式:css寫在style里,作用在當前頁面(小案例) 外聯式:css寫在

    2024年01月19日
    瀏覽(23)
  • CSS——基礎知識及使用

    CSS——基礎知識及使用

    CSS是層疊樣式表 (Cascading Style Sheets)的簡寫. CSS 能夠對網頁中元素位置的排版進行像素級精確控制, 實現美化頁面的效果. 能夠做到頁面的樣式和結構分離。 選擇器 + { 一條/N條聲明 } 選擇器決定針對誰修改 (找誰) 聲明決定修改啥. (干啥) 聲明的屬性是鍵值對. (使用 ; 區(qū)分鍵值對

    2024年02月16日
    瀏覽(22)
  • 【JavaEE】CSS基礎知識

    【JavaEE】CSS基礎知識

    CSS 能夠對網頁中元素位置的排版進行像素級精確控制, 實現美化頁面的效果. 能夠做到頁面的樣式和結構分離;簡單的說就是,沒用CSS之前就相當于原照片,使用CSS之后,照片就相當于被p了,被美顏了。 選擇器 + {一條/N條聲明} 選擇器決定針對誰修改 (找誰) 聲明決定修改啥

    2024年02月02日
    瀏覽(21)
  • CSS的基礎知識講解

    CSS的基礎知識講解

    一般來說我們CSS就是我們對瀏覽器的第二個操作,就是給網頁穿衣服.讓網頁變得更好看. 在CSS中,選擇器用于選擇HTML文檔中的元素,從而將樣式應用于這些元素。選擇器通?;谠氐臉撕灻?、類名、ID、屬性值或父子關系等特征來進行匹配。 標簽選擇器:選擇某個 HTML 標簽

    2024年02月05日
    瀏覽(34)
  • CSS基礎知識點

    CSS基礎知識點

    目錄 ?編輯一、基本語法規(guī)范 二、CSS 選擇器 1、簡單選擇器? (1)標簽選擇器 (2)類選擇器 (3)ID 選擇器 2、復合選擇器 (1)后代選擇器 (2)子選擇器 (3)并集選擇器 三、CSS常用屬性值 1、設置字體家族 2、設置字體大小 3、設置字體的粗細 4、文字傾斜設置 5、文字

    2024年02月11日
    瀏覽(41)
  • css 動畫基礎知識和案例

    ? 想要更好的掌握知識,可以常識將知識教授出來。這就是寫這篇文章的目的。 ? ? animation:創(chuàng)建動畫的意思;其中的屬性有:animation:屬性,執(zhí)行時間 顯示方式 執(zhí)行次數。 ???animation: 執(zhí)行動畫名稱 執(zhí)行時間(50s 代表50s執(zhí)行一個循環(huán)) 執(zhí)行速度(linear 代表勻速) 重復次數

    2024年04月25日
    瀏覽(26)
  • css基礎知識十一:CSS3新增了哪些新特性?

    css基礎知識十一:CSS3新增了哪些新特性?

    一、是什么 css,即層疊樣式表(Cascading Style Sheets)的簡稱,是一種標記語言,由瀏覽器解釋執(zhí)行用來使頁面變得更為美觀 css3是css的最新標準,是向后兼容的,CSS1/2的特性在CSS3 里都是可以使用的 CSS3 也增加了很多新特性,為開發(fā)者帶來了更佳的開發(fā)體驗 從幾個維度列舉一些

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包