不确定是否可能,但我该如何创建一个1像素的对角线,它从元素的左上方到右下方,无论该元素的宽度和/或高度如何?
不确定是否可能,但我该如何创建一个1像素的对角线,它从元素的左上方到右下方,无论该元素的宽度和/或高度如何?
你可以用多种方式来实现这个。
1) 背景图片
1.1) SVG
你可以直接创建一个SVG,并将其作为内联代码使用,用于绘制线条。使用它,你可以实现漂亮的效果,如阴影、渐变、虚线等等。还可以在CSS背景图像元素中使用SVG。
<svg style='width: 100%; height: 100%;'>
<line x1="0" y1="100%" x2="100%" y2="0"
style="stroke:rgb(0,0,0);stroke-width:1"/>
</svg>
1.2) 修复图像(png,jpg,...)
您还可以在完整的div上使用简单的图像作为背景图像。
2) 创建线性背景渐变
.testDiv {
width: 300px;
height: 300px;
background:linear-gradient(to bottom right, transparent calc(50% - 1px), black calc(50% - 1px), black 50%, transparent 50%);
}
这是如何工作的?
(了解更多点击此处)
3) 旋转内部div(仅限正方形div)
当调整testDiv大小时,线条应保持对角线状态。
.testDiv{
width: 600px;
height: 600px;
background-color: gray;
}
.lineDiv {
position: relative;
top: 29%;
left: 29%;
width: 142%;
height: 142%;
border-left: solid thin blue;
transform: rotate(45deg);
}
这是如何工作的?
-> 142 = sqrt(100 ^ 2 + 100 ^ 2)(参见勾股定理)
应该使用线性渐变的背景图片:
body {
background:linear-gradient(to bottom right, transparent calc(50% - 1px), black calc(50% - 1px), black 50%, transparent 50%) yellow;
/*demo purpose */
height:50%;
width:50%;
margin:auto;
}
html {
display:flex;
height:100vh;
background:white;
}
/* end demo purpose */
运行片段并调整浏览器窗口大小以测试行为