值得參考的10個LESS CSS例項
LESS, Sass 和其他 CSS 前處理器是一種超棒的方法用來擴充套件 CSS 功能,使之更適合程式設計師。你可以使用變數、函式、混合、繼承等多種程式設計常用方法來編寫 CSS,以更少的程式碼完成更多的樣式。
學習這些工具最好的方法是通過各種例項快速入門,今天我們向你介紹 10 個非常有用的使用 Less CSS 的例項。
使用 LESS
如果你還沒接觸過 LESS CSS ,可以閱讀下面兩篇文章:
我該如何使用這些例項
我建議是你直接可以把本文中的程式碼複製貼上到你的 .less 檔案。
可以讓你這些檔案獨立於你的專案,通過 “@import “starter.less” 來引入。
你還可以使用類似 Less.app, CodeKit 這樣的工具來將 LESS 編譯成 CSS 。
如果我使用的是 Sass
如果你更喜歡的是 Sass 而不是 LESS,沒問題,這兩個工具都很棒,它們的語法有一點不同,請看上圖。兩者更詳細的比較請看這裡。
好了,不廢話了,我們開始本文的主題!
圓角
CSS3 一個非常基本的新屬性可以快速的生產圓角效果,如上圖所示。要使用 CSS3 的圓角效果我們必須針對不同的瀏覽器定義各自的字首,而如果使用了 LESS 就可以不用那麼麻煩。
1. 簡單的圓角半徑
我的第一個 LESS 程式碼是我最簡單的 LESS 程式碼之一,我需要設定圓角的半徑,而且我希望使用一個變數來調整這個半徑大小。
下面程式碼使用 mixin 技術,通過定義 .border-radius 並接收一個 radius 引數,該引數預設值是 5px,你可以在多個地方重複使用該 mixin 方法:
/* Mixin */ .border-radius (@radius: 5px) { -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; } /* Implementation */ #somediv { .border-radius(20px); }
將這個 less 編譯成 css 後的結果是:
/* Compiled CSS */ #somediv { -webkit-border-radius: 20px; -moz-border-radius: 20px; border-radius: 20px; }
2. 四角的半徑定製
如果你希望使用者可自由定製四個角的半徑,那麼我們需要對上面程式碼做下改進。
使用4個變數分別代表四個邊角的半徑大小:
/* Mixin */ .border-radius-custom (@topleft: 5px, @topright: 5px, @bottomleft: 5px, @bottomright: 5px) { -webkit-border-radius: @topleft @topright @bottomright @bottomleft; -moz-border-radius: @topleft @topright @bottomright @bottomleft; border-radius: @topleft @topright @bottomright @bottomleft; } /* Implementation */ #somediv { .border-radius-custom(20px, 20px, 0px, 0px); }
編譯後的 CSS
/* Compiled CSS */ #somediv { -webkit-border-radius: 20px 20px 0px 0px; -moz-border-radius: 20px 20px 0px 0px; border-radius: 20px 20px 0px 0px; }
3. 方塊陰影 Box Shadow
另外一個 CSS3 經常用到的屬性是 box-shadow,該屬性也有不同瀏覽器的字首要求,而使用 LESS 的話可以這樣:
/* Mixin */ .box-shadow (@x: 0px, @y: 3px, @blur: 5px, @alpha: 0.5) { -webkit-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha); -moz-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha); box-shadow: @x @y @blur rgba(0, 0, 0, @alpha); } /* Implementation */ #somediv { .box-shadow(5px, 5px, 6px, 0.3); }
生成的 CSS:
/* Compiled CSS */ #somediv { -webkit-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3); -moz-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3); box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3); }
4. 元素過渡效果 Transition
CSS3 的過渡使用起來更加麻煩,你必須最大化的支援各種瀏覽器,因此你需要定義 5 個字首:
/* Mixin */ .transition (@prop: all, @time: 1s, @ease: linear) { -webkit-transition: @prop @time @ease; -moz-transition: @prop @time @ease; -o-transition: @prop @time @ease; -ms-transition: @prop @time @ease; transition: @prop @time @ease; } /* Implementation */ #somediv { .transition(all, 0.5s, ease-in); } #somediv:hover { opacity: 0; }
轉換後的 CSS 程式碼:
/* Compiled CSS*/ #somediv { -webkit-transition: all 0.5s ease-in; -moz-transition: all 0.5s ease-in; -o-transition: all 0.5s ease-in; -ms-transition: all 0.5s ease-in; transition: all 0.5s ease-in; } #somediv:hover { opacity: 0; }
5. 轉換/旋轉 Transform
你可以使用 CSS3 來對元素進行角度旋轉、縮放和傾斜等效果:
/* Mixin */ .transform (@rotate: 90deg, @scale: 1, @skew: 1deg, @translate: 10px) { -webkit-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate); -moz-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate); -o-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate); -ms-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate); transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate); } /* Implementation */ #someDiv { .transform(5deg, 0.5, 1deg, 0px); }
生成的 CSS:
/* Compiled CSS*/ #someDiv { -webkit-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px); -moz-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px); -o-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px); -ms-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px); transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px); }
顏色漸變 Gradients
漸變是 CSS3 最複雜的屬性之一,有上百萬中不同的設定組合,但我們常用的無非幾種。
6. 線性漸變 Linear Gradient
我們還是從最簡單的開始,實現兩個不同顏色之間的漸變,你可以定義開始顏色和最終顏色,這裡我們使用最新的漸變語法,瀏覽器的支援情況請看這裡。
/* Mixin */ .gradient (@origin: left, @start: #ffffff, @stop: #000000) { background-color: @start; background-image: -webkit-linear-gradient(@origin, @start, @stop); background-image: -moz-linear-gradient(@origin, @start, @stop); background-image: -o-linear-gradient(@origin, @start, @stop); background-image: -ms-linear-gradient(@origin, @start, @stop); background-image: linear-gradient(@origin, @start, @stop); } /* Implementation */ #someDiv { .gradient(left, #663333, #333333); }
生成的 CSS
/* Compiled CSS */ #someDiv { background-color: #663333; background-image: -webkit-linear-gradient(left, #663333, #333333); background-image: -moz-linear-gradient(left, #663333, #333333); background-image: -o-linear-gradient(left, #663333, #333333); background-image: -ms-linear-gradient(left, #663333, #333333); background-image: linear-gradient(left, #663333, #333333); }
7. 快速漸變 Quick Gradient
建立漸變最討厭的事情之一就是找出你的顏色。有時你只是想快速在現有顏色上做一些漸變效果。
這裡我們使用從透明開始到全黑的漸變效果,你需要設定的就是最初顏色已經透明度 alpha 值:
/* Mixin */ .quick-gradient (@origin: left, @alpha: 0.2) { background-image: -webkit-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha)); background-image: -moz-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha)); background-image: -o-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha)); background-image: -ms-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha)); background-image: linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,@alpha)); } /* Implementation */ #somediv { background-color: BADA55; .quick-gradient(top, 0.2); }
生成的 CSS:
/* Compiled CSS */ #somediv { background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)); background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)); background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)); background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)); background-image: linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)); }
8. 映象效果 Webkit Reflection
CSS3 中的映象效果在瀏覽器都是普遍支援的。你需要做的就是設定長度和不透明度這兩個引數,很簡單:
/* Mixin */ .reflect (@length: 50%, @opacity: 0.2){ -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(@length, transparent), to(rgba(255,255,255,@opacity))); } /* Implementation */ #somediv { .reflect(20%, 0.2); }
生成的 CSS:
/* Compiled CSS */ #somediv { -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(20%, transparent), to(rgba(255, 255, 255, 0.2))); }
顏色計算 Color Math
LESS 和 Sass 最獨特的功能就是顏色計算函式,你可以輕鬆使用 LESS 來建立各種調色盤,下面是兩個簡單的例子。
9. 互補色方案 Complementary Color Scheme
這裡我們使用一個基本色,然後通過彩色旋轉以及加亮和變暗方法擴充套件到5個不同色板。為了生成互補色,我們使用 spin 將顏色旋轉 180 度:
/* Mixin */ @base: #663333; @complement1: spin(@base, 180); @complement2: darken(spin(@base, 180), 5%); @lighten1: lighten(@base, 15%); @lighten2: lighten(@base, 30%); /* Implementation */ .one {color: @base;} .two {color: @complement1;} .three {color: @complement2;} .four {color: @lighten1;} .five {color: @lighten2;}
生成的 CSS:
/* Compiled CSS */ .one {color: #663333;} .two {color: #336666;} .three {color: #2b5555;} .four {color: #994d4d;} .five {color: #bb7777;}
10. 顏色微調 Subtle Color Scheme
互補色很有用,但在網頁設計中另外一個更有用的就是顏色微調:
/* Mixin */ @base: #663333; @lighter1: lighten(spin(@base, 5), 10%); @lighter2: lighten(spin(@base, 10), 20%); @darker1: darken(spin(@base, -5), 10%); @darker2: darken(spin(@base, -10), 20%); /* Implementation */ .one {color: @base;} .two {color: @lighter1;} .three {color: @lighter2;} .four {color: @darker1;} .five {color: @darker2;}
生成的 CSS:
/* Compiled CSS */ .one {color: #663333;} .two {color: #884a44;} .three {color: #aa6355;} .four {color: #442225;} .five {color: #442225;}
結論
到這裡我們這篇文章就結束了,主要的目的是講述使用 LESS 處理一些常用的 CSS3 處理效果。
英文來源:10-less-css-examples-you-should-steal-for-your-projects
相關文章
- React入門例項參考阮一峰部落格React
- 單例項Primary快速搭建Standby RAC參考手冊(19.16 ADG)單例
- 好程式設計師web前端分享值得參考的css理論:OOCSS、SMACSS與BEM程式設計師Web前端CSSMac
- 自動化測試:六個值得參考的 Laravel 開源專案Laravel
- matlab模糊控制工具箱使用和模糊控制pid例項參考Matlab
- 20200116 - HTML 和 CSS 參考手冊HTMLCSS
- js日常參考(常見事項)JS
- css梯形程式碼例項CSS
- css麵包屑例項CSS
- 45個值得收藏的 CSS 形狀CSS
- CSS匹配第一個li元素程式碼例項CSS
- CSS 例項之文字的凸起與凹陷CSS
- css選擇器,帶例項CSS
- CSS 選擇器 - 帶例項CSS
- CSS學習摘要-定位例項CSS
- css例項整理-練習大全CSS
- css進階less的使用CSS
- 純css tab選項卡程式碼例項CSS
- 阿里雲ECS,突發效能例項t5購買參考和使用建議阿里
- 【譯】45個值得收藏的 CSS 形狀CSS
- CSS 例項之滾動的圖片欄CSS
- CSS例項詳解:Flex佈局CSSFlex
- CSS 例項之開啟大門CSS
- CSS空心箭頭程式碼例項CSS
- CSS橢圓效果程式碼例項CSS
- CSS條紋背景程式碼例項CSS
- CSS 例項之翻轉圖片CSS
- CSS 隔行變色程式碼例項CSS
- CSS 例項系列 - 02 - 2023 兔年祝福CSS
- 最值得參考的 Kubernetes (K8S)安裝文件在這裡K8S
- 如何區分例項化網格中的每個例項
- 純CSS的導航欄Tab切換例項CSS
- vscode的gulp-less自動把less編譯成cssVSCode編譯CSS
- 用於建立連線的命令選項(參考MySQL官方文件)MySql
- TIDB 考試 參考TiDB
- CSS-Flex 佈局教程:例項篇CSSFlex
- CSS3卡通形象程式碼例項CSSS3
- css3水滴效果程式碼例項CSSS3
- css背景虛化效果程式碼例項CSS