2013-08-30 64 views
0

是否这样?在列表标签​​之间放置DIV标签有效吗?

<li>Menu1</li><div></div> 
<li>Menu2</li><div></div> 

我这样做的原因是使用CSS来设置div的样式来制作带有渐变的分隔符。

+1

也许可以添加空li标签,并且您可以为其添加样式 –

+0

否 - @ user1209203为什么需要添加它们?如果你想要一些风格,只需添加一个'span'并使其成为'display:block;'给它一个div的特征。 – Nitesh

+0

我只是使用图像背景,我希望只使用CSS – user1209203

回答

2

没有。您可以检查自己的位置:http://validator.w3.org/

可能能够得到使用CSS伪元素::after,这取决于你如何造型你<li>提供了一个类似的结果。

E.g.

li { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
    display: inline-block; 
} 

li::after { 
    display: inline-block; 
    content: ""; 
    width: 10px; 
    height: 10px; 
    background: #000; 
} 

根据需要应用梯度的背景。

请注意,要支持IE8,您需要使用旧语法:after,而IE 7根本不支持此伪元素。

+0

这是一个非常整洁的解决方案,我可以避免将伪元素添加到最后一个列表项,但? – user1209203

+1

这个作品李:不(:最后孩子)::之后 – user1209203

+0

@ user1209203:是的,点上。请注意,IE8不支持':not()'。如果你想支持IE8,你可以使用':before'而不是':: after',并且添加'li:first-child:before {display:none;}'(我认为)。 –

1

不!检查它:http://validator.w3.org/

编辑验证此程序,看看它是不是有效的:

<!doctype html> 
<html lang="en"> 

    <head> 
     <meta charset="UTF-8"> 
     <title>Document</title> 
    </head> 

    <body> 
     <ul> 
      <li>Menu1</li> 
      <div></div> 
      <li>Menu2</li> 
      <div></div> 
     </ul> 
    </body> 

</html> 
+1

这在所有浏览器中都没有任何问题? –

+2

工作没有任何问题,这并不意味着它应该使用;) – everydayghost

+0

@StefanBrendle:总是?在所有情况下?没有问题吗?浏览器之间完全一致?你确定? –

1

您更好地使用这样的,

<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 

<body> 
    <ul> 
     <li>Menu1</li> 
     <li><div></div></li> 
     <li>Menu2</li> 
     <div></div> 
    </ul> 
</body>