Я создаю меню с вкладками с изображениями SVG в качестве фона. Мне нужно, чтобы вкладки перекрывали друг друга в обратном порядке - первая над второй, вторая над третьей. И мне нужна тень svg, чтобы работать в Firefox.
Однако, когда я применяю тень, z-индекс элемента .after нарушается, что нарушает перекрытие. Есть ли способ изменить порядок укладки/исправить это? Вот пример источника:
div{
background-color: grey;
padding-top:20px;
padding-bottom: 20px;
}
ul.tabs-nav{
margin: 0px;
padding: 0px;
list-style-type: none;
margin-left: 10px;
height: 40px;
overflow: hidden;
}
ul.tabs-nav li{
margin: 0px -38px 0px 0px;
padding: 0px;
display: block;
float: left;
text-decoration: none;
filter: url("#drop-shadow");
}
ul.tabs-nav li a{
background-color: #5d6c7a;
text-decoration: none;
height:40px;
line-height: 40px;
float:left;
color: white;
font-size: 14px;
vertical-align: baseline;
padding-left: 10px;
padding-right: 10px;
}
ul.tabs-nav span.before{
background-image: url("https://dl.dropboxusercontent.com/u/10056766/fiddle/tab_grey.svg");
background-position: left top;
display: block;
float: left;
height: 40px;
width: 40px;
position: relative;
}
ul.tabs-nav span.after{
background-image: url("https://dl.dropboxusercontent.com/u/10056766/fiddle/tab_grey.svg");
background-position: right top;
display: block;
float: left;
height: 40px;
width: 40px;
position: relative;
z-index:1;
}
ul.tabs-nav li:first-child span.before{
background-image: url("https://dl.dropboxusercontent.com/u/10056766/fiddle/tab_white.svg");
background-position: left top;
display: block;
float: left;
height: 40px;
width: 40px;
position: relative;
}
ul.tabs-nav li:first-child span.after{
background-image: url("https://dl.dropboxusercontent.com/u/10056766/fiddle/tab_white.svg");
background-position: right top;
display: block;
float: left;
height: 40px;
width: 40px;
position: relative;
z-index:1;
}
ul.tabs-nav li:first-child a{
background-color: white;
color: black;
}
<div>
<ul class="tabs-nav" style="padding: 0;">
<li style="z-index: 10;" class="tab
tabs-active
"><span class="before"></span><a href="/foo.jsp" class="">User</a><span class="after"></span></li>
<li style="z-index: 8;" class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Developer</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Users</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Roles</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Attributes</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Screens</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Locales</a><span class="after"></span></li>
<li class="tab
"><span class="before"></span><a href="/foo.jsp" class="">Providers</a><span class="after"></span></li>
</ul>
</div>
<svg height="0" xmlns="http://www.w3.org/2000/svg">
<filter id="drop-shadow">
<feGaussianBlur in="SourceAlpha" stdDeviation="2.2"/>
<feOffset dx="12" dy="2" result="offsetblur"/>
<feFlood flood-color="rgba(0,0,0,0.2)"/>
<feComposite in2="offsetblur" operator="in"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</svg>
http://jsfiddle.net/mark_bacon/5vnefef5/3/
Отключите фильтр элемента li, и вы увидите, как это должно выглядеть.