我正在开展一个小型“鞋码”项目,用户应该可以阅读有关特殊鞋子的文章。读者可以通过按钮选择在文章中获得欧盟或美国尺寸。
我的问题是,我怎样才能以最佳方式执行此操作 - 因为我实际上不想在<p>
代码中创建新的<p>
代码。
<p>This is the start of the article and this shoe is only available in <p units="US">11.5</p> <p units="EU">45</p></p>.
答案 0 :(得分:2)
传统上,措辞要素
<span>
用于隔离段落中的内联文本。
<强>例如强>
<p>
This is the start of the article and this shoe is only available in
<span data-units="US">11.5</span>
<span data-units="EU">45</span>
.</p>
答案 1 :(得分:1)
涵盖与HTML有效性相关的主要问题,或者特别是 HTML有效性:
<p>
元素不能包含其他块元素,它只能包含&#34;短语内容,&#34;及其:如果p
元素后面紧跟address
,article
,aside
,blockquote
,div
,则可以省略结束标记,
dl
,fieldset
,footer
,form
,h1
,h2
,h3
,h4
,{ {1}},h5
,h6
,header
,hgroup
,hr
,main
,nav
,{{1 }},ol
,p
,pre
或section
,元素......
因此,如果浏览器遇到嵌套table
嵌套ul
,则会立即将其解释为当前打开的<p>
元素的兄弟(无关的终结标记仅作为错误被丢弃)加价)。因为这些嵌套元素的内容在句法上或语义上都不是 - 段,所以我将它们转换为<p>
元素,这些元素是“中立的”。容器(它们不含任何内容),可以包含在<p>
元素中并包含措辞内容。
<span>
属性是非标准的,自定义的,用户创建的属性,因此无效;但是,如果 它们之前是<p>
前缀,则允许用户定义的属性;为了使您的属性有效,我只是将它们从units
转换为data-
。也就是说,这是由此产生的HTML(该部分),请注意我也在段落中移动句子结束时间,以确保句法正确性:
units
现在,您的问题是如何使用按钮显示/隐藏尺寸信息,以显示美国尺寸或欧盟尺寸;使用JavaScript可以更轻松地做到这一点,但是有一个(稍微混乱)黑客可以允许本机HTML和CSS使用data-units
和<p>This is the start of the article and this shoe is only available in
<span data-units="US">11.5</span>
<span data-units="EU">45</span>.</p>
元素实现该行为。
<label>
元素链接到<input>
的{{1}}元素,相关的无线电输入共享相同的名称,因此一次只能选择一个。< / p>
这些无线电输入位于<label>
元素之前,其中包含您想要切换的大小调整信息,CSS用于选择已检查的无线电输入,然后仅显示特定内容,隐藏另一个。
在实践中,这给出了:
<input>
&#13;
type="radio"
&#13;
参考文献:
答案 2 :(得分:0)
var units = $('#changeUnit');
var unitUS = $('#US');
var unitEU = $('#EU');
function changeUnit() {
if (unitUS.css('display') == 'inline') {
unitUS.css('display', 'none');
unitEU.css('display', 'inline');
units.text('EU size (click to change)');
} else {
unitUS.css('display', 'inline');
unitEU.css('display', 'none');
units.text('US size (click to change)');
}
}
units.click(function(e) {
changeUnit();
});
&#13;
#US {
display: inline;
}
#EU {
display: none;
}
#changeUnit {
cursor: pointer;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p id="changeUnit">US size (click to change)</p>
<p>This is the start of the article and this shoe is only available in <span id="US" units="US">11.5</span><span id="EU" units="EU">45</span>.</p>
&#13;