1

我正在尝试创建一个不会影响其余布局的悬停事件。似乎 z-index 是这样做的方法,但我无法让它工作。我试图坚持使用 css,但 jQuery 是可行的。

完整的应用程序:http: //jsfiddle.net/9cRdq/

html

<div class="big-square" id="br">
    <div class="little-square" id="br-tl"></div>
    <div class="little-square" id="br-tr"></div>
    <div class="little-square" id="br-bl"></div>
    <div class="little-square" id="br-br"> </div>
</div>

css

.big-square
{
    position: relative;
    z-index: 1;
    font-size: 2em;
    float: left;
    width: 30%; 
    min-width: 4em;
    min-height: 4em;
    margin: 0 2% 2% 0;
    background: #000;
}
.little-square
{
    position: relative;
    z-index: 1;
    cursor: pointer;
    float: left;
    width: 48%; 
    height: 48%;
    background: #cd2626;
}
.little-square:hover
{
    z-index: 1000;
}

jQuery

$(document).ready(resizeBigSquare);
window.onresize = resizeBigSquare;
function resizeBigSquare() {
    $('.big-square').css(
        {
            'height': ($('.big-square').width() * .85) + 'px',
            'line-height': ($('.big-square').width() * .85) + 'px'
        });
    $('.little-square, .rectangle-top, .rectangle-bottom').css(
        {
            'line-height': $('.little-square').height()+ 'px'
        });
}
4

1 回答 1

1

z-index对悬停的更改工作得很好。事实上,这里有一个 fiddle显示它通过使用box-shadow. 当您将 div.little-square悬停在它上面时,它实际上是在它的同行之上,否则box-shadow会夹在其他人的后面。

请注意,z-index仅影响 z 轴上的堆叠顺序,不影响其他(大小、颜色等)

如果您希望在悬停时更改div.little-square的大小(不破坏网格),请考虑在每个正方形内创建一个子元素。然后,应用position:absolute到新的子元素,将小方块的一些属性传递给它,并相应地设置它的悬停状态。这个小提琴有一个我正在谈论的例子。

于 2012-08-22T19:39:35.240 回答