基础(二) - 柠檬先生
嵌套-伪类嵌套
伪类嵌套和属性嵌套非常类似,只不过他需要借助“&”符号一起配合使用
例如:sass
.clearfix{
&:before,
&:after {
content:"";
display: table;
}
&:after {
clear:both;
overflow: hidden;
}
}
编译出来的 CSS:
clearfix:before, .clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
overflow: hidden;
}
混合宏-声明混合宏
如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的。
但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目了。
不带参数混合宏:
在 Sass 中,使用“@mixin”来声明一个混合宏。
@mixin border-radius{
-webkit-border-radius: 5px;
border-radius: 5px;
}
复杂的混合宏:
Sass中的混合宏还提供更为复杂的,你可以在括号里写上带有逻辑关系,帮助更好的做你想做的事情。
@mixin box-shadow($shadow...){
@if length($shadow) >= 1{
@include prefixer(box-shadow,$shadow);
}@else{
$shadow:0 0 4px rgba(0,0,.3);
@include prefixer(box-shadow,$shadow);
}
}
这个 box-shadow 的混合宏,带有多个参数,这个时候可以使用“ … ”来替代。简单的解释一下,当 $shadow 的参数数量值大于或
等于“ 1 ”时,表示有多个阴影值,反之调用默认的参数值“ 0 0 4px rgba(0,0,0,.3) ”。
混合宏-调用混合宏
在Sass 中通过@mixin 关键词声明了一个混合宏,那么在实际调用中,在匹配了一个关键词“@include”来调用声明好
的混合宏。
@mixin border-radius{
-webkit-border-radius:3px;
border-radius:3px;
}
在一个按钮中腰调用定义好的混合宏“border-radius”可以这样使用
button{
@include border-radius;
}
编译出来的css
button{
-webkit-border-radius:3px;
border-radius:3px;
}
混合宏的参数-传一个不带值的参数
Sass 的混合宏有一个强大的功能,可以传参,那么在Sass中传参主要有以下几种形式
(A)传一个不带值的参数
在混合和宏中,可以穿个不在任何值的参数 比如:
@mixin border-radius($radius){
-webkit-border-radius:$radius:
border-radius:$radius:
}
在混合宏“border-radius”中定义了一个不带任何值的参数$radius
在调用的时候可以给这个混合宏专递一个数值
.box{
@include border-radius(3px);
}
在这里表示混合宏传递了一个“border-radius”的值为“3px”。
.box{
-webkit-border-radius:3px;
border-radius:3px;
}
混合宏的参数-传个带值的参数
在Sass的混合宏中,还可以给混合宏的参数传递一个默认值,例如:
@mixin border-radius($radius:3px){
-webkit-border-radius:$radius;
border-radius:$radius;
}
混合宏“border-radius”传了一个参数“$radius”,而且给这个参数赋予了一个默认值“3px”。
在调用类似这样的混合宏时,会多有一个机会,假设你的页面中的圆角很多地方都是“3px”的圆角,那么这个时候只
需要调用默认的混合宏“border-radius”:
.btn {
@include border-radius;
}
编译出来的CSS
.btn{
-webkit-border-radius:3px
border-radius:3px
}
但有的时候,页面中有些元素的圆角值不一样,那么可以随机给混合宏传值,如:
.box {
@include border-radius(50%);
}
编译出来的 CSS:
.box {
-webkit-border-radius: 50%;
border-radius: 50%;
}
混合宏的参数-传多个参数
Sass 混合宏除了能传一个参数之外,还可以传多个参数,如:
@mixin center($width,$height){
width:$width;
height:$height;
position:absolute;
top:50%;
left:50%:
margin-top:($height)/2;
margin-left:-($width)/2;
}
在混合宏“center”就传了多个参数。在实际调用其他混合宏是一样的。
.box-center{
@include center(500px,300px);
}
编译出来 css
.box-center{
width:500px;
height:300px;
position:absolute;
top:50%;
left:50%;
margin-top:-150px;
margin-left:-250px;
}
有一个特别的参数“...”,当混合宏穿的参数传的参数过多之时,可以使用参数来代替 如;
@mixin box-shadow($shadows...){
@if length($shadows) >=1{
-webkit-box-shadow:$shadows;
box-shadow:$shadows;
}@else{
$shadows: 0 0 2px rgba(#000,.25);
-webkit-box-shadow:$shadow;
box-shadow:$shadow;
}
}
在实际调用中:
.box{
@include box-shadow(0 0 1px rgba(#000,.5),0 0 2px rgba(#000,.2));
}
编译出来的css:
.box{
-webkit-box-shadow:0 0 1px rgba(0,0,0,0.5),0 0 2px rgba(0,0,0,0.2);
box-shadow:0 0 1px rgba(0,0,0,0.5),0 0 2px rgba(0,0,0,0.2);
}
混合宏的参数--混合宏的不足
混合宏在实际编码中给我们带来很多方便之处,特别是对于复用重复代码块,但是最大的不足之处是生产
冗余的代码块,比如在不同的地方调用一个相同的混合宏。
@mixin border-radius{
-webkit-border-radius:3px;
border-radius:3px;
}
. box{
@include border-radius;
margin-bottom:5px;
}
.btn{
@include border-radius;
}
示例在“.box”和“.btn”中等能调用了定义好的“border-radius”混合宏。先来看编译出来的css;
.box{
-webkit-border-radius:3px;
border-radius:3px;
margin-bottom:5px;
}
.btn{
-webkit-border-radius;3ox;
border-radius:3px;
}
sass 在调用相同的混合宏时,并不能智能的将相同的样式代码块合并在一起。这也是 Sass 的混合宏最不足之处

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

anexampleStartingtaginhtmlis, whithbeginsaparagraph.startingtagsareessentialinhtmlastheyinitiate rements, definetheirtypes, andarecrucialforstructurituringwebpages 및 smanstlingthedom.

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...
