html – 如何防止css3中的变换比例影响孩子?

HTML

<div class="wrapper">
    <div class="parent">
        <div class="child">
            lorem ipsum
        </div>
    </div>
</div>

CSS

.wrapper {
    width: 300px;
    height: 300px;
    margin: 30px auto;
    border: 1px dashed #ccc;
    overflow:hidden;
}

.parent {
    width: 1px;
    height: 100px;
    background-color: #f00;
    opacity: 0;
    margin: 0 auto;
    -webkit-transition: all 0.4s ease;
            transition: all 0.4s ease;
}

.wrapper:hover .parent {
    opacity: 1;
    -webkit-transform: scaleX(300);
            transform: scaleX(300);
}

.wrapper . parent .child {
    -webkit-transform: none;
            transform: none;
}

我想在悬停.wrapper div时仅缩放.parent元素.但它也会影响两个div(父级和子级),尽管为.child div提供transform:none属性.如何防止.child受到影响?

http://jsfiddle.net/cdmkoao4/1/

解决方法

而不是变换:scaleX尝试改变宽度

.wrapper:hover .parent {
    opacity: 1;
    width: 100%;
}

http://jsfiddle.net/cdmkoao4/3/

更新:

老实说,我没有看到任何理由为什么你会使用scaleX而不是宽度,但这是我想出的唯一解决方案.只是不要将.child与.parent嵌套,使它们成为单独的div,其位置为:absolute.在悬停时,你只使用scaleX .parent,而你只改变.child的不透明度(我仍然使用相同的类,即使它们不再具有父子状态).

http://jsfiddle.net/cdmkoao4/9/

你需要玩转换延迟时间来获得你想要的确切效果.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些