【问题标题】:Sass, css and content: attr()Sass、css 和内容:attr()
【发布时间】:2016-03-23 21:26:42
【问题描述】:

我正在尝试使用类似于以下 HTML 的内容:

<div class="cowPen" data-cows="moo">The cow says </div>

在 css 中是这样的:

.cowPen:after {
    content: attr(data-cows);
}

效果很好 (https://jsfiddle.net/m12tnfjs/)

但是,当我尝试通过 sass/compass 创建相同的 css 时,它不起作用。根据 Chrome 开发工具,内容属性已从元素中完全删除。

有什么想法吗?

谢谢!

附:我应该补充一点,我正在尝试实现here 列出的技术,但使用 sass 编译。

【问题讨论】:

标签: css sass compass-sass


【解决方案1】:

SASS 不知道也不关心你的 HTML。它是一个 CSS 预处理器。

假设 SASS 没有它自己的 attr() 函数(它没有),那么这个:

.cowPen:before {
    content: attr(data-before);
}

会这样渲染:

.cowPen:before {
    content: attr(data-before);
}

换句话说,完全不变。

【讨论】:

  • 我想这是有道理的,但是 css 也不知道也不关心 HTML。路径是sass编译->css->运行时解释,对吧? Sass 只是增加了一步。除非我错过了什么?
  • CSS 本身没有,是的,但浏览器有。这就是 CSS + HTML 的运作方式。基本上,preprocessor 不关心,但 processor 关心。
  • 但这就是重点。在运行时,sass 生成的 css 不起作用,但常规的旧 css 可以。
  • SASS 编译是否正确?
  • 我是这么认为的:.cowPen:before {content: attr(data-cows);} 应该这样做,对吧?
猜你喜欢
  • 2015-04-02
  • 2014-02-26
  • 2021-12-09
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 2014-09-07
  • 2016-09-16
相关资源
最近更新 更多