關(guān)于CSS預(yù)處理器less的使用(未完待續(xù))
簡單明了,直接上教程:
下面我們先大體了解些我接下來講的less的功能特性:
屬性
嵌套
混合方法
繼承
導(dǎo)入
函數(shù)
其他
1、屬性
(1)、值變量
@dividerColor:#000;
div{
background: @dividerColor;
}
(2)、選擇器變量
@footer: .footer;
@{footer}{
}
(3)、屬性變量
@color:color;
div{
@{color}:#000;
}
(4)、url 變量
@images:'../images' ;
div{
background:url('@{images}/img.png');
}
(5)、聲明變量
結(jié)構(gòu): @name: { 屬性: 值 ;};
使用:@name();
@background: {background:red;};
#main{
@background();
}
(6)、變量運算
@width:300px;
@color:#222;
div{
width:@width-20;
height:@width-20*5;
margin:(@width-20)*5;
color:@color*2;
background-color:@color + #111;
}
(7) 、變量作用域
就近原則
@var: @a;
@a: 100%;
#wrap {
width: @var;
@a: 9%;
}
(8) 、用變量去定義變量
@fnord: "I am fnord.";
@var: "fnord";
#wrap::after{
content: @@var; //將@var替換為其值 content:@fnord;
}
嵌套
(1)、& 的妙用
& :代表的上一層選擇器的名字,此例便是header。
.big{
.small{
&:after{
color:red;
}
&_small{
color:green;
}
}
}
(2) 媒體查詢
div{
@media scress{
@media (max-width:768px){
width:100px;
}
@media tv{
width:200px;
}
}
}
唯一的缺點就是 每一個元素都會編譯出自己 @media 聲明,并不會合并。
混合方法
(1)、無參數(shù)方法
.card {
background: #f6f6f6;
-webkit-box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
}
#wrap{
.card();
}
(2)、默認(rèn)參數(shù)方法
.border(@a:10px,@b:50px,@c:30px,@color:#000){
border:solid 1px @color;
box-shadow: @arguments;//指代的是 全部參數(shù)
}
#main{
.border(0px,5px,30px,red);//必須帶著單位
}
(3)、方法中的匹配模式
#main{
.csser(left,50px,#999);
}
.csser(top,@width:20px,@color:#000){
border-color:transparent transparent @color transparent;
}
(4) 、方法的命名空間
#card(){
background: #723232;
.d(@w:300px){
width: @w;
#a(@h:300px){
height: @h;//可以使用上一層傳進來的方法
width: @w;
}
}
}
#wrap{
#card > .d > #a(100px); // 父元素不能加 括號
}
#main{
#card .d();
}
#con{
//不得單獨使用命名空間的方法
//.d() 如果前面沒有引入命名空間 #card ,將會報錯
#card; // 等價于 #card();
.d(20px); //必須先引入 #card
}
在 CSS 中> 選擇器,選擇的是 兒子元素,就是 必須與父元素 有直接血源的元素。
在引入命令空間時,如使用 > 選擇器,父元素不能加 括號。
不得單獨使用命名空間的方法 必須先引入命名空間,才能使用 其中方法。
子方法 可以使用上一層傳進來的方法
(5)、方法的條件篩選
#card{
// and 運算符 ,相當(dāng)于 與運算 &&,必須條件全部符合才會執(zhí)行
.border(@width,@color,@style) when (@width>100px) and(@color=#999){
border:@style @color @width;
}
// not 運算符,相當(dāng)于 非運算 !,條件為 不符合才會執(zhí)行
.background(@color) when not (@color>=#222){
background:@color;
}
// , 逗號分隔符:相當(dāng)于 或運算 ||,只要有一個符合條件就會執(zhí)行
.font(@size:20px) when (@size>50px) , (@size<100px){
font-size: @size;
}
}
#main{
#card>.border(200px,#999,solid);
#card .background(#111);
#card > .font(40px);
}
比較運算有: > >= = =< <。
= 代表的是等于
除去關(guān)鍵字 true 以外的值都被視為 false:
(6)、數(shù)量不定的參數(shù)
.boxShadow(...){
box-shadow: @arguments;
}
.textShadow(@a,...){
text-shadow: @arguments;
}
#main{
.boxShadow(1px,4px,30px,red);
.textShadow(1px,4px,30px,red);
}
(7)、方法使用important!
.border{
border: solid 1px red;
margin: 50px;
}
#main{
.border() !important;
}
作者:Vam的金豆之路
主要領(lǐng)域:前端開發(fā)
我的微信:maomin9761
微信公眾號:前端歷劫之路