简述

上节分享了clip-path来实现一个剪切横幅,本节通过另外一种方式来实现一个更经典的横幅。

最终效果

我们先看一下最终要实现的效果。

我们要实现这样一个效果,首先需要将其进行上下分割,上面为一个红色背景右边有剪切三角且下边带阴影效果的样式,下面是一个黑色小三角。

为了实现这个效果,我们一步步分析,先从小三角入手。

小三角

为了更容易理解过程,将其拆分为以下几步。

效果

源码

下面我们实现一个<div>,其宽度为50px,边框为20px,这里为了凸显效果,左、上、右、下边框的颜色分别设置为红、绿、蓝、橙。

<!DOCTYPE html>
<html>
<head>
<style type='text/css'> .bord {
width: 50px;
border: 20px solid #fff;
border-left-color: red;
border-top-color: green;
border-right-color: blue;
border-bottom-color: orange;
} </style>
</head>
<body>
<div class="bord"> </div>
</body>
</html>

这个显然不满足我们三角的需求,好的我们再分析,小三角为上边框和右边框组合而成,但是由于宽度过大会造成不能均分,这时我们再进行一下设置。

看效果:

注意:这里只改动了这一处代码

.bord {
width: 0px;
...
}

如果我们将左边框、下边框设置为透明,上边框、右边框设置会黑色不正好是我们想要的效果么。有点意思,我们不妨试试。

.bord {
width: 0px;
border: 20px solid #000;
border-left-color: transparent;
border-bottom-color: transparent;
}

是不是很喜人呢O(∩_∩)O~。

阴影分割

三角实现了,那么阴影分割可以参考上一节的实现。

效果

源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type='text/css'>
.bord {
position: relative;
margin: 50px;
} .bord:before {
content: "青春不老,奋斗不止!纯正开源之美,有趣、好玩、靠谱。。。";
position: absolute;
color: #fff;
font-weight: bold;
height: 0px;
border: 20px solid #a20000;
/* 设置右边框透明 */
border-right-color: transparent;
line-height: 0px;
box-shadow: 0 8px 8px -5px rgba(0, 0, 0, 0.75);
z-index: 1;
} body {
font-size: 13px;
}
</style>
</head>
<body>
<div class="bord"> </div>
</body>
</html>

这里主要说一下border-right-color: transparent。由于高度为0,边框为20px,所以这行样式和上面看到的一样将出现一个锯齿三角。

合并

将上面分别实现的两部分合并即可。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type='text/css'>
.bord {
position: relative;
margin: 50px
} .bord:before {
content: "青春不老,奋斗不止!纯正开源之美,有趣、好玩、靠谱。。。";
position: absolute;
/* 设置右内边距,防止文本显示不全 */
padding-right: 15px;
color: #fff;
font-weight: bold;
height: 0px;
border: 20px solid #a20000;
/* 设置右边框透明,实现剪切的三角 */
border-right-color: transparent;
line-height: 0px;
box-shadow: 0 8px 8px -5px rgba(0, 0, 0, 0.75);
z-index: 1;
} .bord:after {
content: "";
/* 设置距离上边缘的距离 */
top: 40px;
position: absolute;
border: 4px solid #000;
border-left-color: transparent;
border-bottom-color: transparent;
} body {
font-size: 13px;
}
</style>
</head>
<body>
<div class="bord"> </div>
</body>
</html>

注意:

由于上部分的边框为20px,所以也就是说,高度为上下边框之和,即:40px,所以下面的小三角必须设置距离上边缘的距离top: 40px。否则,显示的位置就会出现错乱。

CSS之切出横幅的更多相关文章

  1. Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题

    最近项目中遇到一个问题,用户第一次安装应用在系统的安装器安装完成界面有“完成”和“打开”两个按钮. 当用户点击“打开”按钮进入用户注册页面进行手机号验证码发送和验证码输入等操作界面,若此时用户点击Ho ...

  2. svn 切出指定版本、更改版本名称、删除分支

    1,切出指定版本 svn copy svn://192.168.1.52/help/branches/help_forShop_140307 -r 170 svn://192.168.1.52/hel ...

  3. 学习笔记:只有一套app设计稿(5s尺寸)切出4和4s尺寸以及安卓系统主流尺寸的图

    如何在只有一套app设计稿(5s尺寸)切出4和4s尺寸以及安卓系统主流尺寸的图 转自:http://www.zhihu.com/question/23255417   版权归原作者所有 目前ios手机 ...

  4. 【技能】使用纯CSS+html写出方向箭头,简单慷慨,好看

    使用纯CSS+html写出方向箭头,贴出来就能够用,100%原创 <html> <head> <title></title> <meta http ...

  5. CSS代码写出的各种形状图形

    做网页设计时经常要用到各种形状的图形,对于规则的图形很简单,但是对于不规则的图形,一般我们都是用图片,今天就在这里教大家怎样用css代码写出各种规则不同的图形 1.正方形 #square {width ...

  6. 教你用CSS代码写出的各种形状图形

    做网页设计时经常要用到各种形状的图形,对于规则的图形很简单,但是对于不规则的图形,一般我们都是用图片,今天就在这里教大家怎样用css代码写出各种规则不同的图形 1.正方形 #square {width ...

  7. JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法

    本文实例讲述了js+CSS实现弹出一个全屏灰黑色透明遮罩效果的方法.分享给大家供大家参考.具体分析如下: 在众多的网站都有这样的效果,当进行一定的操作之后,会弹出一个灰黑色的半透明的遮罩,在上面可以操 ...

  8. cocos2dx 3.3 场景切出时RenderTexture crash

    在cocos2dx 3.3中下面myScene在切出时会存在概率性崩溃(代码作了最大程度简化,仅为说明问题): class CmyLayer:public Layer{ public: CmyLaye ...

  9. 文字添加响应事件,js动态加载CSS, js弹出DIV

    文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

随机推荐

  1. static_cast和reinterpret_cast

    static_cast和reinterpret_cast 相同点:都是暴力转换,从一个类型转换为另一个类型,对于类指针不会保证安全性   static_cast和reinterpret_cast的区别 ...

  2. 金融证券协议FIX/FAST/STEP

    金融信息交换协议FIX是适用于实时证券.金融电子交易的数据通信标准.它是把各类证券金融业务需求流程格式化,使之成为一个可用计 算机语言描述的功能流程,并在每个业务功能接口上统一交换格式.STEP(Se ...

  3. POJ 1422

    #include <iostream> #define MAXN 350 using namespace std; int mat[MAXN][MAXN]; bool mark[MAXN] ...

  4. 重载和覆盖的区别?(overload vs override)

    override与overload的区别? override 表示重写,overload 表示重载.override是子类和父类之间的关系,是垂直关系:overload是同一个类中方法之间的关系,是水 ...

  5. HDU 1392 Surround the Trees (Graham求凸包周长)

    题目链接 题意 : 让你找出最小的凸包周长 . 思路 : 用Graham求出凸包,然后对每条边求长即可. Graham详解 #include <stdio.h> #include < ...

  6. poj 3621(最优比率环)

    题目链接:http://poj.org/problem?id=3621 思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优比率环,很是熟悉,可惜精度没控制好,要不就是wa,要不 ...

  7. HtmlAgilityPack 之 HtmlNode类

    HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异.下面来看看该类提供功能. 一.静态属性 public static Dictionary<st ...

  8. MongoDB (八) MongoDB 文档操作

    一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基 ...

  9. 网络安装之Redhat衍生版

    GNU/Linux开源,这个意义实在是非常的广泛,目前在distrowatch上表现活跃的300个发行版代表了GNU/Linux的主流,然而细心的Linux爱好者会发现CentOS-based dis ...

  10. iOS开发--iOS及Mac开源项目和学习资料

    文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecl ...