html - 为六边形类添加发光效果

标签 html css

我目前正尝试在使用 CSS 类创建的六边形周围添加统一的发光效果,但由于六边形的绘制方式,发光效果最终出现奇怪的中断,我似乎无法修复。

.hexagon {
	position: relative;
	border-radius: 5px;
	height: 125px;
	width: 75px;
	margin: 50px;
	box-sizing: border-box;
	border: 5px solid transparent;
	border-top-color: black;
	border-bottom-color: black;
	display: inline-block;
}
.hexagon:before, .hexagon:after {
	content: "";
	border: inherit;
	position: absolute;
	top: -5px;
	left: -5px;
	background: inherit;
	border-radius: inherit;
	height: 100%;
	width: 100%;
}
.hexagon:before {
	transform: rotate(60deg);
}
.hexagon:after {
	transform: rotate(-60deg);
}
.hexagon:hover, .hexagon:hover:before, .hexagon:hover:after {
	box-shadow: 0 10px 2px -2px rgba(255,0,0,0.5), 0 -10px 2px -2px rgba(255,0,0,0.5);
}
<div class=hexagon></div>

最佳答案

您可以在元素内添加更多的内边距并调整边框半径。所有的线都会交叉,半径会固定形状:

.hexagon {
  position: relative;
  border-radius: 20px;
  padding: 40px;
  height: 125px;
  width: 75px;
  margin: 50px;
  box-sizing: border-box;
  border: 5px solid transparent;
  border-top-color: black;
  border-bottom-color: black;
  display: inline-block;
}

.hexagon:before,
.hexagon:after {
  content: "";
  border: inherit;
  position: absolute;
  top: -5px;
  left: -5px;
  background: inherit;
  border-radius: inherit;
  height: 100%;
  width: 100%;
}

.hexagon:before {
  transform: rotate(60deg);
}

.hexagon:after {
  transform: rotate(-60deg);
}

.hexagon:hover,
.hexagon:hover:before,
.hexagon:hover:after {
  box-shadow: 0 10px 2px -2px rgba(255, 0, 0, 0.5), 0 -10px 2px -2px rgba(255, 0, 0, 0.5);
}
<div class=hexagon></div>

当然你可以通过同时改变 padding 和 border-radius 来控制形状的半径

关于html - 为六边形类添加发光效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755454/

相关文章:

.net - 以渐进格式保存 JPG

javascript - js 下拉菜单不起作用

javascript - 禁用Ionic 3 Framework中隐藏在ion-footer和ion-header上的溢出

css - 如何将此滚动条移近帖子区域?

javascript - 在所有元素的所有属性内搜索

javascript - 带有mysql的php中的php代码中的 bool 错误

javascript - 点击功能应该反转图像的颜色并恢复先前反转图像的颜色

html - IE8 不透明度砍掉背景图像

CSS这段代码片段是什么意思?更新

html - 按像素而不是百分比的 CSS3 渐变