Less 是一個 CSS 預(yù)處理器,讓 CSS 具有動態(tài)性。
另一方面,Bootstrap 是一個快速開發(fā) Web App 和站點的工具包。
在本教程中,我們將討論了有關(guān)使用帶有 Less CSS 的 Bootstrap 知識。這樣,您可以在 CSS 中使用 Bootstrap 的 Less 變量、混合(mixins)和嵌套( nesting)。
Bootstrap 官網(wǎng):http://getbootstrap.com/
Less 官網(wǎng):http://lesscss.org/
下載 Bootstrap,解壓縮文件。Bootstrap 的 Less 組件位于 'lib' 目錄下。自 Bootstrap v1.4.0 版本起,就包含有九個 less 文件。下面我們一起來看看這九個文件分別包含什么。
這是主要的 Less 文件。該文件中導(dǎo)入了一些其他的 less 文件。該文件中沒有任何代碼。
這個 Less 文件包含了表單布局、輸入框類型的樣式。
這個 Less 文件讓 CSS 代碼可重復(fù)使用。
這個 Less 文件包含了重復(fù)的用戶界面元素的 CSS 代碼,不會被位于 scaffolding Less 文件中的基本樣式覆蓋。
這個 Less 文件包含了 CSS 重置。這是 Eric Meyer 的 CSS 重置的一個更新。一些 HTML 元素比如 dfn、samp 等的重置被免除。
這個 Less 文件保存了創(chuàng)建網(wǎng)格系統(tǒng)、結(jié)構(gòu)化布局、頁面模板所需的基本樣式。
這個 Less 文件包含了創(chuàng)建表格的樣式。
這個 Less 文件下可找到排版相關(guān)的樣式。標(biāo)題、段落、列表、代碼等的樣式位于這個文件里邊。
這個 Less 文件包含了要定制 Bootstrap 外觀和感觀的變量。
如果要使用它,請在您的 HTML 頁面包含下面代碼:
請注意,less-1.1.5.min.js 不在 js 文件夾內(nèi),您需要下載并把它放置在指定的文件夾下。
@linkColor | #08c | 默認(rèn)的鏈接顏色 | |
@linkColorHover | darken(@linkColor, 15%) | 默認(rèn)懸停時的鏈接顏色 |
@black | #000 | |
@grayDarker | #222 | |
@grayDark | #333 | |
@gray | #555 | |
@grayLight | #999 | |
@grayLighter | #eee | |
@white | #fff |
@blue | #049cdb | |
@green | #46a546 | |
@red | #9d261d | |
@yellow | #ffc40d | |
@orange | #f89406 | |
@pink | #c3325f | |
@purple | #7a43b6 |
@primaryButtonBackground | @linkColor |
@placeholderText | @grayLight |
@navbarHeight | 40px | |
@navbarBackground | @grayDarker | |
@navbarBackgroundHighlight | @grayDark | |
@navbarText | @grayLight | |
@navbarLinkColor | @grayLight | |
@navbarLinkColorHover | @white |
@warningText | #c09853 | |
@warningBackground | #f3edd2 | |
@errorText | #b94a48 | |
@errorBackground | #f2dede | |
@successText | #468847 | |
@successBackground | #dff0d8 | |
@infoText | #3a87ad | |
@infoBackground | #d9edf7 |
基本的混合從本質(zhì)上來說,就是包括整個或是部分代碼片段。寫法類似一個CSS類,可以隨處調(diào)用。
.element { .clearfix(); }
帶參數(shù)的混合和基本混合很像,不同之處是前者可以接收參數(shù)(根據(jù)名稱),參數(shù)可以有默認(rèn)值。
.element { .border-radius(4px); }
基本上Bootstrap所有的混合都保存在mixins.less, 這是一個出色的工具類.less文件,我們可以在任何一個.less文件中使用其中的混合。
因此,直接使用已有的混合或是自定義一個新混合皆可。
混合 | 參數(shù) | 用法 |
---|---|---|
.clearfix() | 無 | 清除浮動 |
.tab-focus() | 無 | 添加類似Webkit獲得焦點的風(fēng)格和類似Firefox的的外包線 |
.center-block() | 無 | 使用margin: auto 把塊級元素自動居中 |
.ie7-inline-block() | 無 | 添加規(guī)則的 display: inline-block 以支持IE7 |
.size() | @height: 5px, @width: 5px | 快速設(shè)置行高和行寬 |
.square() | @size: 5px | 基于.size() 設(shè)置正方形區(qū)域 |
.opacity() | @opacity: 100 | 設(shè)置透明度的百分比 (比如 "50" 或 "75") |
混合 | 參數(shù) | 用法 |
---|---|---|
.placeholder() | @color: @placeholderText | 設(shè)置輸入框中 placeholder 的字體顏色 |
混合 | 參數(shù) | 用法 |
---|---|---|
#font > #family > .serif() | 無 | 對某個元素應(yīng)用一系列serif襯線字體 |
#font > #family > .sans-serif() | 無 | 對某個元素應(yīng)用一系列sans-serif字體 |
#font > #family > .monospace() | 無 | 對某個元素應(yīng)用一系列monospace字體 |
#font > .shorthand() | @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight | 方便設(shè)置字體大小,粗細(xì)和行間距 |
#font > .serif() | @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight | 設(shè)置襯線字體族serif,字體大小,粗細(xì)和行間距 |
#font > .sans-serif() | @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight | 設(shè)置sans-serif字體族,字體大小,粗細(xì)和行間距 |
#font > .monospace() | @size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight | 設(shè)置monospace字體族,字體大小,粗細(xì)和行間距 |
混合 | 參數(shù) | 用法 |
---|---|---|
.container-fixed() | 無 | 創(chuàng)建一個水平居中的容器,用以容納內(nèi)容 |
#grid > .core() | @gridColumnWidth, @gridGutterWidth | 使用 n 列和 x 像素間距寬度,生成一個象素柵格系統(tǒng)(容器,行,列) |
#grid > .fluid() | @fluidGridColumnWidth, @fluidGridGutterWidth | 使用 n 列和 x % 間距寬度,生成一個百分比柵格系統(tǒng) |
混合 | 參數(shù) | 用法 |
---|---|---|
.border-radius() | @radius: 5px | 元素圓角化,可以是一個單獨的值,也可以分別是四個角的值 |
.box-shadow() | @shadow: 0 1px 3px rgba(0,0,0,.25) | 對元素應(yīng)用陰影 |
.transition() | @transition | 添加CSS3過渡效果(比如, all .2s linear ) |
.rotate() | @degrees | 旋轉(zhuǎn)一個元素 n 度 |
.scale() | @ratio | 對一個元素縮放原有大小的 n 倍 |
.translate() | @x: 0, @y: 0 | 在平面上移動x和y個像素 |
.background-clip() | @clip | 裁剪一個元素的背景 (用于 border-radius ) |
.background-size() | @size | 通過CSS3更改背景圖片的大小 |
.box-sizing() | @boxmodel | 改變一個元素的盒(box)模型 (比如,用在100%寬度 input 上的 border-box ) |
.user-select() | @select | 更改頁面文本的選擇光標(biāo) |
.resizable() | @direction: both | 改變右下角坐標(biāo)以重置元素大小 |
.content-columns() | @columnCount, @columnGap: @gridColumnGutter | 讓元素中的內(nèi)容使用CSS3的列 |
混合 | 參數(shù) | 用法 |
---|---|---|
#translucent > .background() | @color: @white, @alpha: 1 | 設(shè)置一個元素的背景色和透明度 |
#translucent > .border() | @color: @white, @alpha: 1 | 設(shè)置一個元素的邊框的顏色和透明度 |
#gradient > .vertical() | @startColor, @endColor | 創(chuàng)建一個跨瀏覽器的垂直背景漸變 |
#gradient > .horizontal() | @startColor, @endColor | 創(chuàng)建一個跨瀏覽器的水平背景漸變 |
#gradient > .directional() | @startColor, @endColor, @deg | 創(chuàng)建一個跨瀏覽器的有斜度的背景漸變 |
#gradient > .vertical-three-colors() | @startColor, @midColor, @colorStop, @endColor | 創(chuàng)建一個跨瀏覽器的三色背景漸變 |
#gradient > .radial() | @innerColor, @outerColor | 創(chuàng)建一個跨瀏覽器的放射背景漸變 |
#gradient > .striped() | @color, @angle | 創(chuàng)建一個跨瀏覽器的條紋背景漸變 |
#gradientBar() | @primaryColor, @secondaryColor | 用于給按鈕指定漸變背景和淺暗的邊框 |
運行下列命令,利用npm在全局環(huán)境下安裝LESS命令行編譯器和uglify-js:
$ npm install -g less uglify-js
安裝成功后,在您的Bootstrap的根目錄下運行 make 即可編譯CSS。
此外,如果您已經(jīng)安裝了 watchr ,您可以運行 make watch , 這樣您每次修改Bootstrap后,就會自動重編譯Bootstrap。(不是必須運行,這樣做僅僅是出于方便。)
只需要簡單的引用 less.js 文件(下載最新的 Less.js )并重新加載頁面。
js 文件就會編譯 less。
<link rel="stylesheet/less" href="/path/to/bootstrap.less"> <script src="/path/to/less.js"></script>
如果您已經(jīng)安裝了 Less 命令行(Command Line),原型下面要編譯的命令:
$ lessc ./lib/bootstrap.less > bootstrap.css
如果您想要一個壓縮的編譯,可以使用 --compress 命令。
雖然是非官方的,但是這里有一個可用的 Less Mac 應(yīng)用程序可用于編譯。
更多建議: