- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用@mixin 为元素添加不同的过渡属性。假设我的 .scss 中有这个:
@mixin transition($prop, $sec){
-webkit-transition: $prop $sec;
-moz-transition: $prop $sec;
-ms-transition: $prop $sec;
-o-transition: $prop $sec;
transition: $prop $sec;
}
然后我调用:
.sample{
@include transition(background-color, 0.2s);
@include transition(margin, 0.3s)
}
.sample 只有边距过渡,但我还想要背景颜色过渡:有没有简单的方法让它工作?
重要的是我有不同的电话
最佳答案
SASS 无法连接属性,我不知道是否存在 CSS 外部工具来完成此任务。 Sass 的创建是为了提高 CSS 功能,而不是让程序员养成不良的编程习惯。当您可以将它们全部保存在一个语句中时,我真的不知道创建多个 CSS 声明语句的目的。将所有转换保存在一个语句中可以显着改善您的结构、工作流程和 Sass 代码的性能。
好吧,就是说了,正如您之前提到的“让可怕的事情发生吧”。
这里有两种不同的 mixin,一种用于简写转换声明,另一种用于长形式,它们在处理甚至加载时间上的差异可以忽略不计,唯一明显的区别在于代码的风格。
长格式混合
@mixin transition($properties, $durations, $timing-function: null, $delay: null) {
$declarations: (property, $properties),
(duration, $durations),
(timing-function, $timing-function),
(delay, $delay);
@each $declaration in $declarations {
@if nth($declaration, 2) {
$output: ();
@each $val in nth($declaration, 2) {
$output: append($output, $val, comma);
}
@each $prefix in '-webkit-', '-moz-', '-ms-', '-o-', '' {
#{$prefix}transition-#{nth($declaration, 1)}: $output;
}
}
}
}
它类似于@LeBen mixin,但您可以使用 include 和不带引号的逗号分隔参数:
@include transition(background-color margin, 0.2s 0.3s);
简写形式
@mixin transition($declarations...) {
@each $prefix in '-webkit-', '-moz-', '-ms-', '-o-', '' {
#{$prefix}transition: $declarations;
}
}
这是在您的代码中实现它的方法
@include transition(background-color 0.2s, margin 0.3s);
现在,要解决“不同调用”的问题,我认为处理它们的唯一方法是使用 append()
列表功能。
让我们来看例子。我将使用速记混合形式,因为它更容易实现。
假设您有四个页面,三个部分(_variables.scss
、_page1.scss
、_page2.scss
、_page3 .scss
) 和一个导入另一个的 style.scss
文件:
_VARIABLES.SCSS
// Here comes the variable declaration
$transition-list: color 1s;
_PAGE1.SCSS
// Using append($list, $val, $separator:auto) list function
// we can add some items to $transition-list
$transition-list: append($transition-list, margin 2s, comma);
_PAGE2.SCSS
// You can add also the output of a function
@function example(){
@return unquote("background-color 1s")
}
$transition-list: append($transition-list, example(), comma);
STYLE.SCSS
// You can add new values into the same page
$transition-list: append($transition-list, padding 4s, comma);
$transition-list: append($transition-list, border 10s, comma);
// And finally you only need to use the include to generate the final transition
example {
@include transition($transition-list);
}
正如我之前所说,我不推荐使用这种方法,这不是一个好的做法。
关于css - SCSS 过渡属性覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202250/
我试图按部分组织我的 .css 文件,我需要从任何文件访问文件组中的任何类。在 Less 中,我可以毫无问题地创建一个包含所有文件导入的主文件,并且每个文件都导入主文件,但在 Sass 中,我收到一个
我有一个全局 main.scss 文件,我在其中声明了一个 .small-size-text{ font-size: 12px; } 并且在作为login.scss 的子组件文件中,我将另一个类定
这是一个我完全不明白的奇怪错误。我通常会先搜索并寻求答案,然后再将其发布到 StackOverflow 上。所以问题是我想使用从另一个名为 的 scss 文件中导入的变量。 _variables.co
我试图让 livereload 与 rails 3.2 一起工作,我遇到了这个问题,其中有一个引用,不使用 .css.scss 命名导入的 sass 部分: Rails: Use livereload
这是我当前在 gulpfile.js 中的代码部分: // Sass gulp.task('sass', function () { gulp.src(['./node_modules/boots
我有这样一个样式文件的项目结构: client/ config-style.scss ------components/ ------style.scss -----------------my_co
如何在另一个.scss文件中包括.scss文件? 我试图将其写入文件中: app.scss: @include('buttons'); @include('dropzone'); body {
当我向 body 添加“dark-theme”类时,我想添加一个不同的主题。我的实现是这样的: @import '../../../../node_modules/angular-grids/styl
我在一个 Angular 元素中有一个 SCSS,它从 node_modules 导入另一个 SCSS: @import "node_modules/grapesjs/src/styles/scss/
它会缓存一个文件还是会导入两次并加倍我的代码? 假设我有variable.scss 并且必须将它导入那两个apple.scss | orange.scss。这样可以吗? 最佳答案 根据需要多次导入 v
这是 style.scss - 文件 @import '~bootstrap/scss/_functions.scss'; @import '~bootstrap/scss/_variables.sc
我在我的应用程序上使用 Angular (Jhipster),我想在我的 glocal.scss 文件中导入几个 .scss 文件。所以我创建了一个“util”文件夹(与 global.scss 文件
我正在 MPR 中从 Vaadin 8 迁移到 Vaadin 14 LTS。我们项目中使用的 .scss 文件需要编译。我使用了以下插件 com.vaadin vaa
这是我当前的项目目录结构,因为我想不出更好的组织方式来组织每个组件都有自己的 .scss 文件的用例,但是,整个应用程序都是包含全局 variables.scss 文件的 Fed 主题。目前,我正在每
在我的reactJS应用程序中 - 我将所有.scss文件包含在一个main.scss文件中 - 在src文件夹中的styles文件夹下。我有以下 webpack 配置。尝试将 main.scss 文
在最近的 Angular 7 项目中,我有一个组件(在文件 file-list.component.ts 中定义),其中有一个 mat-paginator (来自 Angular Material 组
我有一个引用了一些 Compass mixins 的 SCSS 文件。现在我想将它包含在一个不使用 Compass 的元素中。为此,我想将带有 Compass 混入的 SCSS 转换为没有 Compa
我只是在处理这个 tutorial 之后的本地元素它告诉我更改三个 css 文件: fluid_skeleton.css => _fluid_skeleton.scss 规范化.css => _规范化
我在根文件夹中创建了一个全局 scss 变量文件 对于导入变量我写 @import '../../../style_config/style_config'(全局变量文件) 到每个 scss 文件 更
我正在尝试将多个 SCSS 文件处理成 Webpack (3.6.0) 中的单个外部 CSS 文件,但我在解析 @import 语句时遇到问题。 条目 index.js 包含: import './s
我是一名优秀的程序员,十分优秀!