在jQuery Mobile中,创建一个包含所有页面的文件。如果用户选择页面,则ajax只会加载与该页面相关的元素。
我理解这一点,但不确定如果你想要一些例外,你会如何为这些页面提供CSS?
我有两种样式,一种用于菜单页面(深色主题),然后是浅色主题用于任何其他页面。
什么是最适合每种风格的方式?
澄清一下,由于jQuery Mobile确实错综复杂的“swatch”主题,因此为每个页面设置例外是不切实际的,只为每个页面提供不同的CSS文件会更有意义。
答案 0 :(得分:1)
你可以征服这个解决方案:https://stackoverflow.com/a/7349521/737023 - 这不是你想要的,但是让我们说你的主题1是使用swatch a,b,c,d,e - 创建你的第二个主题并使用样本f,g,h,i,j(可能需要连接两个CSS并进行一些替换?) - 然后使用此解决方案将所有的a交换为f,b转换为g等等...当然这只会支持我猜5组5个色板?
或强>
只是不要使用AJAX加载,data-ajax =“false”如果您的网站的单独部分需要新主题,请确保所有链接都不使用AJAX并且只需在头部包含新的CSS
或强>
如果你真的想要花哨,你需要更多的主题,据我所知,我认为没有漂亮的解决方案,如果你在你的div中包含你的CSS [data-role =“page”]标签这将被AJAX加载拉入并初始化工作。
如果您正在谈论在每个页面上为a,b,c ......等值设置不同的themeroller样本,我认为如果没有真正丑陋的话,这是不可能的。 jQM只加载<head>
一次,后续页面通过AJAX加载。
即使您在这些页面中包含CSS,您也无法摆脱原始的CSS类。那么你需要提取出你需要的样式,将它添加到每个页面的唯一类中,并使用!important标志来覆盖jQM的样式。
jQM还使用data-theme =“x”来进行DOM操作,包装内容等等,你需要做很多工作来检查所有元素,看看你需要覆盖哪些类/样式。但我怀疑它是可能的 - 你甚至可能需要通过JS处理一些事情,e.g. find a <ul data-role="listview" class="myCustomClass"> and add your custom classes to dynamically generated DOM
答案 1 :(得分:1)
只需在每个页面中添加所需的CSS标记即可。例如,您可以更改特定页面的主题或仅更改某些特定的CSS规则:
主题覆盖 -
<div data-role="page" data-theme="e"> ... </div>
每个页面都可以有不同的data-theme
属性(每个小部件也可以拥有自己的data-theme
属性。)
CSS覆盖 -
/*this adds 50px of padding to the `data-role="content"` element in the `#my-page-id` pseudo-page*/
#my-page-id .ui-content {
padding : 50px;
}
您可以定位具有此类ID属性的任何单个页面(您也可以使用方括号选择其他属性:[data-myAttribute="myValue"] { ... }
)。
我建议只添加一些覆盖菜单页面样式的CSS规则。
答案 2 :(得分:1)
我最近处理了很多CSS主题。这是我正在使用的方法。基本主题a,b,c,d,我大部分都是单独留下的 - 除了C&amp;我把剩下的都剥掉了。 (您可以将这些覆盖并用自己的外观覆盖黑暗主题)或者只创建一个F主题并使用它。
我目前在我们的应用程序中使用了最多S的主题。它运作良好,易于管理。这与你提到的a-bove非常相似。我在需要时调用了我需要的主题,它似乎运行得很好。
当我需要使用新的基础时,我将复制我现有的A,B,C中的一个,并根据需要更改和扩展css。这解决了使用类似主题名称的页面可能遇到的重叠问题。我会采用这种方法,所以我不重叠,并且很难调试主题。
我正在传递的所有信息都带有大约3个月的日常工作经验,使用JQM主题&amp; CSS。
值得关注的事项: