z-index与nth-child无法正常工作

Aks*_*hay 2 html css jquery jquery-ui

我在这里有三个可排序的列表,但我不希望他们的属性在他们的位置改变时改变.例如我可以防止他们的颜色改变但不能做同样的事情,z-index我在nth-child这里使用这个是我的代码http://codepen.io/anon/pen/pvEdMw

HTML

<ul>
<li>aaa</li>
<li>aaaasdsd</li>
<li>fgf</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS

li{
position:relative;
background-color:orange;
}

li:nth-child(1){
box-shadow:2px 2px 2px black;
z-index:3;
color:red;
}

li:nth-child(2){
box-shadow:2px 2px 2px black;
z-index:2;
color:blue;
} 

li:nth-child(3){
box-shadow:2px 2px 2px black;
z-index:1;
color:green;
}
Run Code Online (Sandbox Code Playgroud)

JQuery的

$('ul').sortable();
Run Code Online (Sandbox Code Playgroud)

t.n*_*ese 5

sortablejquery-ui的功能也可以使用z-index.它直接修改style元素,并设置z-index覆盖您的样式.

你如何的一种方法解决 这个问题是使用!importantz-index.

li:nth-child(1){
  box-shadow:2px 2px 2px black;
  z-index:3 !important;
  color:red;
}
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢使用!important它,因为它可能会破坏你的其他规则,并会使你的css代码更难维护.

另一种方法是挂接到stop回调和清理z-index组由sortable插件.

$('ul').sortable({
  stop: function( event, ui ) {
    $(this).find('li').css('z-index','');
  }
});
Run Code Online (Sandbox Code Playgroud)