src/scss íīëė _variables.scss íėžė ë§ë ëĪ.
íėž ėīëĶ ėė ë°ėĪė ėķę°í ęēė íīëđ íėžė scssëĄ ëĻė ëŋ css íėžëĄ ëģííė§ ėė ęēėė ëíëīęļ° ėí ęēėīëĪ.
// _variables.scss
$bg: red;
// styles.scss
@import "_variables";
body {
background: $bg;
}
h1 {
color: red;
&:hover: blue;
span {
color: orange;
&:hover: green;
}
}
mixinė ėļėëĨž ëĢėīėĪėžëĄėĻ ęļ°ëģļė ėžëĄ ė ėĐí CSS styleė ëģęē―ė ę°íęą°ë scss íėžėė @if ~ @else ęĩŽëŽļęģž ę°ė íëĄę·ļëë°ė ėŽėĐíęļ° ėíī mixinsëĨž ėŽėĐí ė ėëĪ.
<!-- index.html -->
<a>ėēŦ ëēė§ļ íėīí</a>
<a>ë ëēė§ļíėīí</a>
<a>ėļ ëēė§ļ íėīí</a>
<a>ëĪ ëēė§ļ íėīí</a>
// _variables.scss
$red-color: red;
$blue-color: blue;
// _mixins.scss
@mixin link($color) {
display: block;
margin-bottom: 10px;
font-size: 50px;
color: $color;
}
linkë colorë ėėëĄ ė íīėĪ ėīëĶėž ëŋ ėžë§ë ė§ ëĪëĨļ ėīëĶė ėļ ė ėëĪ.
// styles.scss
@import "_mixins";
a {
&:nth-child(odd) {
@include link(blue);
}
&:nth-child(even) {
@include link(red);
}
}
ėĪė ëĄ linkė ėļėëĄ blueė redëĨž ëĢėīėĪŽëĪ.
ëĪėęģž ę°ėī ėėąíīë ęē°ęģžë (1)ęģž ę°ëĪ.
// _mixins.scss
@mixin link($word) {
display: block;
margin-bottom: 10px;
font-size: 50px;
@if $word == "odd" {
color: blue;
} @else {
color: red;
}
}
ėīë == ëĨž ėŽėĐíīėž íëĪ. (=== ë ė íĻíė§ ėëĪ.)
// _styles.scss
@import "_mixins";
a {
&:nth-child(odd) {
@include link("odd");
}
&:nth-child(even) {
@include link("even");
}
}
linkė ėļėëĄ color ëė ëŽļėėīė ëĢėīėĪŽëĪ.
ęļ°ėĄīė CSS styleė ëģęē― ėėī ėŽėŽėĐ íęģ ė í ë @extend
ëĨž ėŽėĐíëĪ.
ėŽėŽėĐ íęģ ė íë ė íė ėė %
ëĨž ëķėŽėž íëĪ.
ðĄ
mixins
ė ėíĐė ë°ëž ëĪëĨīęē ė―ëĐíęģ ėķė ë ėŽėĐíë ë°ëĐī,extends
ë ę°ė ė―ëëĨž ėĪëģĩíīė ėŽėĐíęģ ėķė§ ėė ë ėŽėĐíëĪ.
// _buttons.scss
%button {
border-style: none;
border-radius: 10px;
margin: 10px;
padding: 20px;
color: white;
background: darkcyan;
font-size: 20px;
}
@import "_buttons";
a {
@extend %button;
text-decoration: none;
}
button {
@extend %button;
cursor: pointer;
}
@contentëĨž ėŽėĐíëĐī mixinė contentëĨž ė§ė í ė ėëĪ.
ėīë mixinė ėļėëĨž ė ëŽíë ęēęģžë ëĪëĨīëĪ.
mixin argument
ė @content
ëĨž íĻęŧ ėŽėĐíëĐī ë°ėí ëėėļė ęĩŽí
í ë ë§Īė° ė ėĐíëĪ.
ėŽęļ°ėë ę°ëĻíęē ëļëžė°ė ė íŽęļ°ëĨž ëģęē―íëĐī ė§ė í ęē―ęģëĨž ęļ°ėĪėžëĄ H1 í ėĪíļė ėėėī ë°ëëëĄ ė―ëëĨž ėėąíīëģīë Īęģ íëĪ.
<h1>íėīí</h1>
// _mixins.scss
// ėėëĄ ėëŽīë ęēë ė§ė í ę°ëĪėīëĪ
$minIphone: 320px;
$maxIphone: 480px;
$minIpad: $maxIphone + 1;
$maxIpad: 640px;
$minTablet: $maxIpad + 1;
$maxTablet: 960px;
@mixin responsive($device) {
@if $device == "iphone" {
@media screen and (min-width: $minIphone) and (max-width: $maxIphone) {
@content;
}
}
@if $device == "ipad" {
@media screen and (min-width: $minIpad) and (max-width: $maxIpad) {
@content;
}
}
@if $device == "tablet" {
@media screen and (min-width: $minTablet) and (max-width: $maxTablet) {
@content;
}
}
}
responsive mixinė ėļėëĄ iphone, ipad, tabletėī ė ëŽë ęē―ė°ëĨž ëë ė ę°ę° ëĪëĨļ ëŊļëėī ėŋžëĶŽëĨž ë§ëĪëëĄ íëĪ.
ëŊļëėī ėŋžëĶŽė ííė ëķëķė @content
ëĄ ėėąíėŽ styles.scssėė ęē―ė°ė ë°ëž ėĪė í ė ėëëĄ íëĪ.
// styles.scss
@import "_mixins";
h1 {
font-size: 50px;
color: indianred;
@include responsive("iphone") {
color: yellowgreen;
}
@include responsive("ipad") {
color: gray;
}
@include responsive("tablet") {
color: darkmagenta;
}
}
responsive mixinė ėļėëĄ iphoneėī ė ëŽíėŽ ėėąë ëŊļëėī ėŋžëĶŽė ėĄ°ęąī(min/max-width íŽęļ°)ė ë§ë ęē―ė° colorëĨž yellowgreenėžëĄ ë°ęūžëĪ.
responsive mixinė ėļėëĄ ipadėī ė ëŽíėŽ ėėąë ëŊļëėī ėŋžëĶŽė ėĄ°ęąī(min/max-width íŽęļ°)ė ë§ë ęē―ė° colorëĨž grayėžëĄ ë°ęūžëĪ.
responsive mixinė ėļėëĄ tabletėī ė ëŽíėŽ ėėąë ëŊļëėī ėŋžëĶŽė ėĄ°ęąī(min/max-width íŽęļ°)ė ë§ë ęē―ė° colorëĨž darkmagentaėžëĄ ë°ęūžëĪ.
íëĄí íė , íīėŽ í ėīëļ
CSS PROJECTS