Worklight 5.0.5 生成不可更改的内联 CSS

Posted

技术标签:

【中文标题】Worklight 5.0.5 生成不可更改的内联 CSS【英文标题】:Worklight 5.0.5 generates unalterable inline CSS 【发布时间】:2013-06-20 16:10:16 【问题描述】:

我今天在将 Worklight 5.0.5 用于 android 移动项目时遇到了问题。如果有帮助的话,这个项目确实使用了 Apache Cordova、Dojo Mobile 和 Worklight 库。

问题在于,Worklight 在某些情况下会在构建期间自动生成不需要的内联 CSS。我找不到 Worklight 的哪个组件对此负责,也找不到在需要时如何更改或防止此行为。这似乎是一个小问题,但事实上它是内联 CSS,并且在构建期间,意味着我无法影响它!

通过 javascript 和 CSS 进行搜索,无论是我构建的还是为 Dojo 导入的,似乎都没有显示任何会添加 CSS 的内容。

示例:

我的 html 中有以下标记:

<ul data-dojo-type="dojox.mobile.TabBar" barType="segmentedControl"
class="center segmentContainer">

构建后,在基于 WebKit 的浏览器 (Google Chrome) 中显示为:

<ul bartype="segmentedControl" class="mblTabBarSegmentedControl mblTabBar center segmentContainer mblTabBarNoIcons"
data-dojo-type="dojox.mobile.TabBar" id="dojox_mobile_TabBar_0"
widgetid="dojox_mobile_TabBar_0" style="padding-left: 78px;">

最后的内联 CSS,“padding-left”,是我试图寻找和破坏的。有谁知道是什么导致了这种行为,以及我可以如何改变或防止它?

【问题讨论】:

【参考方案1】:

我不太了解这些技术,但如果您无法摆脱插入的 CSS,您可以在自己的 CSS 中使用 !important。例如:

.segmentContainer 
    padding-left: 0px !important;

这会将padding-left 语句的优先级移出正常的优先级顺序。通常我相信它是内联的,ids 然后是类,但是!important 你的类优先。

【讨论】:

【参考方案2】:

您确定这个 Worklight 的构建过程添加了这种样式,而不是 Dojo 的 ?我会检查 Dojo 移动 api 以确保它没有默认添加。 OOTB Dojo,用于 TabBar 使用内联 CSS 生成以下标记。

<ul id="demoTabBar" dojotype="dojox.mobile.TabBar" single="true" iconbase="images/tabbar_all.png" fixed="bottom" role="tablist" class="mblTabBarTabBar mblTabBar mblFixedBottomBar mblTabBarNoText mblTabBarFill" widgetid="demoTabBar" style="bottom: 0px; padding: 0px;">

【讨论】:

我确实检查了 Dojo 的 API,甚至对包含的 JS 文件进行了一些挖掘。不幸的是,似乎没有任何东西可以插入这么大的“padding-left”。【参考方案3】:

这是默认的 Dojo 样式。您在 AppName.html 中编写此代码来覆盖它:

...
<style>
.segmentContainer 
    //your personalization

</style>
</head>
<body>
......
<ul data-dojo-type="dojox.mobile.TabBar" barType="segmentedControl"
class="segmentContainer">

【讨论】:

以上是关于Worklight 5.0.5 生成不可更改的内联 CSS的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 5.0.5:通过操作系统的通知句柄控制 Worklight 推送通知订阅/取消订阅

Worklight 5.0.5.1 && 保护应用程序

Worklight 5.0.5 插件中的 Dojo 调色板是不是存在拖放问题?

IBM Worklight 5.0.5 - 在推送通知上播放自定义声音

更改 IBM Worklight 项目路径

清除 Worklight 服务器上的推送通知注册