【问题标题】:flex-like states in CSS/grabbing multiple id-ed elements at onceCSS 中的类 flex 状态/一次抓取多个 id-ed 元素
【发布时间】:2013-02-06 18:31:44
【问题描述】:

假设我有一个带有按钮的用户界面。 ui 有四种状态,每种状态的按钮位于不同的角落。

在 Flex 中,这很容易实现,您只需定义这四种状态(topLeft、topRight、bottomRight、bottomLeft),并且每种状态都有一个按钮位置值的覆盖。

您将如何使用 CSS 以一种可以通过简单赋值触发的方式执行此操作?

Flex: skin.currentState="topRight" JS:???

我已经在 css 中定义了类:

#button.topRight {...}
#button.topLeft{...}
#button.bottomRight {...}
#button.bottomLeft {...}

现在,无需知道#button 的存在,如何在一行代码中将四种状态之一应用于页面上定义了该状态的所有元素?

【问题讨论】:

  • 请显示相关的HTML。这很容易做到——只需要知道标记结构。

标签: css apache-flex states


【解决方案1】:

jQuery 在 JavaScript 中提供了一个方便的抽象层,因此:

$('.someClassName').addClass('blueOnLeft')  
$('.someClassName').removeClass('blueOnLeft')

这将针对每个类名为“someClassName”的元素。

【讨论】:

  • 很高兴知道。但是,如果我有五个不同的状态,并且元素当前可能是这五个中的任何一个,并且可能需要转到这五个中的任何一个,该怎么办?我希望能够在一行中进行更改。这在 CSS 中可行吗?
  • 是的,您可以使用:.addClass('blueOnLeft mysomething') 等...参见:api.jquery.com/addClass
  • 也很高兴知道。我可以使用 removeClass 来更改项目的“状态”:$("p").removeClass("state1 state 2").addClass("state3")。现在,如果有什么办法我可以说:页面上的所有 id 元素,如果你定义了一个类 X,添加一个类并删除所有其他类?
  • 当然,你可以使用没有 CSS 定义的类来表示你想要的任何东西。
  • 感谢 Diodeus,您的所有 cmets 都在帮助我,因为我对 CSS 的了解还很初级。我已经重写了问题以使其更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
相关资源
最近更新 更多