1. Import & Partial
Trong thực tế khi code scss ta thường chia nhỏ ra các file đảm nhiệm các chức năng khác nhau như _colors.scss
hay_variables.scss
rồi dùng từ khóa @import
để gọi vào.
$primary-300: #64B5F6;$primary-400: #42A5F5;$primary-600: #1E88E5;
$font-size-base: 14px;$font-size-large:ceil(($font-size-base* 1.25));// ~18px$font-size-small:ceil(($font-size-base* 0.85));// ~12px
File style.scss
để import 2 file ở trên ta viết code như sau
@import"variables";@import"colors";.title {font-size:$font-size-small;color:$primary-300;}
Kết quả
.title{font-size: 12px;color: #64B5F6;}
Lưu ý
- 3 file ở trên nằm cùng cấp ngang hàng với nhau
- Khi import việc ghi cả đuôi file scss là không cần thiết
- Ta thấy 2 file
_colors.scss
và_variables.scss
có gạch dưới ở phía trước, đó là cách dùng của Partial, điều này có nghĩa SASS sẽ không biên dịch các file đó ra file css
2. Media
Cách viết @media
tương tự như viết của CSS, thường dùng khi responsive website
@media(min-width: 1200px){.col-lg-6{width: 50%;}}
3. Extend
Kế thừa các thuộc tính của một selector khác. Sử dụng từ khóa @extend
.btn {display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: middle;touch-action: manipulation;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 7px 12px;font-size: 13px;line-height: 1.5384616;border-radius: 3px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}.btn-primary {@extend .btn;color: #fff;background-color: #2196F3;border-color: #2196F3;}
Kết quả
.btn, .btn-primary{display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: middle;touch-action: manipulation;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 7px 12px;font-size: 13px;line-height: 1.5384616;border-radius: 3px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}.btn-primary{color: #fff;background-color: #2196F3;border-color: #2196F3;}
Vùng chọn %extend
sẽ chỉ kế thừa các thuộc tính mà không compile.
%btn{display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: middle;touch-action: manipulation;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 7px 12px;font-size: 13px;line-height: 1.5384616;border-radius: 3px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}.btn-primary {@extend%btn;color: #fff;background-color: #2196F3;border-color: #2196F3;}
Kết quả
.btn-primary{display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: middle;touch-action: manipulation;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 7px 12px;font-size: 13px;line-height: 1.5384616;border-radius: 3px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}.btn-primary{color: #fff;background-color: #2196F3;border-color: #2196F3;}
Nguồn: viblo.asia