纯css制作带三角的边框(附效果图)

yizhihongxing

下面开始讲解“纯css制作带三角的边框(附效果图)”的完整攻略。

1.需求分析

在页面样式设计中,时常需要添加一些边框来美化页面,如果能够在边框中添加三角形的图形,将会让页面更加丰富和美观。

2.样式实现

首先,我们需要在HTML的某个元素上添加一个类名,假设我们添加的类名为"triangle"。接下来,我们通过以下步骤实现带三角的边框。

2.1 给元素添加边框

通过CSS中的border属性,给元素添加一个边框。示例如下:

.triangle {
    border: 1px solid #333;
}

上述代码中,我们添加了一个黑色的边框。

2.2 隐藏原始边框

为了能够在边框上添加三角形,我们需要隐藏原始的边框。有两种方法可以实现。

方法1:利用伪元素

利用CSS中的伪元素:before:after,在元素的内部添加伪元素,达到隐藏原始边框的效果。示例如下:

.triangle {
    position: relative;
    border: none;
}

.triangle::before,
.triangle::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 1px;
    left: 1px;
    right: 1px;
    bottom: 1px;
}

.triangle::before {
    border: 1px solid #333;
}

.triangle::after {
    border: none;
}

上述代码中,我们将元素的边框设为none,并通过:before伪元素添加一个带边框的透明框,并将:after伪元素的边框去掉,达到隐藏原始边框的效果。

方法2:利用outline

在元素添加outline属性,并设定其颜色为与边框同色,宽度与边框宽度相同,达到隐藏原始边框的效果。示例如下:

.triangle {
    border: none;
    outline: 1px solid #333;
}

上述代码中,我们将元素的边框设为none,并通过outline属性添加一个与边框相同颜色和宽度的外层框,达到隐藏原始边框的效果。

2.3 添加三角形

在原始边框的上方,添加一个三角形,达到“带三角的边框”效果。同样有两种方法可以实现。

方法1:利用伪元素

在上述方法1的::before伪元素中,利用border属性画一个三角形,并在伪元素的右下角上重合。示例如下:

.triangle::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: -11px;
    left: calc(50% - 11px);
    border: 10px solid transparent;
    border-bottom-color: #333;
}

上述代码中,我们利用border属性画了一个底边为透明,高为10px的三角形,并将其上边缘与元素顶部重合。

方法2:利用clip-path

利用CSS的clip-path属性,可以裁剪出一个三角形形状,并将其放在元素的顶部中央。示例如下:

.triangle {
    position: relative;
    border: none;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

上述代码中,我们使用了clip-path属性,它的值为裁剪出来的三角形的坐标系,右上角为坐标原点(0,0),以此为基础设置三角形的坐标点。

2.4 完成效果

通过以上两种方法,我们就能够实现带有三角形的边框。完整的代码示例如下:

.triangle-container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.triangle {
    position: relative;
    border: none;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

.triangle::before,
.triangle::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 1px;
    left: 1px;
    right: 1px;
    bottom: 1px;
}

.triangle::before {
    border: 1px solid #333;
}

.triangle::after {
    border: none;
}

.triangle-v2 {
    position: relative;
    border: none;
    outline: 1px solid #333;
}

.triangle-v2::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: -11px;
    left: calc(50% - 11px);
    border: 10px solid transparent;
    border-bottom-color: #333;
}

3.总结

本文介绍了两种方式实现带三角形的边框,分别为利用伪元素和利用clip-path属性。对于需要美化页面边框的场景,这两种方法都可以达到不错的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯css制作带三角的边框(附效果图) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Zen Coding css,html缩写替换大观 快速写出html,css

    Zen Coding是一款快速编写HTML和CSS代码的工具,它可以帮助开发者更加高效地工作。Zen Coding支持在编辑器中使用缩写(Abbreviations)来快速生成HTML、CSS代码,使用起来非常方便,下面将介绍如何使用Zen Coding进行快速编写HTML和CSS代码。 一、安装Zen Coding 在使用Zen Coding之前,需要安装…

    css 2023年6月9日
    00
  • 深入探索VueJS Scoped CSS 实现原理

    下面是深入探索VueJS Scoped CSS实现原理的攻略: 前言 在Vue.js中,我们通过<style>标签来声明组件的样式,但是为了避免样式的污染(即样式影响到了其他组件),Vue.js提供了Scoped CSS(作用域CSS)的支持。 Scoped CSS是指将组件的样式限制在组件内部,不影响其他组件的样式,并且保证组件内部的样式可以覆…

    css 2023年6月9日
    00
  • CSS3实现动态翻牌效果 仿百度贴吧3D翻牌一次动画特效

    实现CSS3动态翻牌效果,需要以下步骤: 1. HTML结构 我们需要一些HTML结构来构建翻牌所需的图形元素。下面是示例结构: <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card…

    css 2023年6月10日
    00
  • 分享12个Webpack中常用的Loader(小结)

    请允许我逐步讲解“分享12个Webpack中常用的Loader(小结)”的完整攻略。 标题 本文的标题是“分享12个Webpack中常用的Loader(小结)”, 介绍 在Web开发中,Webpack已成为一个重要的构建工具。Webpack的Loader是Webpack功能的重要组成部分之一,它可以在打包构建过程中实现各类文件的转换、处理和优化。在本文中,我…

    css 2023年6月10日
    00
  • JavaScript和CSS通过expression实现Table居中显示

    首先,我想强调的是,expression是一种非常不建议使用的技术,因为它会在页面加载的时候阻塞渲染,并且会在一些浏览器版本中被禁用。但是,为了回答你的问题,我会提供关于如何使用expression在JavaScript和CSS中实现Table居中显示的方法。 使用JavaScript实现Table居中 首先,我们需要在HTML中定义一个Table,并且添加…

    css 2023年6月10日
    00
  • 详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)

    Markdown 格式是一种轻量级的标记语言,用起来可以快速简洁地写出漂亮的排版。不过它并不是专门为 web 设计而设计的,而我们在编写网站的时候,所需要的样式效果却远不止于此。其中一条常用的样式效果就是overflow:hidden,下面我将会介绍这个样式效果的作用以及用法。 什么是 overflow:hidden? overflow:hidden是一种 …

    css 2023年6月9日
    00
  • JS组件系列之Bootstrap Icon图标选择组件

    JS组件系列之Bootstrap Icon图标选择组件 简介 Bootstrap Icon图标选择组件是一个基于Bootstrap框架,使用JavaScript实现的可自定义图标选择器,用于在用户操作时动态增加图标样式。该组件能够轻松地实现输入框内的图标选择功能,使得页面的图标选择更加便捷。 安装 下载文件 这个组件是一个JavaScript文件,可以从官网…

    css 2023年6月9日
    00
  • css中提升优先级属性!important的用法总结

    下面我就来详细讲解“css中提升优先级属性!important的用法总结”的完整攻略。 什么是!important 在CSS中,有时候我们需要对某些属性设置比较高的优先级,以便覆盖掉其他声明。这时候我们便可以使用!important来提升优先级。 !important是CSS中的一个规则,可以用来强制覆盖其他声明,使某个属性的优先级变得非常高,以达到特定的效…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部