微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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/

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐