使用::before和::after来完成尖角效果

简介:

一、目标

目标完成下图效果:

二、完成

1、分析

::before和::after伪元素的用法一文中有说到使用::befrore和::after可以完成一个六边形。这个案例是用一个#star-six完成一个正三角形,通过::after实现一个倒三角形,然后绝对定位放好位置。我们接下来也用这个思路完成。

2、完成

第一步,先完成如下基本的效果,实现一个在浏览器中居中的文本

代码如下:

复制代码
<style>
.middle{
text-align:center;
}
.title{
background-color:black;
color:#f3e14f;
display:inline-block;
font-size:18px;
height:40px;
line-height:40px;
padding:0 50px;
}
</style>
<div class="middle">
<h5 class="title">升级有好礼</h5>
</div>
复制代码

第二步,做左右两边尖尖的效果。可以根据做五角星的代码修改。

代码如下:

复制代码
<style>
#star-three {
  width: 0;
  height: 0;
  border-left: 100px solid transparent;
  border-top: 50px solid red;
  border-bottom: 50px solid red;
/*  position: relative;*/
}
</style>
<div id="star-three"></div>
复制代码

第三步,通过::before来实现第二步中的效果。

代码还是第二步中的代码,但是是通过::before来实现记得写上content:""。然后调整一下尺寸。

复制代码
.title::before{
  width: 0;
  height: 0;
  border-left: 40px solid transparent;
  border-top: 20px solid red;
  border-bottom: 20px solid red;
  content: "";
}
复制代码

如果给border-left设置蓝色会发现效果如下。【原理还不是很懂,不知道这个高度是因为什么原因??】

结果这是什么鬼?不是想要的效果。此时需要调整布局。

第四步,使用绝对定位调整布局。

.title设置relative,.title::before设置absolute。效果如下。

第五步,通过left调整。

复制代码
.title{
background-color:black;
color:#f3e14f;
display:inline-block;
font-size:18px;
height:40px;
line-height:40px;
position:relative;
padding:0 50px;
}

.title::before{
  width: 0;
  height: 0;
  border-left: 40px solid transparent;
  border-top: 20px solid red;
  border-bottom: 20px solid red;
  content: "";
  position:absolute;
  left:-40px;
}
复制代码

第六步,同理,通过::after实现右边效果。

复制代码
.title::after{
  width: 0;
  height: 0;
  border-right: 40px solid transparent;
  border-top: 20px solid red;
  border-bottom: 20px solid red;
  content: "";
  position:absolute;
  right:-40px;

}
复制代码

第七步,改下颜色就好了。

完整代码如下:

  View Code

效果

3、浏览器兼容性

IE8如果要使用before和after伪元素,加上<!DOCTYPE html>,然后使用单冒号的:before和:after。

IE6,IE7是不支持的。

IE6和IE7兼容性的处理可参考:小tip:我是如何在实际项目中使用before/after伪元素的

 

 

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4832598.html有问题欢迎与我讨论,共同进步。

相关文章
|
5月前
|
人工智能 JSON 自然语言处理
大模型Prompt工程的重要性及构建方法
非常非常有用的一片宝藏文章,主要阐述了大模型prompt构建的一些基础方法,能够起到很好的帮助,本文转载至https://mp.weixin.qq.com/s/7X68fNdOOYfk5Qg9iEM2lA,该公众号的其他文章也很有用,推荐大家关注。
|
开发框架 JavaScript 前端开发
彻底搞懂Vue中的Mixin混入(保姆级教程)
前言 Vue框架现在基本上已经占据了前端的半壁江山,Vue的数据驱动和组件化的思想深入人心。Vue全家桶可能很多小伙伴都比较熟悉,在工作上也用得比较得心应手。但是今天讲的Vue中这个Mixin的用法我相信还有很多小伙伴不知道或者没有用过,或者有些小伙伴接手别人的Vue项目时看到里面有个Mixin文件夹,也会用,但是一直都是云里雾里的状态,今天我们就好好聊聊Mixin,争取以后不在犯迷糊。
756 0
彻底搞懂Vue中的Mixin混入(保姆级教程)
|
8月前
|
IDE 测试技术 编译器
linux安装Pycharm
linux安装Pycharm
87 0
|
8月前
|
数据安全/隐私保护
[软件工程导论(第六版)]第3章 需求分析(课后习题详解)
[软件工程导论(第六版)]第3章 需求分析(课后习题详解)
|
10月前
|
存储 监控 Unix
Linux--zabbix网络监控系统
Linux--zabbix网络监控系统
141 0
|
11月前
|
缓存 安全 前端开发
域委派攻击详解
域委派攻击详解
954 0
|
存储 分布式计算 运维
阿里云E-MapReduce产品新动态及开源大数据前沿技术 2023-3月刊
开源大数据EMR产品技术月刊,涵盖本月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解开源大数据最新动态。
48439 4
阿里云E-MapReduce产品新动态及开源大数据前沿技术 2023-3月刊
|
JavaScript 数据可视化
vue项目的pc端适配vw vh rem( postcss)
vue项目的pc端适配vw vh rem
343 0
vue项目的pc端适配vw vh rem( postcss)