css文字加边框镂空文字_如何使用CSS创建镂空边框设计
通过切口边框设计,我们可以向用户展示可以在HTML元素的边框区域下找到的内容 。 通常通过将两个或两个以上 大小不同的 块元素 (在大多数情况下为div) 堆叠在一起来解决此任务。 首先,这似乎是一种轻松的解决方案,但是当您要多次重用布局,在元素周围移动,优化移动设计或维护代码时,它会变得更加令人沮丧。
在本文中,我将向您展示一个优雅的纯CSS解决方案,该解决方案仅使用一个HTML元素即可达到相同的效果。 此技术对于可访问性也非常有用,因为它将背景图片加载到CSS中 ,与HTML分开。
在这篇文章的结尾,您将知道如何在边框区域显示背景图像,以创建可以在下面看到的剪裁边框设计 。 我还将展示如何使用视口单元使设计具有响应能力。
初始码
HTML前面的唯一要求是一个block元素 :
<div class="cb"></div>
我们需要重用 div
的尺寸(宽度和高度)和边框宽度值,因此我将它们作为CSS变量引入。 变量--w
表示的宽度 .cb
块元素, --h
表明它的高度 , --b
无二的边框宽度 ,并--b2
的宽度乘以2,我们将在后面看到使用边界最后一个变量。
我正在相对于视口的宽度调整<div>
大小,因此使用了vw
单位(如果需要,可以使用固定单位)。
.cb {--w: 35vw;--h: 40vw;--b: 4vw;--b2: calc(var(--b) * 2);
}
快速的解释-
所述单元vw
表示1/100视口的宽度的 。 例如, 50vw
是垂直切成100等份的视口宽度的50份,而50vh
是水平切成100等份的视口高度的50 份 。
让我们通过添加背景并使用预定义CSS变量设置边框,高度和宽度来改进上述代码。
.cb {--w: 35vw;--h: 40vw;--b: 4vw;--b2: calc(var(--b) * 2);background: url(bg.jpg);border: var(--b) solid transparent;height: var(--h);width: var(--w);
}
演示现在应该是这样的:
调整背景图片的大小
我们需要背景图像覆盖<div>
的整个区域,包括边界区域 ,因此需要相应调整背景图像的大小 。
如果要给背景图像提供固定的大小,只需确保您提供的大小使它也能覆盖<div>
的边框区域。 至于到目前为止所使用的代码,这是我给它的background
值:
.cb {--w: 35vw;--h: 40vw;--b: 4vw;--b2: calc(var(--b) * 2);background: url(bg.jpg) center/calc(var(--w) + var(--b2))calc(var(--h) + var(--b2));border: var(--b) solid transparent;height: var(--h);width: var(--w);
}
同样, 背景图片的高度 [ calc(var(--h) + var(--b2))
]是div [ var(--h)
]的高度与顶部和顶部的宽度之和。底边框 [ var(--b2)
]。
这样,我们将背景图像的大小调整为与div
大小相同的区域(包括边界区域) 。
这就是我们现在所拥有的:
覆盖边界专属区域
现在,我们已经用背景图像覆盖了包含边界的区域,剩下的就是用纯色覆盖边界内部的中心区域 (不含边界的区域),为此我们得到了box-shadow
插图 。
.cb {--w: 35vw;--h: 40vw;--b: 4vw;--b2: calc(var(--b) * 2);background: url(bg.jpg) center/calc(var(--w) + var(--b2))calc(var(--h) + var(--b2));border: var(--b) solid transparent;box-shadow: inset var(--w) 0 0 rgba(0,120,237,.5);height: var(--h);width: var(--w);
}
值为var(--w)
的水平阴影覆盖div
的整个宽度 。 使用rgba
颜色功能可以在混合中添加一些透明度 ,但是如果您想完全覆盖中心区域,也可以使用不透明的颜色。
使用
在Codepen演示中,您可以在图像周围看到白色边框。 使用框阴影创建多个边框有一个著名的技巧-我们可以使用相同的技术在设计中添加一个或多个纯色边框 。
更新的box-shadow
值是:
.cb {
--w: 35vw;
--h: 40vw;
--b: 4vw;
--b2: calc(var(--b) * 2);
background: url(bg.jpg) center/calc(var(--w) + var(--b2))calc(var(--h) + var(--b2));
border: var(--b) solid transparent;
box-shadow: inset var(--w) 0 0 rgba(0,120,237,.5),0 0 0 calc(var(--b) / 2) white;
height: var(--h);
width: var(--w);
}
可选:单独的布局和美观
在我的最终Codepen演示中,我将背景图像和框阴影颜色的代码放置在单独的类中 。 这是可选的 ,但是如果要在多个元素中重复使用剪切边框设计的布局 ,并分别为每个元素添加美观效果(背景图像+颜色),则该功能非常有用。
我向<div>
添加了一个名为.poster1
的类以实现此目标。
.poster1 {--tbgc: rgba(0,120,237,.5);background-image: url("http://bit.ly/2eQBij2");
}
由于background
是速记属性, 因此可以单独覆盖/设置其速记属性。 因此,我们可以在.poster1
设置background-image
,并从.cb
的background
属性中删除url值。
要设置box-shadow
的值,我们可以使用另一个CSS变量 。 --tbgc
变量保存我们要赋予框阴影的颜色值 (演示中的.cb
),因此在.cb
的样式规则中,我们用var(--tbgc)
替换了box-shadow
属性的颜色值var(--tbgc)
。
.cb {--w: 35vw;--h: 40vw;--b: 4vw;--b2: calc(var(--b) * 2);background: center/calc(var(--w) + var(--b2))calc(var(--h) + var(--b2));border: var(--b) solid transparent;box-shadow: inset var(--w) 0 0 var(--tbgc),0 0 0 calc(var(--b) / 2) white;height: var(--h);width: var(--w);
}
纵向模式代码
由于尺寸全部以vw
为单位,因此当您以纵向模式查看设计时,它看起来太小 (宽度相对于高度较小),默认情况下所有移动设备都处于该状态。 要解决此问题,请使用vh
切换vw
,并根据您认为适合纵向模式的方式调整设计大小 。
@media (orientation: portrait) {.cb {--w: 35vh;--h: 40vh;--b: 4vh;}
}
翻译自: https://www.hongkiat.com/blog/css-cutout-border/
css文字加边框镂空文字_如何使用CSS创建镂空边框设计相关推荐
- wps文档怎么给整段文字加框_WPS文字如何给段落添加双波浪边框
您可能感兴趣的话题: WPS 核心提示:WPS文字如何给段落添加双波浪边框? 1.打开文字中的一篇原始文档,用你鼠标选中需要添加双波浪边框的段落,然后把鼠标切换到功能区的"开始"选 ...
- css 设置表格右边有图片_我写CSS常用的方法
在这里想与你分享一个由各大CSS网站总结推荐的20个有用的规则和实践经验集合.有一些是面向CSS初学者的,有一些知识点是进阶型的.希望每个人通过这篇文章都能学到对自己有用的知识. 1.注意外边距折叠 ...
- wps文档怎么给整段文字加框_WPS文字技巧—如何为WPS文档增加页面特效边框
在一些特殊的WPS文档排版中,我们常常需要为它增加一些特殊的设置,但是一些新手小伙伴却不知道怎么设置?下面我们就来给大家分享一个在WPS文字你不可不知的小秘密-如何为WPS文档增加页面特效边框,能够快 ...
- css布局属性与合成属性_如何使用CSS逻辑属性控制布局
css布局属性与合成属性 CSS逻辑属性定义了一种处理布局的新方法. 他们的主要目标是帮助开发人员支持不同的书写系统,例如从右到左(RTL)和垂直显示的脚本. 这些新功能可以通过逻辑属性而不是物理属性 ...
- css使两个盒子并列_前端学习CSS
一 CSS CSS是Cascading Style Sheets的缩写,层叠样式表,用来控制网页数据的显示,可以使网页的显示与数据内容分离. 二 引入方式 (1)行内式:在标记的style属性中设置C ...
- css animation动画完成后隐藏_如何使用CSS实现旋转地球动画效果
旋转地球功能实现主要借助于CSS动画效果完成,通过移动地图背景图层,云彩图层等,在视觉上呈现出旋转地球效果.旋转地球最终实现效果如下图所示: 旋转地球效果展示 设计思路与核心技术 旋转地球效果实现主要 ...
- css div撑满窗口高度_如何使用CSS将div的高度设置为窗口的100%?
css div撑满窗口高度 Introduction: 介绍: Hello there developers! Well, certainly if you are reading this arti ...
- 懒加载和预加载的区别_类的动态创建(ro,rw)amp; 懒加载类和非懒加载类底层加载的区别 amp; 类和分类的搭配分析...
黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题!作者丨OSMin链接:https://juejin.im/post/5 ...
- css背景图替代文字 - 如何让css无法加载时页面功能依然不受影响
方法一:利用text-indent将文字移出盒子,然后让换行文字不换行,这样,当css无法加载时,虽然背景图无法显示,但是文字也不会被移出盒子,这样文字显示在用户的视野里了 代码: <!DOCT ...
- CSS 实现加载动画之一-菊花旋转
CSS 实现加载动画之一-菊花旋转 原文:CSS 实现加载动画之一-菊花旋转 最近打算整理几个动画样式,最常见的就是我们用到的加载动画.加载动画的效果处理的好,会给页面带来画龙点睛的作用,而使用户愿意 ...
最新文章
- Datawhale组队学习周报(第047周)
- Cisco常见路由器密码和版本恢复方法
- Android Framework常用工具及LOG调试方法
- [分享]Host文件的原理解释及应用说明
- 【SQLAlchemy】is not bound to a Session; attribute refresh operation cannot proceed
- 不能用了 重装系统git_怎么用光盘重装系统?
- MATLAB学习笔记(七)
- struts2 action 中autowired 不能注入
- perl oracle ppm,Perl图形化包管理工具PPM学习使用笔记
- 《张居正》—— 读后总结
- ansible 远程Windows主机
- linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
- 目前最赚钱快的微信营销几种玩法和模式
- 不藏了,我的一千行 MySQL 学习笔记(2万字长文)
- 青岛大学计算机研究生实验室,实验室概况
- 大鱼吃小鱼游戏代码 基于java-swing
- 一次 applet 客户端打印 jasperreport 报表任务笔记
- 数字图像处理第九章----形态学图像处理
- stm32 mbed 入门教程(二)---点亮第一盏小灯
- docker资源分配 Cgroup和安全通信 TLS