简述

上节分享了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. Delphi中有序型

    有序类型包括:.integer(整型).character(字符型).boolean(布尔型).enumerated(枚举型).subrange(子界型)有序类型定义了一组被排序的值.每个相异值都有唯 ...

  2. (转)8 reviews about de novo genome assembly

    转自:http://dskernel.blogspot.com/2012/04/8-reviews-about-de-novo-genome-assembly.html 8 reviews about ...

  3. Linux网络编程10——使用UDP实现五子棋对战

    思路 1. 通信 为了同步双方的棋盘,每当一方在棋盘上落子之后,都需要发送给对方一个msg消息,让对方知道落子位置.msg结构体如下: /* 用于发给对方的信息 */ typedef struct t ...

  4. 妙味课堂——HTML+CSS(第四课)(二)

    单开一篇来讲一个大点的话题——清浮动    来看下例: <!DOCTYPE html> <html> <head> <meta charset="U ...

  5. CyclicBarrier、CountDownLatch与Semaphore的小记

    CyclicBarrier: 适合的业务场景,比如 1).,现有一大任务,需要得到全年的统计数据的,这个工作量是巨大的,那么可以将其分割为12个月的子任务,各个子任务相互独立,当所有子任务完成了,则就 ...

  6. lintcode:最长公共子序列

    题目 最长公共子序列 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度. 样例 给出"ABCD" 和 "EDCA",这个LCS是 "A& ...

  7. ArchLinux安装与配置小结

    最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...

  8. Linux基础--文件与目录管理

    1.目录与路径 1)特殊目录 .   代表此层目录 ..  代表上一层目录 -   代表前一个工作目录 ~   代表『目前使用者身份』所在的家目录 ~account   代表account这个使用者的 ...

  9. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  10. C++虚函数的缺陷

    MFC中的消息机制没有采用C++中的虚函数机制,原因是消息太多,虚函数内存开销太大.在Qt中也没有采用C++中的虚函数机制,原因与此相同,其实这里还有更深层次上的原因,大体说来,多态的底层实现机制只有 ...