HTML + CSS 连载 | 40 - border 图形

一、border 图形实现

实际开发中 border 属性主要是用来给盒子添加边框的,但是在开发中我们也可以利用边框的一些特性来实现一些形状,比如一些页面中常用到的三角形等。

接下来我们可以使用 border 属性来实现一个三角形,首先创建 HTML 页面,添加一个盒子,并且给盒子设置一个边框,具体代码如下:

HTML 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      margin: 0 auto;
      width: 100px;
      height: 100px;
      background-color: #f00;
      
      border: 30px solid olivedrab;
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

在浏览器中打开 HTML 页面,具体效果如下:

此时盒子所占据的宽度为 (100+30+30)px,我们需要设置 box-sizing 属性的属性值为 border-box,让盒子所占据的宽度包含内容和边距的长度,具体 CSS 代码如下所示:

CSS 复制代码
.box {
  margin: 0 auto;
  width: 100px;
  height: 100px;
  background-color: #f00;

  border: 30px solid olivedrab;

  box-sizing: border-box;
}

刷新页面,效果如下:

可以看到盒子变小了,接下来我们需要设置 border 四条边的样式,给每条边一个不同的背景颜色,具体 CSS 代码如下:

CSS 复制代码
.box {
  margin: 0 auto;
  width: 100px;
  height: 100px;
  background-color: #f00;

  border: 30px solid olivedrab;
  border-right-color: blue;
  border-bottom-color: aqua;
  border-left-color: blueviolet;

  box-sizing: border-box;
}

刷新页面,效果如下:

接着我们尝试把增加 border 的宽度为 40px:

CSS 复制代码
border: 40px solid olivedrab;

刷新页面,效果如下:

再次增加 border 的宽度为 50px:

CSS 复制代码
border: 50px solid olivedrab;

刷新页面,效果如下:

可以看到此时内容的宽度已被压缩为0,整个盒子所占据的宽度就是 border 的宽度,设置其他几条变为透明,具体 CSS 代码如下:

CSS 复制代码
.box {
  margin: 0 auto;
  width: 100px;
  height: 100px;
  background-color: #f00;

  border: 50px solid olivedrab;
  /* border-right-color: blue;
  border-bottom-color: aqua;
  border-left-color: blueviolet; */
  /*设置为透明*/
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;

  box-sizing: border-box;
}

再次刷新页面,效果如下:

还需要将背景颜色也设置为透明,或者干脆不设置背景颜色:

CSS 复制代码
background-color: transparent;

再次刷新页面,效果如下:

可以看到我们已经实现了一个三角形,我们可以通过调整边框的宽度来实现大小不同的三角形。

二、border 图形旋转

实现了三角形之后还可以通过 transform 属性来让三角形选中,比如设置如下 CSS 代码:

CSS 复制代码
/*旋转*/
transform: rotate(90deg);

刷新页面,效果如下:

可以看到三角形旋转了 90 度,我们也可以设置旋转的中心点,比如下面 CSS 代码所示:

CSS 复制代码
/*旋转*/
transform: rotate(90deg); 
transform-origin: center 25%;

再次刷新页面,效果如下:

可以看到此时旋转后的位置与不设置中心点之前旋转的位置发生了偏移,当然我们也可以设置旋转更大的角度,比如下面的 CSS 代码:

CSS 复制代码
/*旋转*/
transform: rotate(180deg); 
transform-origin: center 25%;

刷新页面,效果如下:

利用 border 或者 CSS 特性我们可以做出很多图形,可以通过这个网站来查看更多的图形的实现。

相关推荐
gyx_这个杀手不太冷静8 分钟前
OpenCode 进阶使用指南(第三章:MCP 集成)
前端·ai编程
摸鱼的春哥11 分钟前
你适合养龙虾🦞吗?4类人不适合2类适合
前端·javascript·后端
Moment44 分钟前
Agent 开发本质上就是高级点的 CRUD
前端·后端·面试
恋猫de小郭1 小时前
OpenAI 亲自教你如何构建可靠 AI 代码,从古法编程转向 Agnet 编程,或者 PUA 你的 AI
前端·人工智能·ai编程
程序员爱钓鱼2 小时前
Go错误处理全解析:errors包实战与最佳实践
前端·后端·go
清汤饺子10 小时前
OpenClaw 本地部署教程 - 从 0 到 1 跑通你的第一只龙虾
前端·javascript·vibecoding
爱吃的小肥羊13 小时前
比 Claude Code 便宜一半!Codex 国内部署使用教程,三种方法任选一!
前端
IT_陈寒14 小时前
SpringBoot项目启动慢?5个技巧让你的应用秒级响应!
前端·人工智能·后端
树上有只程序猿14 小时前
2026低代码选型指南,主流低代码开发平台排名出炉
前端·后端
橙某人15 小时前
LogicFlow 小地图性能优化:从「实时克隆」到「占位缩略块」!🚀
前端·javascript·vue.js