搜索
首页web前端css教程用CSS边框图像装饰网络

以前,为网页添加装饰性元素(如花哨的边框)需要切片图像,并耐心调整 CSS 代码,直到效果满意为止。

现在,CSS 简化了这一过程。只需几行代码,即可为您的网站添加相当复杂的边框。本文将向您展示如何做到这一点。

要点

  • CSS 允许仅用几行代码即可为网页添加复杂的边框,包括使用 border-image-source 属性在边框上添加背景图像。
  • border-image-slice 属性将选定的图像应用于边框,将图像分成九个区域:四个角、四个边和一个中间区域,可以选择为偏移量指定一个到四个数字或百分比值。
  • border-image-width 属性设计边框图像区域内的内部偏移量,而 border-image-outset 属性允许将边框图像区域推到边框框之外。
  • 可以使用简写 border 属性重置 border-image 属性,该属性可以快速重置元素所有四个边框的宽度、颜色和样式。在撰写本文时,border-image 在所有主要浏览器中几乎都得到了完全支持。

边框图像属性

一种常见的边框样式设置方法是使用预设的 border-style 规则。这些规则包括:dotteddashedsoliddoublegrooveridgeinsetoutset

这些样式已经提供了相当多的选择。但是,您可以更进一步,使用以下 CSS 属性为边框添加吸引人的背景图像。

border-image-source 属性

使用此属性,您可以为元素的边框分配背景图像。该值通常是图像的 URL:

element {
  border-image-source: url('myimage.png');
}

您会发现 CSS 渐变效果也一样好:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}

在浏览器中,它看起来像这样:

Decorating the Web with CSS Border Images 如果您将此属性设置为 none 值,或者无法显示图像,浏览器将使用为 border-style 属性设置的值。因此,最好使用 border-style 作为后备方案。

您使用的图像不需要与边框的宽度和高度匹配。CSS 边框图像的美妙之处在于,您只需要一个小图像即可装饰任何宽度和高度的元素边框,包括自适应不同屏幕尺寸的元素。

border-image-slice 属性

使用 border-image-source 属性选择图像后,您可以使用 border-image-slice 属性将其应用于边框。

element {
  border-image-source: url('myimage.png');
}

让我们更详细地了解一下。此属性设计来自顶部、右侧、底部和左侧的内部偏移量。这些偏移量最终会将您的小型图像切成九个区域:四个角、四个边和一个中间区域。

Decorating the Web with CSS Border Images 您可以指定一个到四个数字或百分比值。当您指定四个值时,它们将应用于顶部、右侧、底部和左侧偏移量。如果您跳过左侧偏移量,则这将与右侧相同。如果您错过了底部偏移量,则这将与顶部相同。省略右侧偏移量的值将使其与顶部相同。如果您只使用一个值,它将用于所有四个偏移量。

百分比值指的是图像大小的百分比——水平偏移量的图像宽度和垂直偏移量的图像高度。

数字代表图像中的像素,或者在矢量图像的情况下代表坐标。还有一点,不要在数字后面添加 px,这样做不起作用!

以下是您可以使用 border-image-slice 的方法:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}
element {
  border-image-slice: 19;
}

使用大小为 100 x 100 像素的图像作为边框,其外观如下:

Decorating the Web with CSS Border Images 最终效果如下:

Decorating the Web with CSS Border Images 中间区域呈现为完全透明,因此不可见。如果您想使其可见,请添加 fill 关键字。

例如,使用中间区域完全不透明的图像,不添加 fill 关键字,将与上面的示例完全相同。但是,请按如下方式应用 fill 关键字:

<div class="box">
  Border Image
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
</div>

使用中间区域包含细节的图像:

Decorating the Web with CSS Border Images 然后,我们会发现图像的中间区域在页面上完全可见,尽管有点模糊和压缩:

Decorating the Web with CSS Border Images

border-image-width 属性

此属性绘制在所谓的边框图像区域内。默认情况下,此区域的边界是边框框的边界。与 border-image-slice 属性一样,border-image-width 设计内部偏移量,将图像分成九个区域。

此属性接受一个到四个值(顶部、右侧、底部、左侧),可以使用数字或百分比。百分比相对于边框图像区域的大小,即水平偏移量的区域宽度和垂直偏移量的区域高度。如果您使用没有 px 单位的数字,则这些数字将等于相应的计算边框宽度的倍数。例如,下面的代码:

element {
  border-image-source: url('myimage.png');
}

……将边框图像的宽度设置为边框宽度值的 3 倍,即 19 像素。结果如下所示:

Decorating the Web with CSS Border Images 我发现,为 border-image-widthborder-image-slice 属性赋予相同的值可以确保您的边框图像以最佳状态显示,而不会出现不需要的变形。

border-image-outset 属性

到目前为止,我使用的所有属性都默认为内嵌边框图像区域。但是,您可以选择将边框图像区域推到边框框之外。您可以使用 border-image-outset 属性来实现。

此属性采用一个到四个值(顶部、右侧、底部、左侧),以数字或长度单位(如 pxem 等)表示。如果您使用数字,则结果将是边框图像被推到边框框之外,其倍数为计算的边框宽度。

为了进一步说明,我绘制了一个绿色的虚线轮廓来表示边框框。边框图像区域包含一个粉红色的边框图像。在其默认的内嵌状态下,边框图像位于绿色轮廓内。这意味着边框图像区域位于边框框内。

Decorating the Web with CSS Border Images border-image-outset: 19px; 添加到 CSS 规则集中,会将粉红色的边框图像推到虚线绿色轮廓之外。这表示边框图像区域绘制在边框框之外:

Decorating the Web with CSS Border Images 请注意,位于边框框之外的边框图像部分不会触发滚动,也不会捕获鼠标事件。

border-image-repeat 属性

此属性提供了一些关于如何在边框的侧面和中间部分缩放和平铺图像切片的选择。第一个值应用于水平侧(顶部和底部),第二个值应用于垂直侧(右侧和左侧)。如果您只设置一个值,则该值将应用于水平和垂直两侧。

可用值包括:

  • stretch – 如果您不使用 border-image-repeat 属性,则为默认值。此关键字会拉伸图像以填充可用区域。
  • repeat – 图像平铺重复以填充可用区域。如果可用区域不能被平铺宽度整除,则图像可能会被切断。
  • round – 与 repeat 相同,但是如果空间不足以容纳平铺,则会缩放平铺直到它们都适合。这确保了平铺永远不会被切断,但图像可能会看起来有点压缩。
  • space – 与 repeat 相同,但是如果空间不是平铺宽度的精确倍数,则额外的空白将均匀分布在每个平铺周围。

在撰写本文时,Firefox 似乎将 space 呈现为与 stretch 相同,而 Chrome 则将 space 呈现为与 repeat 相同。

border-image 简写属性

您可以将上面讨论的所有单个属性压缩到 border-image 简写属性中,如下所示:

  1. border-image-source
  2. border-image-slice
  3. border-image-width
  4. border-image-outset
  5. border-image-repeat

以下是代码片段:

element {
  border-image-source: url('myimage.png');
}

如果要删除边框图像怎么办?

重置边框的最佳方法是使用简写 border 属性。使用 border,您可以快速重置元素所有四个边框的相同宽度、颜色和样式。无需指定 border-image: none 规则,也不需要覆盖任何单个 border-image 属性。

浏览器支持

在撰写本文时,border-image 在所有主要浏览器中几乎都得到了完全支持。只有 Firefox 无法跨元素拉伸 SVG 图像,Opera Mini 支持带有 -o- 前缀的简写语法,但不支持单个属性。

结论

本文主要介绍了 border-image 属性:它接受的值、最佳使用方法以及在撰写本文时的浏览器支持级别。

您可以在 CSS 背景和边框级别 3 规范文档中找到更多详细信息。

如果您在项目中使用了 border-image 属性,为什么不与社区分享最终结果呢?

期待您的回复!

关于使用 CSS 边框图像装饰网页的常见问题解答 (FAQ)

如何创建 CSS 边框图像?

创建 CSS 边框图像涉及使用 border-image 属性。此属性允许您指定用作元素周围边框的图像。此属性的语法如下:

element {
  border-image-source: url('myimage.png');
}

source 是您要使用的图像的 URL。slice 定义图像的内侧偏移量。width 设置边框的宽度。outset 确定边框图像区域超出边框框的距离。repeat 指定图像的平铺或重复方式。

CSS 中有哪些不同的边框样式?

CSS 提供了几种边框样式,您可以使用它们来自定义网页元素的外观。这些包括:nonehiddendotteddashedsoliddoublegrooveridgeinsetoutset。每种样式都会产生不同的视觉效果。例如,dotted 会创建一个带有系列点的边框,而 double 会创建一个双线边框。

如何使用 CSS 创建内嵌边框?

可以使用 inset 边框样式在 CSS 中创建内嵌边框。此样式使框看起来像是嵌入在页面中的。其语法如下:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}

我可以为元素的不同侧使用不同的边框样式吗?

可以,CSS 允许您将不同的边框样式应用于元素的不同侧。您可以使用 border-top-styleborder-right-styleborder-bottom-styleborder-left-style 属性分别指定每侧的样式。

如何控制 CSS 边框图像的大小?

可以使用 border-image-width 属性控制 CSS 边框图像的大小。此属性通过定义边框区域的大小来设置边框图像的宽度。您可以以像素为单位指定宽度,也可以将其指定为元素框的百分比。

我可以将渐变图像用作 CSS 中的边框吗?

可以,CSS 允许您将渐变图像用作边框。您可以使用 linear-gradient 函数创建渐变图像,然后使用 border-image 属性将其用作边框图像。

如何使我的 CSS 边框图像重复?

CSS 中的 border-image-repeat 属性控制边框图像的重复方式。可能的值为 stretch(默认值)、repeatroundspacestretch 将图像缩放以填充区域。repeat 平铺图像。round 平铺图像,但将其缩放以精确匹配。space 平铺图像,但在平铺之间留有空间。

CSS 中的 border 属性和 border-image 属性有什么区别?

CSS 中的 border 属性用于设置元素边框的样式、宽度和颜色。另一方面,border-image 属性允许您使用图像作为元素周围的边框。

我可以将 CSS 边框图像与圆角一起使用吗?

可以,您可以将 CSS 边框图像与圆角一起使用。您可以使用 border-radius 属性创建圆角,然后使用 border-image 属性应用边框图像。

如何在 CSS 中创建虚线边框?

可以使用 dashed 边框样式在 CSS 中创建虚线边框。其语法如下:

element {
  border-image-source: url('myimage.png');
}

这将创建一个带有系列短线或虚线的边框。

以上是用CSS边框图像装饰网络的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践揭开屏幕读取器的神秘面纱:可访问的表格和最佳实践Mar 08, 2025 am 09:45 AM

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

使用智能表单框架创建JavaScript联系表格使用智能表单框架创建JavaScript联系表格Mar 07, 2025 am 11:33 AM

本教程演示了使用智能表单框架创建外观专业的JavaScript表单(注意:不再可用)。 尽管框架本身不可用,但原理和技术仍然与其他形式的建筑商相关。

将框阴影添加到WordPress块和元素将框阴影添加到WordPress块和元素Mar 09, 2025 pm 12:53 PM

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

使用GraphQL缓存使用GraphQL缓存Mar 19, 2025 am 09:36 AM

如果您最近开始使用GraphQL或审查了其优点和缺点,那么您毫无疑问听到了诸如“ GraphQl不支持缓存”或

使您的第一个自定义苗条过渡使您的第一个自定义苗条过渡Mar 15, 2025 am 11:08 AM

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。

优雅且酷的自定义CSS卷轴:展示柜优雅且酷的自定义CSS卷轴:展示柜Mar 10, 2025 am 11:37 AM

在本文中,我们将深入研究滚动条。我知道,这听起来并不魅力,但请相信我,一个精心设计的页面是齐头并进的

展示,不要说展示,不要说Mar 16, 2025 am 11:49 AM

您花多少时间为网站设计内容演示文稿?当您撰写新的博客文章或创建新页面时,您是在考虑

NPM命令是什么?NPM命令是什么?Mar 15, 2025 am 11:36 AM

NPM命令为您运行各种任务,无论是一次性或连续运行的过程,例如启动服务器或编译代码。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。