我原來的代碼已被大量修改和基於簡化與它的當前版本是一個建議的解決方案:媒體查詢是否可以嵌套在SCSS mixin中構建出使用列表的類似類?
// List of properties for each class
@mixin property($list) {
padding-top: nth($list, 1);
padding-bottom: nth($list, 2);
font-size: nth($list, 3);
line-height: nth($list, 4);
}
// Function to build each class
@mixin build($element, $device, $type) {
$i: 10;
@each $list in $type {
.#{$element}-#{$device}-#{$i} {
@include property($list);
}
$i: $i + 5;
}
}
// Type list values
$paragraph: (
(5px, 5px, 15px, 20px), // 10
(7px, 8px, 20px, 30px), // 15
(8px, 7px, 30px, 35px) // 20
);
// Extra small devices
@include build('p', 'xs', $paragraph);
// Small devices
@media (min-width: 768px) {
@include build('p', 'sm', $paragraph);
}
// Medium devices
@media (min-width: 992px) {
@include build('p', 'md', $paragraph);
}
// Large devices
@media (min-width: 1200px) {
@include build('p', 'lg', $paragraph);
}
// Extra large devices
@media (min-width: 1460px) {
@include build('p', 'xl', $paragraph);
}
與所有的媒體查詢斷點和設備大小前綴(xs
,sm
,md
等),如上所示,有必要將這些媒體查詢嵌套到@mixin build
中,或者這是優雅且簡潔的,因爲此想法的代碼可以得到嗎?
更大的想法是,我想利用所有這一切與另一組值不同的列表。另一套類應該建立:@include build('h', $heading);
您的代碼似乎可以正常工作,但您尚未發現需要解決的實際問題。對於基於「優雅」或「更好」等模糊描述的通用代碼改進/重構,這不是合適的位置。請參閱:http://meta.stackoverflow.com/questions/295665/are-dry-questions-on-topic – cimmanon