Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用某些点之间的间隙实现CSS边框

使用某些点之间的间隙实现CSS边框
EN

Stack Overflow用户
提问于 2019-06-11 04:58:31
回答 2查看 69关注 0票数 0

我希望能够使用像我包含的代码片段这样的东西。我的问题是,如果不使用透明度,我实际上无法掩盖边界之间的差距……这是一个问题,因为我想让这个盒子经过一幅图像。当然还有更好的方法。有谁有什么想法吗?

理想情况下,有一些方法可以在不使用透明度的情况下实际省略边界中的这些部分,因此它们根本不存在。我已经挖了几个小时了,似乎找不到解决方案。有谁有什么想法吗?

代码语言:javascript
运行
AI代码解释
复制
div {
	background: transparent;
  color: transparent;
	padding: 2rem;
	position: relative;
	width: 200px;
	height: 200px;
	margin: 3em auto;
	border: dashed 2px #BEBEBE;
}

div::before,
div::after {
	position: absolute;
	background: white;
	content: '';
	z-index: 1;
}

div::before {
	width: 70px;
	left: calc(50% - 35px);
	height: calc(100%);
	top: -2px;
}

div::after {
	height: 35px;
	left: -2px;
	width: calc(100%);
	top: calc(50% - 15px);
}

div>* {
	position: relative;
	z-index: 2;
}
代码语言:javascript
运行
AI代码解释
复制
<div>

</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-11 08:07:08

使用多个背景来实现,如下所示:

代码语言:javascript
运行
AI代码解释
复制
div.box {
  padding: 2rem;
  position: relative;
  width: 200px;
  height: 200px;
  margin: 3em auto;
  
  background:
  /* Top (two lines)*/
    repeating-linear-gradient(90deg, #BEBEBE 0 4px,transparent 4px 8px) top left/40% 2px,
    repeating-linear-gradient(90deg, #BEBEBE 0 4px,transparent 4px 8px) top right/40% 2px,
  /* Left (two lines)*/
    repeating-linear-gradient(0deg, #BEBEBE 0 4px,transparent 4px 8px) top left/2px 40%,
    repeating-linear-gradient(0deg, #BEBEBE 0 4px,transparent 4px 8px) bottom left/2px 40%,
    /* Bottom */
    repeating-linear-gradient(90deg,#BEBEBE 0 4px,transparent 4px 8px) bottom/100% 2px,
    /*Right*/
    repeating-linear-gradient(0deg,#BEBEBE 0 4px,transparent 4px 8px) right/2px 100%;
  background-repeat:no-repeat;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="box">

</div>

可以使用CSS变量进行优化:

代码语言:javascript
运行
AI代码解释
复制
div.box {
  --c:#BEBEBE; /* Color */
  --t:2px;     /* Thickness*/
  --d:4px;     /* length of dashes */
  --h:50px;    /* size of the hole*/

  padding: 2rem;
  position: relative;
  width: 150px;
  height: 150px;
  display:inline-block;
  margin: 1em;
  --g:var(--c) 0 var(--d),transparent var(--d) calc(2*var(--d));
  background:
    /* Top (two lines)*/
    repeating-linear-gradient(90deg ,var(--g)) top left /calc(50% - var(--h)/2) var(--t),
    repeating-linear-gradient(-90deg,var(--g)) top right/calc(50% - var(--h)/2) var(--t),
    /* Left (two lines)*/
    repeating-linear-gradient(180deg,var(--g)) top    left/var(--t) calc(50% - var(--h)/2),
    repeating-linear-gradient(0deg  ,var(--g)) bottom left/var(--t) calc(50% - var(--h)/2),
    /* Bottom */
    repeating-linear-gradient(90deg,var(--g)) bottom/100% var(--t),
    /*Right*/
    repeating-linear-gradient(0deg ,var(--g)) right /var(--t) 100%;
  background-repeat:no-repeat;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="box">

</div>

<div class="box" style="--c:red;--t:4px;--h:90px;--d:8px;">

</div>

票数 1
EN

Stack Overflow用户

发布于 2019-06-11 11:55:51

也许是SVG

代码语言:javascript
运行
AI代码解释
复制
svg {
  display: block;
  width: 200px;
  margin: 1em auto;
}

path {
  fill: none;
  stroke: grey;
  stroke-width: 2;
  stroke-linejoin: miter;
  stroke-dasharray: 5 5;
}
代码语言:javascript
运行
AI代码解释
复制
<svg viewbox="0 0 100 100">
  <path d="M5,5
           L40,5 
           M60,5 
           L95,5
           L95,95
           L5,95
           L5,60
           M5,40
           L5,5
           "
        
        />
  
</svg>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56536742

复制
相关文章
三元运算符
var b = 5; alert((b == 5) ? a = "true" : a = "false"); 答案:true //判断一个整数是奇数还是偶数 var a, b; a = window.
闻语博客
2021/01/21
1K0
三元运算符
三元运算符在Python中通常被称为条件表达式。 这些运算符根据条件是否正确来评估某些事情。
Helloted
2022/06/06
8450
三元运算符
var b = 5; alert((b == 5) ? a = "true" : a = "false"); 答案:true //判断一个整数是奇数还是偶数 var a, b; a = window.
小语雀网
2022/05/06
5810
三元运算符
特殊说明:以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心
2022/01/19
5790
JAVA三元运算符_java中三元运算符详解
三元运算符是if else或者if else if else的简写形式,可以使代码看起来简洁些。
全栈程序员站长
2022/09/27
6130
python三元运算符
转载于:https://www.cnblogs.com/shengguorui/p/11149593.html
用户7886150
2021/01/22
1.2K0
PHP三元运算符
PHP5.3.0 更新公告 : https://www.php.net/releases/5_3_0.php
很酷的站长
2023/02/03
9140
三元运算符用法_三元运算符判断三个值
大家好,又见面了,我是你们的朋友全栈君。 一、三元运算符 条件运算符 (?:) 也称为三元条件运算符,用于计算布尔表达式,并根据布尔表达式的计算结果为 true 还是 false 来返回(使
全栈程序员站长
2022/09/27
7490
JavaScript条件运算三元运算符和四元运算符的写法
exprIfTrue 如果表达式 condition 的计算结果是 truthy(它和 true 相等或者可以转换成 true ),那么表达式 exprIfTrue 将会被求值。
德顺
2020/04/01
2.1K0
JavaScript语法-逻辑运算符、三元运算符
JavaScript语法-逻辑运算符 && || !其他类型转换Boolean:1、number:0或NaN为假,其他为真2、string:除了空为字符串(" "),其他都是true3、null&undefined:都是false4、对象:所有对象都为true代码案例:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>逻辑运算符</title> <script> var flag = tru
用户9392460
2022/11/17
6400
<Javascript>浅谈js“三元表达式” (三元运算符)
各位大神,大家好,相约周三。我们又见面了。 众所周知,三元表达式在代码量上比if…else语句更简洁一些。但是博主在可读性上更加偏向于if…else语句。三元表达式不仅在js中使用,在很多后台程序语言,比如java、php中都有使用,不过在js中对于三元表达式的要求貌似要松很多。废话不多说。下面一起看看三元表达式。
全栈程序员站长
2022/09/14
3.3K0
<Javascript>浅谈js“三元表达式” (三元运算符)
java之三元运算符
逻辑运算 ? m : n;如果逻辑运算为真,则返回m,否则返回n 实例: 判断i,j两个数的大小,如果a较大,则输出1,否则输出0; 找到i,j,k三个数中的最大值; public class Tes
西西嘛呦
2020/08/26
7140
PHP的三元运算符
三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。 记性太差先记录下方便日后看 $if_summary = $row['IF_SUM
用户8099761
2023/05/11
1.7K0
java之三元运算符
需要三个数据才可以进行操作的运算符 格式:数据类型 变量名=条件?表达式A:表达式B 判断条件是否成立,成立为true,表达式A的值赋给左侧的变量;判断条件不成立为false,将表达式B的值赋给左侧的变量。
IT工作者
2022/02/11
6520
Java之三元运算符
文章目录 三元运算符 1. 基本语法 2. 案例演示 TernaryOperator.java 3. 三元运算符使用细节 4. 课堂练习 三元运算符 1. 基本语法 条件表达式 ? 表达式 1: 表达
兮动人
2021/06/11
1.2K0
Java之三元运算符
v-show使用三元运算符
这里是使用了element-ui <template slot-scope="scope"> <el-button type="primary" plain v-show="scope.row
江一铭
2022/06/17
5810
python中的三元运算符
三元运算符 a if test else b 如果test为真则返回a,否则返回b x = x+1 if x%2==1 else x 实现斐波那契序列 def fn(n): return n if n < 2 else fn(n-1)+fn(n-2)
Tim在路上
2020/08/05
1.1K0
Java中的三元运算符
讲三元运算符之前,我们先讲一讲双目运算符,比如我们常用 “=” 赋值运算符,就是一个双目运算符。它的格式如下:
Gorit
2021/12/09
9760
java三元运算符怎么用_按位运算符
大家好,又见面了,我是你们的朋友全栈君。 Java提供了一个三元运算符,可以同时操作3个表达式。三元运算符语法格式如下: 判断条件? 表达式1 :表达式2 在上述语法格式中,当判断条件成立
全栈程序员站长
2022/11/01
6690
vue 三元运算讲解
如果第一个条件为真,则引用第一个值classA;否则引用第二个值classB;通过切换显示不同的样式
侠客冷展堂
2022/01/07
1.9K0
vue 三元运算讲解

相似问题

三元运算符和赋值运算符

20

三元运算符和html

10

Props和三元运算符

220

三元(条件)运算符和样式

40

三元运算符和宏#定义

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档