Javascript 这是正确的标记-空元素还是使用css/js来实现相同的效果
我有一种情况,我需要在两个项目之间有一个分隔符,如图所示。我可以想出两种方法来实现这一点 1) 在项目之间放置一个空白范围,并将其设置为分隔符 HTML: 2) 使用:在第二项的psuedo选择器之前,并相应地设置其样式 HTML: 扑通 plunk适用于选项1和2的组合,如果您想查看,请取消评论 现在,我有一个动作,当用户点击第二个项目时,这是一个模式弹出窗口,第二个项目被突出显示,即它在背景上方 如果我使用上面的2),即:before,然后我单击第二项,模态弹出框显示,第二项高亮显示,但分隔符也高亮显示,因为从技术上讲它位于该元素内部。我不想那个分隔符被高亮显示,所以,为了让它看起来像是褪色的,我写了几行js来切换它的不透明度(点击第二项),使它看起来像是褪色的 如果我使用1)即空跨度,那么根本就没有问题,不需要编写js,它可以很好地工作 所以,我这里的问题是 应使用空范围 或 使用:在之前做一些jsJavascript 这是正确的标记-空元素还是使用css/js来实现相同的效果,javascript,html,css,semantics,pseudo-class,Javascript,Html,Css,Semantics,Pseudo Class,我有一种情况,我需要在两个项目之间有一个分隔符,如图所示。我可以想出两种方法来实现这一点 1) 在项目之间放置一个空白范围,并将其设置为分隔符 HTML: 2) 使用:在第二项的psuedo选择器之前,并相应地设置其样式 HTML: 扑通 plunk适用于选项1和2的组合,如果您想查看,请取消评论 现在,我有一个动作,当用户点击第二个项目时,这是一个模式弹出窗口,第二个项目被突出显示,即它在背景上方 如果我使用上面的2),即:before,然后我单击第二项,模态弹出框显示,第二项高亮显示,但分隔
哪一个在语义上正确,哪一个在页面上的负担更小。我将使用第二个解决方案,因为分隔符对于(可能有障碍的)用户理解上下文可能不是必需的。我将使用第二个解决方案,因为分隔符对于(可能有障碍的)用户可能不是必需的用户理解上下文。两种方法在语义上都是正确的。 我建议使用
方法,这样您就可以移动第二个图标,而不用担心分隔符的位置
可以肯定的是::before更消耗性能(绝对不明显)
- 请记住,您还可以使用边框制作简单的分隔符
方法,这样您就可以移动第二个图标,而不用担心分隔符的位置
可以肯定的是::before更消耗性能(绝对不明显)
- 请记住,您还可以使用边框制作简单的分隔符
<body>
<nav>
<section class="icon1">Icon1</section>
<span class="separator"></span>
<section class="icon2">Icon2</section>
</nav>
</body>
nav {height:40px; background:yellow; width:300px; padding:0 10px;}
.icon1{ background:green; width:40px; height:100%; float:left;}
.icon2 {background:red; width:40px; height:100%; float:left;}
.separator{width:2px; height:100%; background:blue; float:left;}
<body>
<nav>
<section class="icon1">Icon1</section>
<section class="icon2">Icon2</section>
</nav>
</body>
nav {height:40px; background:yellow; width:300px; padding:0 10px;}
.icon1{ background:green; width:40px; height:100%; float:left;}
.icon2 {background:red; width:40px; height:100%; float:left;}
.icon2:before{content:""; border-left:2px solid blue; position:absolute; height:40px;}