Это jsfiddle ..Positioning отключает при наведении курсора селекторные и события наведения мыши
https://jsfiddle.net/9e1wd245/12/
..demonstrates поведение браузера, я хотел бы понять лучше, чем я.
Если вы удаляете позиционирование из крошки и крошки, выбранный наклонный CSS применяется, когда крошка зависнет, а события мыши начинают срабатывать, когда мышь входит в крошку.
С позиционированием на месте, ни одна из этих вещей не происходит; но если вы наведите указатель мыши на верхнюю границу , применяется наклонный CSS и запускается событие mouseover.
(В этой ситуации используется подход использует позиционирование для того, чтобы г-индексацию так, что изогнутая правая граница появится над левой стороной соседних элементов.)
Обратите внимание, что вы можете принять отрицательное правое поле и проблема остается, поэтому она не вызвана отрицательной маржой.
Я понимаю, что могу использовать svg для крошки или, возможно, использовать пару элементов разделителя на общем фоне вместо использования позиционирования и z-индексации, но почему это не работает? Есть ли что-то в спецификации, которая говорит, что события с зависанием и мыши не должны работать для позиционированных элементов? Есть ли что-то еще, что я игнорирую?
HTML:
<div class="crumbtray">
<span class="crumb">USA</span>
<span class="crumb">California</span>
<span class="crumb">Sacremento</span>
</div>
CSS:
.crumbtray {
position: relative;
top: 0px;
left: 0px;
display: inline;
z-index: -10;
font-family: ariel, sansserif
font-size: 12px;
}
.crumb {
position: relative;
top: 0px;
left: 0px;
display: inline;
border: solid 1px gray;
border-left: none;
border-radius: 0px 10px 10px 0px;
padding: 0px 8px 0 12px;
margin-right: -10px;
cursor: pointer;
background: #c3f4c6;
background: -moz-linear-gradient(top, #c3f4c6 0%, #96f788 8%, #98e0a4 92%, #419330 96%, #188700 100%);
background: -webkit-linear-gradient(top, #c3f4c6 0%,#96f788 8%,#98e0a4 92%,#419330 96%,#188700 100%);
background: linear-gradient(to bottom, #c3f4c6 0%,#96f788 8%,#98e0a4 92%,#419330 96%,#188700 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c3f4c6', endColorstr='#188700',GradientType=0);
}
.crumb:hover {
background: none;
background-color: yellow;
}
.crumb:first-child {
border-left: solid 1px gray;
z-index: 60;
padding-left: 2px;
}
.crumb:nth-child(2) {
z-index: 50;
}
.crumb:nth-child(3){
z-index: 40;
}
JavaScript:
var ViewModel = {
init: function(){
console.log("ViewModel.init called");
$('.crumbtray').on('mouseover','span',function(){
console.log('mouseover crumb: ', this);
});
}
};
$(ViewModel.init);
«подход, используемый использует позиционирование, чтобы позволить г -индексирование "Вам не нужно размещать элемент для использования индексации z zz – Shelvacu
Каждая ссылка, которую я прочитал на z-indexing, указывает, что вы это делаете, в том числе: http://www.w3schools.com/cssref/ pr_pos_z-index.asp, не говоря уже о самой спецификации, и если вы выберете позицию из скрипки, вы увидите, что z-индексация больше не работает. – Shavais
Вы правы, извините. Игнорируй меня. – Shelvacu