首页 > web前端 > css教程 > 正文

纯CSS实现丝带上扬效果

高洛峰
发布: 2017-02-15 13:28:27
原创
1622人浏览过

利用hover动作改变p的margin-top可以使小模块向上走,同时在小模块的屁股下面放两个沿对角线分成两种颜色的正方形,相对小模块绝对定位,便可以制造出简单的立体上扬效果。
丝带的两头和上扬的阴影部分用border实现就可以了。


不过有一个细节需要注意:
如果是导航条的话,p里放a标签,a标签里还要再放span标签;我之前也觉得多此一举,结果证明这个span是大有用处的。
因为a必须要比span高,然后overflow:hidden,才能把魔术不该露出来的部分遮住,该露出来的部分留有余地。
然后span和p:before和p:after需要设置margin-top为正,margin-top的值正好等于a比span高出来的值。
hover动作的时候再设置margin-top:0px;,屁颠屁颠往上走。
那你说,我span和p:before和p:after都不设置margin-top,hover动作的时候再设置margin-top为负,数值等于a比span高出来的值,可不可以呢?
不可以!
纯CSS实现丝带上扬效果

纯CSS实现丝带上扬效果

第一种情况,a多出来的部分是往上走的,魔术才能成功;
钻牛角尖的情况呢,a多出来的部分往下走,走光了有没有?
事实证明啊,喜欢钻牛角尖的女生最受欢迎了yeah!
纯CSS实现丝带上扬效果

html代码:

立即学习前端免费学习笔记(深入)”;

<p>
    <a href="#"><span>青龙</span></a>
    <a href="#"><span>白虎</span></a>
    <a href="#"><span>玄武</span></a>
    <a href="#"><span>朱雀</span></a>
</p>
登录后复制
登录后复制

css代码:

p{
    width:500px;
    margin:200px auto 0px;
}
p:before{
    content:"";
    border:25px solid;
    border-color:#ccc #ccc #ccc transparent;
    margin-top:10px;
    float:left;
}
p:after{
    content:"";
    border:25px solid;
    border-color:#ccc transparent #ccc #ccc;
    margin-top:10px;
    float:left;
}
p span{
    display:inline-block;
    width:100px;
    line-height:50px;
    margin-top:10px;
    text-align:center;
    background:#ccc;
    position:relative;
    transition: background-color 0.5s, margin-top 0.3s;
}
p a{
    color:#000;
    text-decoration:none;
    height:60px;
    overflow:hidden;
    float:left;
}
p span:before{
    content:"";
    border-right:10px solid #000;
    border-bottom:10px solid #ccc;
    position:absolute;
    top:50px;
    left:0px;
}
p span:after{
    content:"";
    border-left:10px solid #000;
    border-bottom:10px solid #ccc;
    position:absolute;
    top:50px;
    right:0px;
}
p a:hover span{
    margin-top:0px;
    background:#0cf;
}
登录后复制
登录后复制

                                               


利用hover动作改变p的margin-top可以使小模块向上走,同时在小模块的屁股下面放两个沿对角线分成两种颜色的正方形,相对小模块绝对定位,便可以制造出简单的立体上扬效果。
丝带的两头和上扬的阴影部分用border实现就可以了。


不过有一个细节需要注意:
如果是导航条的话,p里放a标签,a标签里还要再放span标签;我之前也觉得多此一举,结果证明这个span是大有用处的。
因为a必须要比span高,然后overflow:hidden,才能把魔术不该露出来的部分遮住,该露出来的部分留有余地。
然后span和p:before和p:after需要设置margin-top为正,margin-top的值正好等于a比span高出来的值。
hover动作的时候再设置margin-top:0px;,屁颠屁颠往上走。
那你说,我span和p:before和p:after都不设置margin-top,hover动作的时候再设置margin-top为负,数值等于a比span高出来的值,可不可以呢?
不可以!
纯CSS实现丝带上扬效果

纯CSS实现丝带上扬效果

第一种情况,a多出来的部分是往上走的,魔术才能成功;
钻牛角尖的情况呢,a多出来的部分往下走,走光了有没有?
事实证明啊,喜欢钻牛角尖的女生最受欢迎了yeah!
纯CSS实现丝带上扬效果

html代码:

立即学习前端免费学习笔记(深入)”;

<p>
    <a href="#"><span>青龙</span></a>
    <a href="#"><span>白虎</span></a>
    <a href="#"><span>玄武</span></a>
    <a href="#"><span>朱雀</span></a>
</p>
登录后复制
登录后复制

css代码:

p{
    width:500px;
    margin:200px auto 0px;
}
p:before{
    content:"";
    border:25px solid;
    border-color:#ccc #ccc #ccc transparent;
    margin-top:10px;
    float:left;
}
p:after{
    content:"";
    border:25px solid;
    border-color:#ccc transparent #ccc #ccc;
    margin-top:10px;
    float:left;
}
p span{
    display:inline-block;
    width:100px;
    line-height:50px;
    margin-top:10px;
    text-align:center;
    background:#ccc;
    position:relative;
    transition: background-color 0.5s, margin-top 0.3s;
}
p a{
    color:#000;
    text-decoration:none;
    height:60px;
    overflow:hidden;
    float:left;
}
p span:before{
    content:"";
    border-right:10px solid #000;
    border-bottom:10px solid #ccc;
    position:absolute;
    top:50px;
    left:0px;
}
p span:after{
    content:"";
    border-left:10px solid #000;
    border-bottom:10px solid #ccc;
    position:absolute;
    top:50px;
    right:0px;
}
p a:hover span{
    margin-top:0px;
    background:#0cf;
}
登录后复制
登录后复制

更多纯CSS实现丝带上扬效果 相关文章请关注PHP中文网!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
css
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号