如何获得具有z-index的div以将鼠标悬停在另一个div上

问题描述 投票:5回答:4

我有一个容器div,内部有几个较小的div:s,所有容器都带有float:left;。如果我将鼠标悬停在较小的div:s之一上,则heightwidth应该增加,并且应该覆盖其他div:s,而不移动它们。

HTML:

 <div id="boxcontainer">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
 </div>

CSS:

.box {
  float:left;
  position: relative;
  width:150px;
  height:150px;
  margin:5px;
  background-color: yellow;
}

#boxcontainer {
  position: relative;
  width:500px;
  height:auto;
}

.box:hover {
  z-index:100;
  width:300px;
  height:auto;
}

我该如何实现?

css hover position z-index
4个回答
12
投票

z-index仅适用于定位的元素 ((位置:绝对,位置:相对,或位置:固定)

而不是向左浮动尝试位置绝对值。

我已经在每个盒子周围添加了一个容器,并将每个元素完全放置在其中。这样,您可以根据需要添加任意数量的框并保持相同的类。

示例

HTML

<div id="boxcontainer">
    <div class="box">
        <div class="Inside"></div> 
    </div>         
    <div class="box">
        <div class="Inside"></div> 
    </div>         
    <div class="box">
        <div class="Inside"></div> 
    </div>     
</div>

CSS

#boxcontainer{
    position: relative;
    width:500px;
    height:500px;
}
.box{
    position:relative;
    float:left;
    width:150px;
    height:150px;
    margin:5px;
}
.Inside{    
    background:green;
    position:absolute;
    top:0;
    left:0;
    width:150px;
    height:150px;
    transition:all 0.5s ease-in-out;
    -webkit-transition:all 0.2s ease-in-out;
}
.Inside:hover{
    z-index:100;
    width:250px;
    height:250px;
    background:#666666;
}

http://jsfiddle.net/JJ3v4/3/


1
投票

实时演示:http://jsfiddle.net/hKL4f/1/

我认为做您想要的事的最简单方法是使用CSS变换。

.box:hover {
    transform: scale(2, 2);
}

这样,您就可以在悬停时更改元素的尺寸,而不会影响周围文档流中的任何其他元素。

如果您希望框以不同的方式扩展(即,向右和向下而不是向所有方向扩展),则可以设置transform-origin属性(默认为50%50%)。


0
投票

尝试一下...有些有用

     .box{
   float:left;
 postion: fixed;
 width:150px;
 height:150px ; 
 margin:5px;
 background-color: yellow;
 }

 #boxcontainer{
 postion: fixed;
 width:500px;
 height:auto;
 }

 .box:hover{
 z-index:1;
 width:260px;
height:160px;
 position:absolute;

 }

0
投票

当我将鼠标悬停在项目上时,我在项目中遇到了相同的问题,该框会更改其宽度和高度,但也会影响其他框,因此要解决此问题,最好的方法是使用以下transform属性

.box:hover {
    transform: scale(1.2 , 1.2);  // This increses the dimmensions of the box and overlay 
                                       to others boxes without disturbing others  
}
© www.soinside.com 2019 - 2024. All rights reserved.