vue項(xiàng)目中安裝less依賴的過(guò)程
vue安裝less依賴
一、安裝less依賴
npm install less less-loader --save
二、修改webpack.base.conf.js文件
配置loader加載依賴,讓其支持外部的less,在model中添加
{ ? ? ?test: /\.less$/, ? ? ?loader: 'style-loader!css-loader!less-loader' ?},
注意:如果報(bào)錯(cuò),可能是你安裝的版本過(guò)高
需要卸載再安裝低一點(diǎn)的版本
卸載
npm uninstall less-loader
npm install less-loader@5.0.0 --save npm install less --save
vue中l(wèi)ess知識(shí)點(diǎn)總結(jié)
Less(Leaner Style Sheets 的縮寫(xiě)) 是一門(mén)向后兼容的 CSS 擴(kuò)展語(yǔ)言。這里呈現(xiàn)的是 Less 的官方文檔(中文版),包含了 Less 語(yǔ)言以及利用 JavaScript 開(kāi)發(fā)的用于將 Less 樣式轉(zhuǎn)換成 CSS 樣式的 Less.js 工具。
因?yàn)?Less 和 CSS 非常像,因此很容易學(xué)習(xí)。而且 Less 僅對(duì) CSS 語(yǔ)言增加了少許方便的擴(kuò)展,這就是 Less 如此易學(xué)的原因之一。
安裝
項(xiàng)目中一般我們會(huì)將less安裝為開(kāi)發(fā)依賴
npm i less --save-dev
變量(Variables)
在css的代碼中,我們可以創(chuàng)建變量,在各個(gè)樣式塊中,可以重復(fù)使用該變量。并且變量可以作一些表達(dá)式的操作。
@width: 10px; @height: @width + 10px; #header { ? width: @width; ? height: @height; }
混合(Mixins)
混合(Mixin)是一種將一組屬性從一個(gè)規(guī)則集包含(或混入)到另一個(gè)規(guī)則集的方法。假設(shè)我們定義了一個(gè)類(class)如下:
.red{ ? color: red; ? font-size: 12px }
如果我們希望在其它規(guī)則集中使用這些屬性呢?沒(méi)問(wèn)題,我們只需像下面這樣輸入所需屬性的類(class)名稱即可,如下所示:
.color{ ? .red(); ? color: yellow; }
嵌套(Nesting)
Less 提供了使用嵌套(nesting)代替層疊或與層疊結(jié)合使用的能力。假設(shè)我們有以下 CSS 代碼:
#header { ? color: black; } #header .navigation { ? font-size: 12px; } #header .logo { ? width: 300px; }
用 Less 語(yǔ)言我們可以這樣書(shū)寫(xiě)代碼:
#header { ? color: black; ? .navigation { ? ? font-size: 12px; ? ? p{} ? } ? .logo { ? ? width: 300px; ? } }
清除浮動(dòng)小技巧
.clearfix { ? display: block; ? zoom: 1; ? &:after { ? ? content: " "; ? ? display: block; ? ? font-size: 0; ? ? height: 0; ? ? clear: both; ? ? visibility: hidden; ? } }
規(guī)則嵌套和冒泡
?.component { ? color: red; ? @media (min-width: 768px) { ? ? color: yellow; ? ? @media (min-width: 1280px) { ? ? ? color: blue; ? ? ? @media (min-width: 1400px) { ? ? ? ? color: skyblue; ? ? ? } ? ? } ? } }
運(yùn)算(Operations)
算術(shù)運(yùn)算符 +、-、*、/ 可以對(duì)任何數(shù)字、顏色或變量進(jìn)行運(yùn)算。如果可能的話,算術(shù)運(yùn)算符在加、減或比較之前會(huì)進(jìn)行單位換算。計(jì)算的結(jié)果以最左側(cè)操作數(shù)的單位類型為準(zhǔn)。如果單位換算無(wú)效或失去意義,則忽略單位。無(wú)效的單位換算例如:px 到 cm 或 rad 到 % 的轉(zhuǎn)換。
// 所有操作數(shù)被轉(zhuǎn)換成相同的單位 @conversion-1: 5cm + 10mm; // 結(jié)果是 6cm @conversion-2: 2 - 3cm - 5mm; // 結(jié)果是 -1.5cm // conversion is impossible @incompatible-units: 2 + 5px - 3cm; // 結(jié)果是 4px // example with variables @base: 5%; @filler: @base * 2; // 結(jié)果是 10% @other: @base + @filler; // 結(jié)果是 15%
乘法和除法不作轉(zhuǎn)換。因?yàn)檫@兩種運(yùn)算在大多數(shù)情況下都沒(méi)有意義,一個(gè)長(zhǎng)度乘以一個(gè)長(zhǎng)度就得到一個(gè)區(qū)域,而 CSS 是不支持指定區(qū)域的。Less 將按數(shù)字的原樣進(jìn)行操作,并將為計(jì)算結(jié)果指定明確的單位類型。
@base: 2cm * 3mm; // 結(jié)果是 6cm
你還可以對(duì)顏色進(jìn)行算術(shù)運(yùn)算:
@color: #224488 / 2; //結(jié)果是 #112244 background-color: #112244 + #111; // 結(jié)果是 #223355
calc() 特例
為了與 CSS 保持兼容,calc() 并不對(duì)數(shù)學(xué)表達(dá)式進(jìn)行計(jì)算,但是在嵌套函數(shù)中會(huì)計(jì)算變量和數(shù)學(xué)公式的值。
@var: 50vh/2;? width: calc(50% + (@var - 20px)); ?// 結(jié)果是 calc(50% + (25vh - 20px))
轉(zhuǎn)義(Escaping)
轉(zhuǎn)義(Escaping)允許你使用任意字符串作為屬性或變量值。任何 ~“anything” 或 ~‘anything’ 形式的內(nèi)容都將按原樣輸出,除非 interpolation。
@min768: ~"(min-width: 768px)" .element { ? @media @min768 { ? ? color: red; ? } }
在高版本的less中,允許簡(jiǎn)寫(xiě)
@min768: (min-width: 768px) .element { ? @media @min768 { ? ? color: red; ? } }
在 Less 3.5+ 版本中,許多以前需要“引號(hào)轉(zhuǎn)義”的情況就不再需要了。
函數(shù)(Functions)
Less 內(nèi)置了多種函數(shù)用于轉(zhuǎn)換顏色、處理字符串、算術(shù)運(yùn)算等。這些函數(shù)在Less 函數(shù)手冊(cè)中有詳細(xì)介紹。
函數(shù)的用法非常簡(jiǎn)單。下面這個(gè)例子將介紹如何利用 percentage 函數(shù)將 0.5 轉(zhuǎn)換為 50%,將顏色飽和度增加 5%,以及顏色亮度降低 25% 并且色相值增加 8 等用法:
@base: #f04615; @width: 0.5; .class { ? width: percentage(@width); // returns `50%` ? color: saturate(@base, 5%); ? background-color: spin(lighten(@base, 25%), 8); } //漸變 ? background: -webkit-gradient(linear, left bottom, left top, color-stop(0, blue), color-stop(1, yellow));
命名空間和訪問(wèn)符
有時(shí),出于組織結(jié)構(gòu)或僅僅是為了提供一些封裝的目的,你希望對(duì)混合(mixins)進(jìn)行分組。你可以用 Less 更直觀地實(shí)現(xiàn)這一需求。假設(shè)你希望將一些混合(mixins)和變量置于 #colors 之下,為了以后方便重用或分發(fā):
#colors(){ ? .red{ ? ? color: red; ? } ? .yellow{} } .element{ ? #colors.red(); }
注意:如果不希望它們出現(xiàn)在輸出的 CSS 中,例如 #bundle .tab,請(qǐng)將 () 附加到命名空間(例如 #bundle())后面。
映射
從 Less 3.5 版本開(kāi)始,你還可以將混合(mixins)和規(guī)則集(rulesets)作為一組值的映射(map)使用。
#colors(){ ? color1:red; ? color2:blue;? } .element{ ? color: #colors[color2]; }
作用域(Scope)
Less 中的作用域與 CSS 中的作用域非常類似。首先在本地查找變量和混合(mixins),如果找不到,則從“父”級(jí)作用域繼承。
@var: red; #page { ? @var: white; ? #header { ? ? color: @var; // white ? } }
與 CSS 自定義屬性一樣,混合(mixin)和變量的定義不必在引用之前事先定義。因此,下面的 Less 代碼示例和上面的代碼示例是相同的:
@var: red; #page { ? #header { ? ? color: @var; // white ? } ? @var: white; }
注釋
塊注釋和行注釋都可以使用:
/* 一個(gè)塊注釋 ?* style comment! */ // 這一行被注釋掉了!
導(dǎo)入
“導(dǎo)入”的工作方式和你預(yù)期的一樣。你可以導(dǎo)入一個(gè) .less 文件,此文件中的所有變量就可以全部使用了。如果導(dǎo)入的文件是 .less 擴(kuò)展名,則可以將擴(kuò)展名省略掉:
@import "library"; // library.less @import "typo.css";
scss和stylus
dart-sass與node-sass
- node-sass 是用 node(調(diào)用 cpp 編寫(xiě)的 libsass)來(lái)編譯 sass;
- dart-sass 是用 drat VM 來(lái)編譯 sass;
- 后綴名可以為sass/scss
更推薦選擇使用dart-sass,sass官方已經(jīng)將dart-sass作為未來(lái)主要的開(kāi)發(fā)方向,有任何新功能它都是會(huì)優(yōu)先支持的,而且它已經(jīng)在社區(qū)里穩(wěn)定運(yùn)行了很長(zhǎng)的一段時(shí)間,而且安裝更方便!
變量的表示
- sass $var
- less @var
- stylus var=值 or $var
變量的賦值
- sass, $var: value,
- less: @var: value
- stylus: var=10
縮進(jìn)的問(wèn)題
- sass, less均不需要縮進(jìn), 縮進(jìn)無(wú)關(guān)
- stylus也可以不用縮進(jìn), 使用默認(rèn)的css花括號(hào)
if條件判斷的問(wèn)題
- sass的if和stylus的if很早引入了
- 但是less沒(méi)有if
- 都能支持嵌套
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue登錄頁(yè)面設(shè)置驗(yàn)證碼input框的方法
這篇文章主要為大家詳細(xì)介紹了vue登錄頁(yè)面設(shè)置驗(yàn)證碼input框的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Antd的Table組件嵌套Table以及選擇框聯(lián)動(dòng)操作
這篇文章主要介紹了Antd的Table組件嵌套Table以及選擇框聯(lián)動(dòng)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10vue中el-table實(shí)現(xiàn)無(wú)限向下滾動(dòng)懶加載數(shù)據(jù)
一次性的加載全部的數(shù)據(jù),并且將其渲染到頁(yè)面上,就會(huì)導(dǎo)致頁(yè)面卡頓,往往采用分頁(yè)和無(wú)限滾動(dòng)的方式來(lái)展示,本文主要介紹了vue中el-table實(shí)現(xiàn)無(wú)限向下滾動(dòng)懶加載數(shù)據(jù),感興趣的可以了解一下2023-12-12vscode中開(kāi)發(fā)運(yùn)行uniapp項(xiàng)目詳細(xì)步驟
VSCode作為一個(gè)非常強(qiáng)大的代碼編輯器,可以集成眾多的插件和工具來(lái)優(yōu)化開(kāi)發(fā)效率,這篇文章主要給大家介紹了關(guān)于vscode中開(kāi)發(fā)運(yùn)行uniapp項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2023-07-07