html - 如何在 Sass 中使用 lang() 选择器?

标签 html css sass

我有一个 div 来存储文本摘录,并且使用 :before 选择器应用标题。

.myDiv{
  &:before {
    content = "My Title";
  }
}

我以英语和西类牙语版本存储这些摘录 - 两种语言都位于属于同一类的 div 中,并且使用 lang 属性来区分它们。

<div class="myDiv" lang="en">
    <p>Hello, world!</p>
</div>

<div class="myDiv" lang="es">
    <p>¡Hola Mundo!</p>
</div>

如何根据使用 SASS 的语言应用不同的标题?我尝试过以下方法:

@mixin divTitles {
  &:lang(en) and &:before{
    content: "My Title";
  }
  
  &:lang(es) and &:before{
    content: "Mi título";
  }
}

但是当我尝试添加语言运算符时,它失败了,尽管 SASS 中允许使用“and ”运算符,并且 CSS 中可以使用“:lang() ”伪选择器。

编辑:我将其更改为

@mixin divTitles {
  &:lang(en) {
    &:before{
      content: "My Title";
    }
  }
      
  &:lang(es) { 
    &:before{
      content: "Mi título";
    }
  }
}

并且它有效。有没有更优雅的解决方案?

最佳答案

对于 mixin 来说,这是一个非常奇怪的用例,但要回答你的问题:

@mixin divTitles {
    &:lang(en):before {
        content: "My Title";
    }

    &:lang(es):before {
        content: "Mi título";
    }
}

我建议将这个特定的东西作为一个 CSS 选择器。

.myDiv {
    &:lang(en):before {
        content: "My Title";
    }

    &:lang(es):before {
        content: "Mi título";
    }
}

关于html - 如何在 Sass 中使用 lang() 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328665/

相关文章:

javascript - 带有垂直子菜单的水平响应式菜单

css - 如何在表之间创建空白?

twitter-bootstrap - Bootstrap SCSS : $color: theme-color ("primary") is not a color

css - 禁用移动和平板设备上的悬停

html - 单击链接时主导航移动

html - @font-face 不适用于 ff、chrome 和 safari(在 mac 上)

javascript - 存储/检索 html 5 文件对象以恢复损坏的文件上传

Javascript Uncaught Reference错误函数未定义

html - 按比例增加/减少包装

html - 为选择菜单的不同选项值设置不同的字体粗细?