给定一个div,我想用视觉样式“锁定”/禁用。此前也有类似的模式
#box {
width: 200px;
height: 100px;
border: 1px solid;
background: repeating-linear-gradient(45deg, #1c71b8, #1c71b8 10px, #5fb5fc 10px, #5fb5fc 20px);
}
<div id="box">some content goes here, width and height are dynamic<br><br>it might take some space</div>
现在我想在div中划线(类似于draw diagonal lines in div background with CSS)。我只能设置元素的样式,因此无法添加额外的辅助div。我试过这个
#box {
width: 200px;
height: 100px;
border: 1px solid;
background:
linear-gradient(to top left,
rgba(28, 113, 184, 0) 0%,
rgba(28, 113, 184, 0) calc(50% - 5px),
rgba(28, 113, 184, 1) 50%,
rgba(28, 113, 184, 0) calc(50% + 5px),
rgba(28, 113, 184, 0) 100%),
linear-gradient(to top right,
rgba(28, 113, 184, 0) 0%,
rgba(28, 113, 184, 0) calc(50% - 5px),
rgba(28, 113, 184, 1) 50%,
rgba(28, 113, 184, 0) calc(50% + 5px),
rgba(28, 113, 184, 0) 100%);
}
<div id="box">some content goes here, width and height are dynamic<br><br>it might take some space</div>
这是我想要的,但是我怎么才能从线条中去除模糊呢?有时我可能需要调整线条粗细,例如:将其更改为10 px。
2条答案
按热度按时间uurv41yg1#
你不需要所有这些颜色停止,你可以简化如下:
使用CSS变量更好:
jaxagkaj2#
在渐变的1个色标的过程中,将线条从alpha值0渐变到alpha值1。在这两个值之间,alpha将(确实)变化。因为它们分别是50%-5 px、50%和50%+5 px,所以你有很多像素的alpha值可以改变。你把这种效果叫做模糊。
从线的一个边缘到线的另一个边缘,您希望颜色为单个值。
因此,不是有一个alpha为1的单个stop,而是有两个stop。它们中的每一个将代表线的一个边缘。然后,不是在多个像素上过渡回来,而是立即过渡回来,在相同位置处具有另一个颜色停止。
下面是它在代码中的样子: