首页 > 其他分享 >html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框

html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框

时间:2024-02-22 16:44:20浏览次数:23  
标签:calc 切角 gradient 100% 0.05 html 四边形 0px linear

前言

这几个月做了很多前端工作,其中一个需求还是蛮头疼,UI给的图上面的四边形是一个带斜边的,直接用背景图可以实现,但是会出现各种布局的问题,比如内容太大了,边框不会跟着扩大,废话不多说,这里写一些如何利用css话四边形带有斜边,并且给斜边加边框,在这之前,先简单说一下需要用到的函数

linear-gradient()函数

grad {

background-image: linear-gradient(red, yellow, blue);

}

看上面的代码是从头部开始的线性渐变,从红色开始,转为黄色,再到蓝色。

这里大概就知道了linear-gradient是用来画渐变用的。并且可以指定颜色以及方向。

clip-path函数

这个函数我也不是很懂,大概就是裁剪路径,配合函数后面的做标参数,对四边形进行裁剪,这里是配合polygon使用。

实现代码

clip-path: polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),

calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);

background:linear-gradient(-45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom right,

linear-gradient(45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom left,

linear-gradient(135deg,#4C829A 0px, rgba(216,236,255,0.05) 0) top left,

linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;

background-repeat: no-repeat;

border: solid 1px #4C829A;

049030f2e2963d2c5149fc2d052ae560.png

面这个样式就可以实现了,这是我实现的效果。

注意,我不光实现了切角,还实现了,切角以后,边框也贴着斜边。

代码解释

background:linear-gradient(-45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom right,

linear-gradient(45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom left,

linear-gradient(135deg,#4C829A 0px, rgba(216,236,255,0.05) 0) top left,

linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;

先解释这个代码。 linear-gradient最后面的是方向,这里有四个方向。不细说了、

其中第一个参数135deg就是角度,比如 top right;即上到右,切-135度,

第二个参数是4C829A 是边框的边框的颜色,

第三个参数0px,是你要切多高。这个地方经过演算,是这里的值,看图。

8cba2255f430d9845f6b4b878acaea71.png

虚线部分即为你设置的值,这个值是以顶点为起点,45度角延长,

第四个参数,rgba(216,236,255,0.05) 前面三个是是四边形的填充颜色,最后一个0.05是填充颜色的透明度,这里也可以设置background-size: 50% 50%;意思即为将四边形平均分为四分,每一份的颜色可以单独设置,这里不做深究,这里我也没用到

第五个参数0表示渐变渲染颜色,这里写0,表示不让他渐变渲染,如果需要渐变渲染颜色,并且四边形需要不同的颜色,就可以用到上面的background-size属性。

第六个属性 top right表示方向。代表你要从哪里往哪里切

上面说了第一个要点,能够实现四边形切边,但是边框还是四边,没有切边。

clip-path: polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),

calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);

这段代码,可以通过裁剪的方式,实现边框也跟着切边。

42fb9a9f9b826d8fc44f39df91a81529.png

经过反复实验,发现 polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),

calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);中的八个点,按照顺序,分别是图中的1-8,好像没什么规律,这里可能会有问题,具体大家可自行演算。可以看到,我切的斜边是右上角,就是切2号点和3号点。2号点的坐标本来是100%和0,其控制的是上面那条边的右边坐标点,这里减去15px,就是切割后的坐标点,3号点位同理,纵坐标切15px,然后可以大概算出沿着直角三角形做垂直线,大概可以算出其距离时10.6px。也就是 linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;这里设置的10px(大致结果),下面这张图,可以帮助大家理解怎么算的。

e5b76d4bfc25827e389f0bb1c5aebc67.png

当然,你也可以先设置你要切多少个px,然后算出坐标值是多少。但是这个算出来的结果,可能跟实际效果还是有所出入,具体还需要自己在计算值得上下进行调整
详细可看:https://blog.csdn.net/weixin_31639069/article/details/118010862

标签:calc,切角,gradient,100%,0.05,html,四边形,0px,linear
From: https://www.cnblogs.com/xutaoliu/p/18027667

相关文章

  • Html示例-表格表头固定+首尾列固定
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><style>.table_wrap{width:100%;height:200px;overflow:auto;......
  • ssts-hospital-web-master项目实战记录六:项目迁移方案大纲(html -> vue)
    记录时间:2024-02-21(一)公共资源部分Inc/cssInc/flashInc/imagesInc/jsInc/voice(二)页面部分1.主页及其组成(1)index.html->App.vue(2)MainPage*.html->views/main-page*MainPage1.html->views/main-page1MainPage2.html->views/main-page2MainPage3.html->......
  • 前端 html 一个元素padding-right,不起作用?毫无反应?padding right 无效
    有没有宝子,开发html,给一个父元素padding-right,子元素却毫无反应,万分捉急,在线等,急!我知道你着急,但是你先别急我会在这里娓娓道来,带你走上一个新的技术台阶1、一段基础代码代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"......
  • 使用html2Canvas截图网页时,网页存在图片报错:Tainted canvases may not be exported
     这是因为图片跨域产生的报错,看有的说法可以把所有图片进行允许跨域配置,但是比较麻烦。html2canvas有参数可以配置是否允许跨域 参数名称类型默认值描述allowTaintbooleanfalseWhethertoallowcross-originimagestotaintthecanvas---允许跨域background......
  • HTML
    1.2.2渲染引擎(了解)渲染引擎(浏览器内核):浏览器中专门对代码进行解析渲染的部分浏览器出品的公司不同,内在的揎染引也是不同的:浏览器内核备注IETrident1E、猎豹安全、360极速浏览器、百度浏览器FireFoxXGecko火狐浏览器内核SafariWebkit苹果浏览器内核Chrome/OperaB......
  • c#使用webView2 访问本地静态html资源跨域问题 || Cors
    背景在浏览器中访问本地静态资源html网页时,可能会遇到跨域问题如图。 是因为浏览器默认启用了同源策略,即只允许加载与当前网页具有相同源(协议、域名和端口)的内容。WebView2默认情况下启用了浏览器的同源策略,即只允许加载与主机相同源的内容。所以如果我们把静态资源发布到ii......
  • HTML <!DOCTYPE>标记
    原文链接:https://blog.csdn.net/wuxiaopengnihao1/article/details/126521900描述HTML <!DOCTYPE>标记一般放在HTML文档中的第一行。它告诉浏览器要编写文档的HTML版本,以便浏览器知道预期的内容。此标记通常也称为<!DOCTYPE>元素。句法<!DOCTYPE>标记的语法在所使用的HTML或XHTML......
  • html页面直接回显接口返回的图片文件流
    <imgsrc="http://127.0.0.1:8081/t1/img">@GetMapping("/img")@SneakyThrowspublicvoidtest01(HttpServletResponseresponse){Stringjp=Jie截屏.jp(0,0,300,200,"D:\\桌面文档\\123.png");......
  • 烟花html代码和灯笼代码
    来源:http://www.shanhubei.com/archives/13639.html一、烟花代码烟花从发射到绽放一共分为三个阶段: 发射阶段, 烟花绽放 , 烟花凋零 。<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title></title> <metacharset="utf-8">......
  • 【总结】HTML+JS逆向混淆混合
    国外的题果然考的与众不同[secrypt_cen.html]这次是HTML网页,然后JS加密判断翻看JS代码很显然,关键的代码在checkPasswordJS混淆是必备的去混淆一条龙走起先将关键代码提取出来 JavaScript function_0x4857(_0x398c7a,_0x2b4590){const_0x104914= _0x25ec(......