当前位置: 首页 > news >正文

第14篇:边框、圆角与轮廓

第14篇:边框、圆角与轮廓

边框和圆角是 UI 设计中最常用的视觉元素之一。从简单的实线边框到复杂的图片边框,从圆角矩形到完美的圆形,CSS 提供了丰富的工具来创造各种边框效果。本篇将深入讲解 border 系列属性和 outline 的区别与应用。


学习目标

  • 掌握 border 的简写与拆分属性
  • 理解 border-radius 的语法,能画出各种圆角形状
  • 掌握 border-image 的基本用法
  • 理解 outline 与 border 的本质区别
  • 学会用 border 画三角形、箭头等几何图形
  • 了解 CSS 逻辑边框属性(inline/block-start/end)

核心知识点

一、border 基础

三要素写法
.box{/* 简写:宽度 样式 颜色 */border:2px solid #333;/* 拆分写法 */border-width:2px;border-style:solid;border-color:#333;}

border-style 取值:

效果
none无边框
solid实线
dashed虚线
dotted点状线
double双线
groove3D 凹槽
ridge3D 凸槽
inset内嵌
outset外凸
单边控制
.box{border-top:2px solid #333;border-right:1px dashed #999;border-bottom:2px solid #333;border-left:1px dashed #999;}/* 或 */.box{border-width:2px 1px 2px 1px;/* 上 右 下 左 */border-style:solid dashed solid dashed;border-color:#333 #999 #333 #999;}

二、border-radius 圆角

基础语法
/* 四个角相同 */.rounded{border-radius:8px;}/* 四个角不同 */.mixed-radius{border-radius:8px 16px 24px 32px;/* 左上 右上 右下 左下 */}/* 椭圆角:水平半径 / 垂直半径 */.ellipse-radius{border-radius:50px / 20px;}
各种形状
/* 圆角矩形 */.rounded-card{border-radius:12px;}/* 圆形 */.circle{width:100px;height:100px;border-radius:50%;/* 或 9999px */}/* 胶囊形 */.pill{border-radius:9999px;/* 高度的一半以上的值 */padding:8px 24px;}/* 半圆 */.semicircle{width:100px;height:50px;border-radius:50% 50% 0 0 / 100% 100% 0 0;}/* 叶子形状 */.leaf{border-radius:0 50% 0 50%;}
复杂圆角
/* 现代语法:每个角可以有两个半径 */.complex{border-radius:30% 70% 70% 30% / 30% 30% 70% 70%;/* 左上 右上 右下 左下 / 垂直半径 */}/* 或使用独立属性 */.individual{border-top-left-radius:20px 10px;border-top-right-radius:30px;border-bottom-right-radius:40px 20px;border-bottom-left-radius:10px;}

三、用 border 画三角形

利用边框的拼接原理,可以画出各种方向的三角形:

/* 上三角形 */.triangle-up{width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:80px solid #4a90d9;}/* 下三角形 */.triangle-down{width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-top:80px solid #4a90d9;}/* 左三角形 */.triangle-left{width:0;height:0;border-top:50px solid transparent;border-bottom:50px solid transparent;border-right:80px solid #4a90d9;}/* 右三角形 */.triangle-right{width:0;height:0;border-top:50px solid transparent;border-bottom:50px solid transparent;border-left:80px solid #4a90d9;}

原理图解:

/\ / \ ← 上边框为透明,下边框为蓝色 / \ 左右边框也为透明 /______\ \ / \ / \ / \/

箭头气泡:

.bubble{position:relative;padding:16px;background:#f5f5f5;border-radius:8px;}.bubble::after{content:"";position:absolute;bottom:-10px;left:30px;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #f5f5f5;}

四、border-image 图片边框

.image-border{border:30px solid transparent;border-image:url("border.png")30 round;/* 图片 切片 填充方式 */}

填充方式:

说明
stretch拉伸填充(默认)
repeat平铺填充,可能裁剪
round平铺填充,调整大小以完整显示
space平铺填充,均匀分布

渐变边框(配合 border-image):

.gradient-border{border:3px solid transparent;border-image:linear-gradient(135deg,#667eea,#f093fb)1;}

⚠️border-image不支持border-radius,如果需要圆角渐变边框,需要用其他技巧(如伪元素)。


五、outline 轮廓

outlineborder很相似,但有几个关键区别:

特性borderoutline
占据空间✅ 是(影响布局)❌ 否(不占据空间)
单边设置✅ 可以❌ 不可以(只能统一设置)
圆角✅ border-radius❌ 无圆角(有 outline-radius 但支持差)
位置边框内部边框外部
用途装饰聚焦提示、调试
/* 聚焦时的轮廓 */input:focus{outline:2px solid #4a90d9;outline-offset:2px;/* 轮廓与元素的距离 */}/* 去除轮廓(不推荐用于可交互元素) */button{outline:none;}/* 更好的做法:自定义聚焦样式 */button:focus-visible{outline:2px solid #4a90d9;outline-offset:2px;}

六、CSS 逻辑边框属性

支持不同书写方向的逻辑属性:

/* 物理属性 */.box{border-top:1px solid #333;border-bottom:1px solid #333;}/* 逻辑属性(推荐用于国际化) */.box{border-block-start:1px solid #333;/* 块起始边 */border-block-end:1px solid #333;/* 块结束边 */border-inline-start:1px solid #333;/* 行起始边 */border-inline-end:1px solid #333;/* 行结束边 */}

在水平书写模式下(中文、英文):

  • block-start=top
  • block-end=bottom
  • inline-start=left
  • inline-end=right

动手练习

练习 1:各种圆角形状

实现以下形状:

  • 完美圆形(头像)
  • 胶囊形按钮
  • 对话气泡(一个角特别大)
  • 叶子形状

练习 2:纯 CSS 箭头

用 border 技巧实现:

  • 向上的工具提示箭头
  • 导航下拉菜单的小三角
  • 步骤指示器中的连接箭头

练习 3:卡片边框效果

实现以下效果:

  • 左侧彩色边框(4px 蓝色左边框)
  • 渐变边框
  • 带虚线边框的票据样式

常见误区 ⚠️

误区真相
border-radius: 50%9999px一样”对于正方形一样;对于长方形,50%是椭圆,9999px是胶囊形
outlineborder可以互相替代”不能!outline 不占据空间、不能单边设置、不支持圆角
“三角形可以用border画,也可以用其他方式”是的,现代更推荐用clip-path: polygon()或 SVG
border-image支持border-radius不支持!两者不能同时使用
border: noneborder: 0一样”效果相同,但border: 0更明确地移除了边框宽度
outline-offset可以为负值”可以!负值会让轮廓向元素内部收缩
“逻辑边框属性只适用于 RTL 语言”在任何方向变化时都有用,包括垂直书写模式
“所有浏览器都支持逻辑边框属性”现代浏览器支持良好,但旧版浏览器需要回退

速查卡片 📋

border 简写

border:宽度 样式 颜色;

圆角形状速查

border-radius:8px;/* 小圆角 */border-radius:12px;/* 卡片圆角 */border-radius:50%;/* 圆形(需宽高相等) */border-radius:9999px;/* 胶囊形 */border-radius:0 50% 0 50%;/* 叶子形 */

三角形代码

.triangle-up{width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:80px solid #333;}

outline 聚焦样式

:focus-visible{outline:2px solid #4a90d9;outline-offset:2px;}

扩展阅读

  • MDN: border
  • MDN: border-radius
  • MDN: outline
  • MDN: border-image
  • CSS-Tricks: The Shapes of CSS(英文)

📌配套代码

  • CODE/14/border-shapes.html — 圆角与三角形形状演示
  • CODE/14/border-advanced.html — 图片边框与轮廓演示

🎉下一步:进入 第15篇:阴影与视觉效果,学习 box-shadow 和滤镜效果。

http://www.zskr.cn/news/1526938.html

相关文章:

  • MPC8260 DMA控制器实战:从原理到缓存一致性处理
  • 商品价格同步与下单冲突解决方案
  • Windows系统优化新境界:Dism++全面维护解决方案
  • java exception Exception这货,一出场就炸裂你的代码,还敢不处理?
  • Noctalia Shell深度解析:现代Wayland桌面外壳的模块化架构与渲染引擎实战指南
  • 终极指南:如何永久解决Cursor免费试用限制问题
  • Gilisoft SnapID(证件照片处理软件)
  • 【扩散过程分布反馈控制中的最优动态执行器位置】使用FO-Diff-MAS2D解决二维分数扩散方程并获得异常扩散过程的分数控制问题附Matlab代码
  • 独立开发者必备:5 个能直接赚钱的全栈小产品 Prompt
  • KKManager完全指南:如何5分钟搞定Illusion游戏模组管理难题
  • Koikatu HF Patch:200+插件一键安装,打造终极恋活游戏体验
  • 怎样轻松解锁Honey Select 2完整汉化与去码功能:超实用5步实战指南
  • 从模糊到清晰:Real-ESRGAN-GUI如何让AI图像修复变得轻松简单
  • 学Java遇中文乱码?别慌,这里有解决秘籍
  • 2026年成都货架厂家哪家靠谱?多维度实测对比与真实案例解析 - 优质品牌商家
  • Display Driver Uninstaller:彻底解决显卡驱动问题的5步终极方案
  • 图片去水印用什么工具,这6款我实测了一遍
  • 2026年液压万能试验机行业深度分析:耐用型设备选购指南与优质厂家评测 - 优质品牌商家
  • Agent(1):核心揭秘。每次与大模型对话,究竟发送了哪些数据?
  • Topit:免费开源macOS窗口置顶工具的完整使用指南
  • 如何快速掌握Dify工作流:新手友好的完整AI自动化指南
  • 数据局新规落地,数据标注行业要洗牌了
  • Node.js/Go 后端架构:分布式链路追踪与跨服务故障定位实践
  • Linux上Python IDE炸裂推荐!for i in range()别再手动数数了
  • 2026年图片去水印用什么工具:我的实测记录
  • MPC8309 GTM定时器:从16位到64位级联、输入捕获与PWM生成实战
  • GSV6155@ACP#DP 1.4a 重定时器芯片,物理 AI 信号长距传输的稳定保障
  • 法考报名流程|报名入口|资料已整理
  • 2026年6月正规的平板热压机厂推荐,手动/伺服/真空平板热压机厂家选择指南 - 海棠依旧大
  • 计算机Java毕设实战-基于 SpringBoot 框架的智能健康数据管理系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】