【发布时间】:2012-12-19 00:24:44
【问题描述】:
有没有什么方法可以使用 Flex CSS 来设置这个 BorderContainer 的 padding?
<s:BorderContainer width="100%" height="100%">
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:Label text="asdfasdf" />
</s:BorderContainer>
我试图避免添加额外的不必要的 VGroup。使用 CSS 设置填充无效。 (我猜是因为 paddingLeft 不是 BorderContainer 上定义的样式。)
s|BorderContainer {
paddingLeft: 10;
}
有没有办法用 CSS 修改布局的属性?我不想在很多地方硬编码填充。
【问题讨论】:
-
我不确定您要避免什么。如果要重用某个布局,请为 BorderContainer 创建自定义外观。如果它只是一次性的,我不明白你为什么不“硬编码”它。
paddingLeft是LayoutBase的属性,而不是样式。 -
@RIAstar 我们已经在整个应用程序中为 BorderContainer 使用了自定义外观,但它有几种不同的用途需要不同的填充。所有这些相似的用途都应该有相同的填充,所以我认为这是使用 CSS 的一个很好的例子。如果我将填充物放在皮肤中,我必须制作 3 个相似的皮肤,它们的布局仅不同。如果我将填充/布局放在我使用 BorderContainer 的每个地方,将来很难在应用程序中更改填充。
-
在这种情况下,为您的自定义皮肤添加自定义样式应该可以解决问题。唯一的缺点是:您不会获得 IDE 支持,因为主机组件不会知道您添加的样式;如果您尝试在 MXML 中设置样式,编译器会抛出错误,但这是您首先要避免的。
-
@RIAstar 看起来这是最好的主意。如果您将其作为答案提交,我会接受。
标签: apache-flex mxml