- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我已经开始使用 BEM methodology在编写我的 CSS 时,很少有我努力寻找做某件事的最佳方法的情况。
我想在这里举一个简单的面板示例。
假设我正在使用 BEM 样式编写面板组件 CSS。所以我的 CSS 可能如下所示:
.panel {}
.panel__titlebar {}
.panel__content { display: none; }
面板可以是无 Chrome 或 Chrome 的。所以我为面板定义了另一个修饰符类:
.panel--with-chrome {
border: 4px solid black;
border-radius: 4px;
}
现在让我们说,面板可以处于全屏/最大化状态,其中镶边和标题栏也会消失。与其为面板和标题栏定义修饰符,不如在父级(比如面板——全屏)上定义修饰符,其余元素应相应更改。所以现在我的 CSS 变成了:
.panel--fullscreen {
/* something has to be done here */
}
.panel--fullscreen .panel__titlebar { display: none; }
要在全屏模式下删除 chrome,我可以:
切换 JS 中的 panel--with-chrome 类和 panel--fullscreen 类
覆盖 panel--fullscreen 类中的 chrome CSS。
第一个不好,因为理想情况下我只想切换 JS 中的一个类 (.panel--fullscreen) 以切换全屏模式。
第二个不好,因为我必须覆盖以前的 CSS,这是一种不好的做法。
那么最好的方法是什么?感谢您的评论。
谢谢
最佳答案
答案取决于很多因素。
首先,有多少逻辑和外观有“panel--with-chrome”和“panel--fullscreen”修饰符。以及这种逻辑是什么类型。
如果“panel--with-chrome”带来很多 CSS 属性和特殊的 JS 功能,我会在应用“panel--fullscreen”时在 JavaScript 中切换它。
它还取决于您使用的 JavaScript 框架。在我们在 Yandex 使用的“i-bem.js”中,很容易对附加修饰符使用react:
但是,如果您使用的框架不允许方便地表达这种 react ,那么这个答案对您来说就不会那么有效。
在另一种情况下,当“panel--with-chrome”没有太多属性并且没有给页面带来任何 JavaScript 逻辑时,我会在“panel--fullscreen”类中重新定义这些 CSS 属性。
综上所述,没有通用的解决方案和严格的规则可循。您应该自己决定什么对您的情况有用。这个决定应该取决于很多事情:
等等……
关于css - 与 BEM 修改器混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074366/
我不明白 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
我是一名优秀的程序员,十分优秀!