[英]Elements no longer inherit data-theme from parent
根据jQuery Mobile Docs,容器内的任何表单元素都将采用该容器的data-theme
Query Mobile具有丰富的主题系统,可让您完全控制页面和表单的样式。 默认情况下,容器内的所有表单元素将自动采用与其父元素相同的主题色样。 这样就可以以最少的工作将表单元素融合到其布局中。 可以将data-theme属性应用于任何单个表单元素,以应用任何带字母的主题色样,以在设计中创建对比度和重点。
但是,似乎在jQuery Mobile(1.2)的最新版本中这不再成立,我注意到表单元素现在从page
的data-theme
继承,而不是从其更直接的父元素继承。
例如给出以下标记
<div data-role="page">
<div data-role="header"><h3>Header</h3></div>
<div data-role="content" data-theme="a">
<ul data-role="listview" data-inset="true" data-theme="c">
<li>
<input type="button" value="test" />
</li>
<li>
<select >
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</li>
<li>
<div data-role="fieldcontain" data-theme="c" >
<fieldset data-role="controlgroup" data-theme="c" data-type="horizontal" >
<legend>Group Size</legend>
<input type="radio" name="testRdoGrp" id="testRdoGrp1" checked="checked" value="1" />
<label for="testRdoGrp1">1</label>
<input type="radio" name="testRdoGrp" id="testRdoGrp2" value="2" />
<label for="testRdoGrp2">2</label>
</fieldset>
</div>
</li>
</ul>
</div>
<div data-role="footer"><h3>Footer</h3></div>
</div>
Jsbins:
使用JQM 1.1,input,select和radio组将使用c主题色板(从listview
继承),但是使用JQM 1.2时,input,select和radio组将使用a色板。
即使对于具有`data-role =“ fieldcontain”的容器(例如,在我提供的示例中的无线电组),情况似乎也是如此。
将data-theme
直接设置在元素上仍然可行,但除此之外,我认为以前的行为可以使标记更整洁,我有很多标记,我宁愿不必遍历每个元素并单独添加data-theme
。
有谁知道某种还原到1.1行为的方式吗?
我仍然没有在任何地方记录这种行为上的变化,但是我发现了针对此问题的部分解决方法。 使用ui-body-
(加上swatch
的字母)类添加样例ui-body-
使元素从父级继承数据主题。
例如
<ul data-role="listview" class="ui-body-c" data-inset="true" data-theme="c">
<li>
<input type="button" value="test" />
</li>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.