- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果相同数据有两种布局,我应该尝试找到一种适合两种布局的语义布局,还是只选择一种语义布局而另一种仅风格布局?任何想法都将不胜感激,因为目前我什么都不做。
我正在尝试将一些神圣的文本放到网上,并能够以各种方式设置它们的样式。主要有两种风格:段落形式和诗歌形式。诗歌形式很容易。段落形式让我很头疼,因为它与诗歌形式冲突,而且似乎与它本身冲突。在段落形式中,诗节编号和章节编号可以打开和关闭,因此在两种形式之间进行选择时加载新页面并不理想。前往 non-semantic route简单。修复它虽然让我感到困惑。如果可能,我想将其保留为有效的 HTML。
这是我目前所拥有的:
<article>
<h2>Book</h2>
<div>
<h3>Chapter 1</h3>
<span class="verse-num">1 </span>Lorem ipsum dolor sit amet, duo ei
aliquam tincidunt, ut eos electram elaboraret, no nec falli omnesque.
<span class="verse-num">2 </span>Eu cum nisl alia aeterno. Mediocrem
eloquentiam ad mel, no idque moderatius mei, sed legere inciderint
no. Et nec brute essent sententiae.
</div>
<div>
<span class="verse-num">3 </span>Sea ea omnes explicari repudiare, et
eam graeco alterum eruditi, vim consulatu referrentur ad. Id eros
nostrud mei, nibh adipisci has eu. Ei pri ipsum primis accommodare.
<span class="verse-num">4 </span>Ignota copiosae theophrastus ne qui,
te suas essent molestiae nam. Tacimates patrioque quo ad.
</div>
<div>
<span class="verse-num">5 </span>Nusquam appareat comprehensam has in.
Qui melius labitur persequeris cu, no brute elitr libris eum.
<h3>Chapter 2</h3>
<span class="verse-num">1 </span>Voluptaria reformidans at sed, mollis
ullamcorper sea id. Usu cu oblique voluptaria definitiones, dicant
corpora iudicabit his an.
</div>
<div>
<span class="verse-num">2 </span>Cum at illum facete corrumpit, aeque
repudiare ad vim, cu has inimicus iudicabit. Qui eu interesset
eloquentiam. Est ei nisl atqui, amet intellegat ea per. Integre
adolescens id has, adhuc tibique corrumpit ut quo. Facer
assum singulis eu per, et mea vulputate necessitatibus.
<span class="verse-num">3 </span>Ut ius facer tamquam erroribus, duo ei
atqui dicunt liberavisse.
</div>
<div>
Quo mundi offendit adolescens ut, nisl illum vis an. Ne vis luptatum
legendos, docendi vulputate omittantur usu eu. At mea luptatum
iracundia, ridens laoreet contentiones an pro, eu diam partem inciderint
mea. <span class="verse-num">4 </span>Veri sanctus mel te, no vero
etiam iudicabit vis, cu dicat explicari reformidans vix.
</div>
<div>
<h3>Chapter 3</h3>
<span class="verse-num">1 </span>Pri homero comprehensam ex, ad nemore
suscipit appetere mel. Ex simul albucius vel. No est hinc graeco
nominavi. <span class="verse-num">2 </span>Erat fabulas ex qui. Eu vis
nonumy omnium scaevola, audiam elaboraret eos in.
</div>
</article>
我想摆脱 div,但不知道如何制作它们。如果可能的话,我想将其保留为有效的 HTML。我不能使用 p 标签,因为有时 h3 标签包含在一个标签中。我不能使用部分,因为并非所有部分都有 h3 标签。
我愿意完全重做 HTML(和 css),但我想避免使用 JavaScript,因为我认为它不适合。任何想法将不胜感激。
为清楚起见:我应该忽略语义(使用我拥有的),尝试使其中一个语义化而忽略另一个,还是使它们都在语义上有效?如果是后两者中的任何一个,如何?
/* Paragraph Mode styling = makes a div act like a <p> tag */
div {
-webkit-margin-before: 1rem;
-webkit-margin-after: 1rem;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
-moz-margin-start: 0px;
-moz-margin-end: 0px;
margin-bottom: 1rem;
margin-top: 1rem;
}
/* simple toggle styling */
label {
text-decoration: underline;
}
input[type=checkbox]:checked + label {
color: blue;
}
/* chapter styling */
input[type=checkbox]#verses:not(:checked) ~ article h3 {
display: inline;
font-size: 1rem;
font-weight: normal;
}
input[type=checkbox]#verses:not(:checked) ~ article h3:before {
content: "[";
}
input[type=checkbox]#verses:not(:checked) ~ article h3:after {
content: "]";
}
/* main toggle changes - makes things disappear */
input[type=checkbox]#verses:checked ~ #super-label,
input[type=checkbox]#verses:checked ~ #super,
input[type=checkbox]#verses:checked ~ #chapters-label,
input[type=checkbox]#verses:checked ~ #chapters,
input[type=checkbox]#chapters:not(:checked) ~ article h3,
span.verse-num {
display: none;
}
/* more chapter styling - not grouped above due to precedence issues that I'm to lazy to fix at the moment */
input[type=checkbox]#verses:checked ~ article h3 {
display: block;
margin-bottom: 0;
}
/* Verse Mode styling - make spans simulate <p> tags */
input[type=checkbox]#verses:checked ~ article span.verse-num:before {
content: '\A';
white-space: pre;
display: block;
}
input[type=checkbox]#verses:checked ~ article span.verse-num:after {
content: '';
display: inline-block;
width: .5rem;
}
/* Paragraph Mode styling - not grouped above due to precedence issues that I'm to lazy to fix at the moment */
input[type=checkbox]#verses:checked ~ article div,
input[type=checkbox]#verses:checked ~ article span.verse-num,
input[type=checkbox]#super:checked ~ article span.verse-num {
display: inline;
}
input[type=checkbox]#super:checked ~ article span.verse-num {
font-size: .83rem;
vertical-align: super;
}
/* Verse Mode styling - not grouped above due to precedence issues that I'm to lazy to fix at the moment */
input[type=checkbox]#verses:checked ~ article span.verse-num {
font-size: 1rem;
vertical-align: baseline;
}
<input type="checkbox" id="verses">
<label for="verses">Toggle Verses</label>
<input type="checkbox" id="chapters">
<label for="chapters" id="chapters-label">Toggle Chapters</label>
<input type="checkbox" id="super">
<label for="super" id="super-label">Verse numbers as superscript</label>
<article>
<h2>Book</h2>
<div>
<h3>Chapter 1</h3>
<span class="verse-num">1 </span>Lorem ipsum dolor sit amet, duo ei aliquam tincidunt, ut eos electram elaboraret, no nec falli omnesque. <span class="verse-num">2 </span>Eu cum nisl alia aeterno. Mediocrem eloquentiam ad mel, no idque moderatius mei,
sed legere inciderint no. Et nec brute essent sententiae.</div>
<div><span class="verse-num">3 </span>Sea ea omnes explicari repudiare, et eam graeco alterum eruditi, vim consulatu referrentur ad. Id eros nostrud mei, nibh adipisci has eu. Ei pri ipsum primis accommodare. <span class="verse-num">4 </span>Ignota copiosae
theophrastus ne qui, te suas essent molestiae nam. Tacimates patrioque quo ad.</div>
<div><span class="verse-num">5 </span>Nusquam appareat comprehensam has in. Qui melius labitur persequeris cu, no brute elitr libris eum.
<h3>Chapter 2</h3>
<span class="verse-num">1 </span>Voluptaria reformidans at sed, mollis ullamcorper sea id. Usu cu oblique voluptaria definitiones, dicant corpora iudicabit his an.</div>
<div><span class="verse-num">2 </span>Cum at illum facete corrumpit, aeque repudiare ad vim, cu has inimicus iudicabit. Qui eu interesset eloquentiam. Est ei nisl atqui, amet intellegat ea per. Integre adolescens id has, adhuc tibique corrumpit ut quo. Facer
assum singulis eu per, et mea vulputate necessitatibus. <span class="verse-num">3 </span>Ut ius facer tamquam erroribus, duo ei atqui dicunt liberavisse.</div>
<div>Quo mundi offendit adolescens ut, nisl illum vis an. Ne vis luptatum legendos, docendi vulputate omittantur usu eu. At mea luptatum iracundia, ridens laoreet contentiones an pro, eu diam partem inciderint mea. <span class="verse-num">4 </span>Veri sanctus
mel te, no vero etiam iudicabit vis, cu dicat explicari reformidans vix.</div>
<div>
<h3>Chapter 3</h3>
<span class="verse-num">1 </span>Pri homero comprehensam ex, ad nemore suscipit appetere mel. Ex simul albucius vel. No est hinc graeco nominavi. <span class="verse-num">2 </span>Erat fabulas ex qui. Eu vis nonumy omnium scaevola, audiam elaboraret
eos in.
</div>
</article>
最佳答案
将您的非语义片段传递给 W3 HTML Validator显示它是有效的 HTML,除了缺少 title
标签,这不是你做的。
至于语义有效性,这是一个真正基于观点的问题,但我会尝试解释我观点背后的原因。
我什至从来没有真正开始为语义烦恼,因为有太多的事情只能通过一些丑陋的解决方法来实现,其中大部分都以某种方式涉及滥用表格(例如,让一个元素填充它所在的任何父元素,或在 div 中垂直居中多行文本)。
我通常会尝试构建我的 HTML,这样才有意义,但对于某些位而言,这通常是不可能的。
对于某些东西,根本没有概念,比如可拖动的 block 。例如,如果您单击 SO 上的帖子下的“标记”链接,您会看到一个弹出窗口。该弹出窗口是 div
,至少在撰写本文时是这样。
现在,是div
正确的元素?关于W3 documentation ,“定义&用法”中有两行:
The
<div>
tag defines a division or a section in an HTML document.
据此,它应该以与<p>
相同的方式使用, 但对于 <p>
的 block 元素用于文本。
The
<div>
tag is used to group block-elements to format them with CSS.
据此,它几乎可以在任何地方使用,只要它包含一些 block 元素。
<span>
tag 也是如此, 仅适用于行内元素。
因此,如果您愿意,可以替换 div
你不喜欢 span
s,但这不是您想要的,对吧?
我认为对于你的例子,除了有几个预先格式化的隐藏 div 之外,你不可能让它在语义上有效,而你一次只显示一个。我认为这是不可能的,因为您正试图将相同的元素用于多种用途。一旦你有了一个流畅的文本,一旦你有了一个有序的经文列表,并且具有相同的元素?
语法上? - 没问题。语义上? - 没有机会。
我会随心所欲,但如果你真的想让它在语义上也有效,那么我相信你要么必须为每个显示状态创建一个隐藏的 div,并在更改选项时显示相应的 div ,或者(如 doveyg 建议的那样)以某种形式将您的文本存储在 JavaScript 中并动态创建显示的元素。
关于css - 冲突的布局会阻止语义 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119279/
我刚开始学习JSP技术,遇到了瓶颈。 如何从 JSP 声明 block ? 这不起作用: ... 服务器说没有“out”。 U: 我确实知道如何使用返回字符串的方法重写代码,但是有没有办法在 ?
在一个字段中,我想设置一个具有自定义过滤器的自定义分析器-着眼于词干-因此,“闪存卡”和“闪存卡”的词根相同,因此返回的结果相同 当我运行以下查询时,我的命中率很高,但是“闪存卡”和“闪存卡”各自返回
快速提问。 我有一个通过 PInvoke 使用 native DLL 的应用程序,这个 DLL 可能会调用 PostQuitMessage()。 如何避免? (因为我的应用程序不应该关闭) 我试过 A
一些给定的 HTML 文章,例如: Content 与一些基本的 Jquery 结合使用,例如: $(".some_
我正在构建一个灯箱相册。当第一个图像加载时,CSS 转换起作用。当加载后的每个图像都没有。任何想法为什么?加载第一张之后的照片,但没有过渡。 Image.prototype.load = functi
这个问题在这里已经有了答案: Disable recent tasks button on Android 5.0 (2 个答案) 关闭 2 年前。 我知道这个问题之前在这里被问过 Android
我是 Objective-C 的新手,我只是想弄清楚我是否可以使用 block 或选择器作为 UIAlertView 的 UIAlertViewDelegate 参数 - 哪个更合适? 我已经尝试了以
我是 Linux (UNIX) 套接字下套接字编程的新手。我在 Internet 上找到了以下代码,用于为每个连接生成一个线程的 tcp 服务器。但是它不起作用。accept() 函数立即返回,不等待
recv()库函数手册页提到: It returns the number of bytes received. It normally returns any data available, up
我有一个用于其他项目的共享 ts 库。在这个库中有被同一个库的其他资源使用的资源。该库的结构分为 components/*、interfaces/*、services/* 等目录。在每个目录的根目录中
我想在同一行中一个接一个地显示我的 ListView ,但 ListView 显示每个新行中的每个项目。我怎样才能防止换行显示。以便它显示为段落 ListView.builder( shr
我有一个包含数千行的表格。 import React from "react" import { useSelector } from "react-redux"; import { useEffec
假设我通常希望收到关于代码中不完整模式的警告,但有时我知道某个函数的模式不完整,我知道这很好。 是still true GHC 的警告粒度是每个模块的,并且没有办法更改有关特定功能或定义的警告? 最佳
我的网络应用程序发送浏览器通知,我知道如何检查通知的浏览器权限,以及如果未授予权限,如何请求权限。 但是,即使用户授予我的站点发送通知的权限,她可能仍然无法收到通知,因为它们 might be dis
我有 Xcode 3.2.1,并且喜欢使用它,但是当我编辑文本中带有超链接的文件时(例如,带有引用的注释:# see http://example.com)Xcode 将文本变成可点击的超链接。尝试编
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我有一个在 MY_Controller 中运行的 acl。如果权限被拒绝,那么此刻,我只是执行 redirect('denied') - 这是一个非常基本的 Controller ,它加载一个非常基本
我一直很好奇尝试从 Chrome 切换到 Firefox Quantum,但是对于 Web 开发遇到了一个我无法轻松解决的主要障碍——它正在缓存我的本地主机文件,因此当我尝试在本地主机加载各种 emb
这真的让我很兴奋!在任何时候,我都会参与多个项目。当我退出Xcode时,下次打开Xcode时,我前一天的所有项目都会自动一一打开。 经常我最终编辑错误的文件,AHHHHHHHHHHH!我可以阻止这种行
我的Wiki上有500个左右的Spambot和大约5个实际注册用户。我已经使用nuke删除了他们的页面,但是他们一直在重新发布。我已经使用reCaptcha控制了spambot的注册。现在,我只需要一
我是一名优秀的程序员,十分优秀!