中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編寫CSS Less框架

發布時間:2021-09-30 13:59:06 來源:億速云 閱讀:92 作者:iii 欄目:web開發

本篇內容主要講解“如何編寫CSS Less框架”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何編寫CSS Less框架”吧!

LESS 源文件的引入方式與標準CSS文件的引入方式一樣:

代碼如下:

<link rel="stylesheet/less" type="text/css" href="styles.less">

在我們需要引入 LESS 源文件的 HTML 中加入如下代碼:

代碼如下:

<script src="less.js" type="text/javascript"></script>

導入文件:

代碼如下:

@import “variables.less”;
@import “variables.css”;
/*也可以將標準的 CSS 文件直接改成 .less 格式*/

變量與作用域

代碼如下:

/*用變量管理值*/
@width : 20px; //全局變量
#homeDiv {
   #centerDiv{
      width : @width; // 此處應該取最近定義的變量 width 的值 30px
   }
   @width : 30px; //局部變量,變量和混合是延遲加載的,不一定要在使用前聲明
}
#leftDiv {
    width : @width; // 此處應該取最上面定義的變量 width 的值 20px
}</p> <p>/*用變量管理選擇器名稱、URLs、屬性*/
@mySelector: banner; // 定義一個變量用于選擇器名稱
@images: "../img"; // 變量可以是字符串
@property: color; // 定義一個變量用于屬性名稱
.@{mySelector} {  //選擇器名稱使用變量的用法
   background: url("@{images}/white-sand.png");  //URLs使用變量的用法
   @{property}: #0ee;
   &hellip;&hellip;  //其它常規屬性等
}</p> <p>/*編譯生成的CSS文件*/
.banner {
   background: url("../img/white-sand.png");
   color: #0ee;
   &hellip;&hellip;
}

變量可以嵌套定義與使用

代碼如下:

@fnord:  "I am fnord.";
@var:    "fnord";
content: @@var;//嵌套使用
content: "I am fnord."; //編譯后結果
/*當一個變量定義兩次時,只會使用最后定義的變量,Less會從當前作用域中向上搜索。*/

數值,顏色和變量可運算

代碼如下:

@init: #111111;
@transition: @init*2;
@var: 1px + 5 // Less能夠判斷顏色和單位之間的區別
.switchColor {
    color: @transition;
}
/*編譯生成的CSS文件*/
.switchColor {
     color: #222222;
}

混合(Mixins)與函數

代碼如下:

.roundedCorners(@radius:5px) { //定義參數并且給予默認值
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
    border-radius: @radius;
}</p> <p> // 在另外的樣式選擇器中使用
#header {
    .roundedCorners; //使用類并且參數為默認值
}</p> <p> #footer {
    .roundedCorners(10px); //自定義參數值
}</p> <p>.bordered {
   border-top: dotted 1px black;
   border-bottom: solid 2px black;
}</p> <p>#menu a {
   color: #111;
   .bordered;
   /*在另一個規則集內部使用上面類的屬性,則直接訪問屬性所在類名(或Id名)即可*/
}

@arguments變量:當 Mixins 引用這個參數時,該參數表示所有的變量(多參數)。

代碼如下:

.boxShadow(@x:0,@y:0,@blur:1px,@color:#000){
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
  box-shadow: @arguments;
}
#header {
  .boxShadow(2px,2px,3px,#f36);
}

命名空間:

代碼如下:

#mynamespace {
  .home {...}
  .user {...}
}
//如果我們要復用 user 這個選擇器的時候,我們只需要在需要混入這個選擇器的地方這樣使用就可以了。#mynamespace > .user

嵌套規則:

代碼如下:

<!-- HTML片段-->
<div id="home">
  <div id="top">top</div>
 </div>

代碼如下:

/*使用嵌套規則的LESS 文件*/
#home{
  color : blue;
  width : 600px;
  height : 500px;
  border:outset;
  #top{
       border:outset;
       width : 90%;
  }
}
/*編譯生成的CSS文件*/
#home {
 color: blue;
 width: 600px;
 height: 500px;
 border: outset;
}
#home #top {
 border: outset;
 width: 90%;
}
a {
  color: red;
  text-decoration: none;
  &:hover {
    /*有 & 時解析的是同一個元素或此元素的偽類,沒有 & 解析是后代元素,&表示當前選擇器的父選擇器*/
     color: black;
     text-decoration: underline;
  }
}
/*編譯生成的CSS文件*/
a {
  color: red;
  text-decoration: none;
}
  a:hover {
  color: black;
  text-decoration: underline;
}

Extend:

extend是一個Less偽類,為擴展選擇器;擴展選擇器必須在所有偽類的最后

代碼如下:

nav ul:extend(.inline)
   background: blue;
}
.inline {
   color: red;
}</p> <p>/*編譯生成的CSS文件*/
nav ul {   // 聲明塊保持原樣
   background: blue;
}</p> <p>.inline,nav ul {
   color: red;
}</p> <p>pre:hover , .some-class {
   &:extend(div pre);
}</p> <p>/*以上與給每個選擇器添加一個extend完全相同*/
pre:hover:extend(div pre),
.some-class:extend(div pre) {}

從本質上講extend會查找編譯后的CSS,而不是原始的less

代碼如下:

.bucket {
 tr & { // 目標選擇器中的嵌套,&代表最近父元素
   color: blue;
 }
}
.some-class:extend(tr .bucket) {} // 識別嵌套規則
/*編譯生成的CSS文件*/
tr .bucket , .some-class {
 color: blue;
}

 extend必須是精確匹配(包括通配符*、偽類順序、nth表達式,唯一例外的是屬性選擇器中的引號,less會知道它們是相同的,然后匹配它)

代碼如下:

.a.class,
.class.a,
.class > .a {
 color: blue;
}
.test:extend(.class) {} // 不會匹配上面的任何選擇器的值
*.class {
 color: blue;
}
.noStar:extend(.class) {} //不會匹配*.class選擇器
link:hover:visited {
 color: blue;
}
.selector:extend(link:visited:hover) {} //不會匹配,偽類順序不同
:nth-child(1n+3) {
 color: blue;
}
.child:extend(n+3) {}  //不會匹配,盡管邏輯上1n+3與n+3是相同的

到此,相信大家對“如何編寫CSS Less框架”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永济市| 佛学| 姚安县| 娱乐| 静宁县| 雷山县| 宝应县| 子长县| 佛学| 晋江市| 绥中县| 荣昌县| 喜德县| 银川市| 额尔古纳市| 临澧县| 万荣县| 沧州市| 柳林县| 图片| 丰宁| 弥勒县| 麟游县| 韶关市| 永吉县| 桦甸市| 米脂县| 济源市| 介休市| 垫江县| 泾源县| 建宁县| 马边| 吉林市| 汉川市| 海原县| 东丰县| 西贡区| 禹州市| 渭源县| 疏附县|