:host([aspect-ratio='square']) img {
      aspect-ratio: var(--ratio-square);
    }
    :host([aspect-ratio='landscape']) img {
      aspect-ratio: var(--ratio-landscape);
    }
    :host([aspect-ratio='portrait']) img {
      aspect-ratio: var(--ratio-portrait);
    }
    :host([aspect-ratio='widescreen']) img {
      aspect-ratio: var(--ratio-widescreen);
    }
    :host([aspect-ratio='ultrawide']) img {
      aspect-ratio: var(--ratio-ultrawide);
    }
    :host([aspect-ratio='golden']) img {
      aspect-ratio: var(--ratio-golden);
    }

我怎么才能走到一条线呢?通过减少此代码的重复

推荐答案

我认为你不能只用一句话就合理地做到这一点.

您可以使用SASS/SCSS进行简化:

$ratios: "square", "landscape", "portrait", "widescreen", "ultrawide", "golden";

@each $ratio in $ratios {
    :host([aspect-ratio='#{$ratio}']) img {
      aspect-ratio: var(--ratio-#{$ratio});
    }
}

它会生成css:

:host([aspect-ratio='square']) img {
    aspect-ratio: var(--ratio-square);
}

:host([aspect-ratio='landscape']) img {
    aspect-ratio: var(--ratio-landscape);
}

:host([aspect-ratio='portrait']) img {
    aspect-ratio: var(--ratio-portrait);
}

:host([aspect-ratio='widescreen']) img {
    aspect-ratio: var(--ratio-widescreen);
}

:host([aspect-ratio='ultrawide']) img {
    aspect-ratio: var(--ratio-ultrawide);
}

:host([aspect-ratio='golden']) img {
    aspect-ratio: var(--ratio-golden);
}

Javascript相关问答推荐

使用useup时,React-Redux无法找到Redux上下文值

我应该在redux reducer中调用其他reducer函数吗?

每次子路由重定向都会调用父加载器函数

扫描qr code后出错whatter—web.js

PrivateRoute不是路由组件错误

将现场录音发送到后端

当试图显示小部件时,使用者会出现JavaScript错误.

如何在 cypress 中使用静态嵌套循环

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

并不是所有的iframe都被更换

对网格项目进行垂直排序不起作用

JQuery Click事件不适用于动态创建的按钮

创建以键值对为有效负载的Redux Reducer时,基于键的类型检测

将异步回调转换为异步生成器模式

在不扭曲纹理的情况下在顶点着色器中旋转UV

使用createBrowserRoutVS BrowserRouter的Reaction路由

select 2-删除js插入的项目将其保留为选项

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

带元素数组的Mongo聚合

是否在图表中计算线上的点坐标?