- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 BEM 样式 CSS 来设计我的 Angular Directive(指令),并且通常使用 Replace: true 来使我的 block 级类可以位于自定义元素的“根”上。这使得我可以主要使用类来编写所有 CSS。
但是,replace: true 有时会导致问题(有两个 ng-if 等),现在已被标记为已弃用。所以我开始尝试完全远离替换。
但是现在我在将 BEM 应用于这些具有实际自定义标记 DOM 的元素时遇到了麻烦 - 现在我必须使用标记名称而不是类名称,这意味着我不能再真正使用 BEM (因为我必须使用标签名称,因为我无法将类直接应用于模板中的元素)。此外,在我的自定义元素上使用修饰符现在似乎是不可能的,就像使用同级 CSS 选择器一样。
这是一个示例,希望能够说明我的意思:
指令:
angular.module('my.module')
.directive('customElement', function() {
return {
restrict: 'E',
scope: {
isSpecial: '='
},
template: '<div class="custom-element" ng-class="{\'custom-element--special\': isSpecial"></div>'
};
});
CSS:
.custom-element {
background-color: white;
}
.custom-element--special {
background-color: red;
}
.custom-element--special + .custom-element--special { // this won't work without replace: true
background-color: blue;
}
如果我使用replace: true,一切都会按预期工作(但随之而来的是它自己的头痛)。
如果我不使用替换,这些类不会应用于根自定义元素,因此子选择器不起作用。
我总是可以向 postLink 函数中的元素添加类,但这会使模板变得不太清晰。
有人有使用 Angular 的 BEM 并在自定义指令中使用类而不是标签名称的经验吗?为了解决这个问题你做了什么?
最佳答案
我知道出于可读性目的而使用 replace:false
是一个问题。
实际的问题是我们需要 OOCSS但是您正在处理带有 CSS 对象的自定义标签的 Angular 组件,但情况并非如此。
对此没有实际的解决方案,我不会建议您开始在 postLink
函数上添加类。
然而,我们习惯做的是将自定义标签视为除了内部对象结构之外的自己的 CSS 对象。迫使我们为自定义标签实现额外的 CSS 类。
block-context
block-context__element
custom-element
当block-context__element
是一个多余的类时为什么要这样做?
custom-element
block 本身应该具有意义,而 block-context__element
元素则没有意义预计,您应该从指令的实现中抽象 CSS 对象,如果您在某个时候开始更改您的 html 组件,您的类仍然应该适用。希望这个回答对你有帮助
关于css - 将 BEM CSS 与 Angular 指令结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988490/
我不明白 RSCSS 和 BEM 之间的区别。有人说 RSCSS,有人说 BEM。 请告诉我两者的区别 最佳答案 RSCSS 只是 BEM 的扩展,加上创建它的团队的一些额外想法和经验。 例如 RSC
在 grunt 文件中 stylelint: { all: ['app/styles/**/*.scss'] }, .stylelintrc { "plugins": [
我正在尝试使用 stylelint 对 BEM 样式进行 lint和 stylelint-selector-bem-pattern plugin但无法让它工作。 我的配置如下: 节点:5.11.0 g
我正在学习 HTML BEM (CSS) 架构,即使在观看了一些 youtube 视频后也不太了解。你们中的任何人都可以查看我的一段代码以查看我的类命名是否正确吗?
我正在尝试使用 BEM 命名约定,并且在决定在何处包含特定页面的修饰符时遇到了一些困难。 例如,假设我有一个橙色按钮: Button A 我的元素有 3 个不同的页面: - pageA.html -
我正在尝试返回到 Web 的前端编码。上一次写 CSS 是在 10 年前,那时候有一种病叫 分类炎 .我对 classitis 的理解可能是错误的,但我认为不要在您的 HTML 文档中放置过多的 CS
在使用 BEM 时,我曾被简单的场景搞糊涂过。示例中有一个基本按钮: .button { // styles for button } 及其具有更具体样式的修饰符: .button.butto
Closed. This question is opinion-based。它当前不接受答案。
所以我试图理解 BEM 命名结构。所以假设我有以下 html {{team.name}} {{team.score}}
在整个站点中定义通用非 block 特定样式的最佳方法是什么? 例如: html foo bar 萨斯/CSS .intro__text { } .profile__text
这是一个理论问题,但它现在困扰了我几个小时。 我正在学习 BEM,到目前为止它很棒,但我遇到了问题。假设我有这段代码: Blah Generated from the CMS 如何定位 p
使用 CSS BEM 方法... 假设我有一些 HTML,像这样(这只是为这个问题编写的示例 HTML): Text. Text. Text. Text.
不知道哪个是官方网站,我找到了getbem.com和 en.bem.info . 有人建议使用 -- 作为修饰符(Naming): CSS class is formed as block’s or
我有一个关于 BEM 中通用 block (例如 .button)与媒体查询样式的问题。 BEM 中的 block (如文档所述)应该具有适用于网站上所有元素的通用样式,假设我有一个 block :
我最近开始使用 BEM 来编写可重用的 CSS 组件。在BEM documentation和其他网站,我发现由于显而易见的原因,不鼓励对标签元素进行全局重置。 但是,当我查看基于 BEM 的网站(包括
最近我开始在我的元素中使用 BEM 来组织 CSS,但现在我已经到了这样的 html: TITLE SUBTITLE 由于我对 SMACSS
... 例如,我将它放在 header 中,它不依赖于 header block 。为了使其对 BEM 友好,我倾向于这样做: ... 这是处理 BEM 的
HTML 布局 social icon here social icon here social icon here social icon
我正在尝试遵循 BEM 命名约定,但我不确定如何实现以下内容:我有一个“工具提示” block ,应该使用不同的主题设置样式。假设我应用了一个“默认”主题。 工具提示可以放置在不同位置的元素周围,这
我是 BEM 的新手,正在处理示例模板: HTML Site branding link link
我是一名优秀的程序员,十分优秀!