Мне нужно создать горизонтальные линии с помощью CSS в элементах <div>, теперь я хочу соединить их с другой линией (нарисованной от руки), есть идеи? Изображение того, что я делаю ниже:
.canvas {
top: 1px;
left: 1px;
background-color: #CCC;
width: 1000px;
height: 1000px;
}
.top-line {
top: 100px;
left: 256px;
position: absolute;
border-top: 1px solid #000;
height: 1px;
width: 488px;
}
.bottom-line {
top: 900px;
left: 100px;
position: absolute;
border-top: 1px solid #000;
height: 1px;
width: 800px;
}<div class = "canvas">
<div class = "top-line"></div>
<div class = "left-line"></div>
<div class = "right-line"></div>
<div class = "bottom-line"></div>
</div>Вы открыты для решений, использующих Javascript, или вы ищете чистое решение CSS для этого?
используйте ячейку таблицы с rowspan, которая представляет собой количество строк между верхней строкой и нижней строкой, затем поместите туда gif с изображением строки соответствующей высоты/ширины






Вы можете рассмотреть один элемент и некоторую трансформацию, чтобы визуально добиться желаемого:
.box {
width:300px;
height:200px;
border:1px solid;
border-right:none; /*remove this if you want the right line too*/
transform:perspective(30px) rotateX(5deg);
transform-origin:bottom center;
}
body {
background:pink;
}<div class = "box">
</div>Еще одна идея, касающаяся косого преобразования:
.box {
width:300px;
height:200px;
border-bottom:1px solid;
position:relative;
}
.box:before,
.box:after {
content:"";
position:absolute;
top:0;
height:100%;
width:50%;
border-top:1px solid;
}
.box:before {
border-left:1px solid;
transform-origin:bottom left;
left:0;
transform:skew(-10deg);
}
.box:after {
/*border-right:1px solid; add this for the right line */
transform-origin:bottom right;
right:0;
transform:skew(10deg);
}
body {
background:pink;
}<div class = "box">
</div>Я пишу CSS для left-line в приведенном ниже фрагменте кода, надеюсь, это вам поможет. Спасибо
.left-line {
border-left: 1px solid #000;
height: 815px;
position: relative;
left: 161px;
transform: rotate(11deg);
top: 181px;
}
.canvas {
top: 1px;
left: 1px;
background-color: #CCC;
width: 1000px;
height: 1000px;
}
.top-line {
top: 100px;
left: 256px;
position: absolute;
border-top: 1px solid #000;
height: 1px;
width: 488px;
}
.bottom-line {
top: 900px;
left: 100px;
position: absolute;
border-top: 1px solid #000;
height: 1px;
width: 800px;
}
.left-line {
border-left: 1px solid #000;
height: 815px;
position: relative;
left: 161px;
transform: rotate(11deg);
top: 181px;
}<div class = "canvas">
<div class = "top-line"></div>
<div class = "left-line"></div>
<div class = "right-line"></div>
<div class = "bottom-line"></div>
</div>
Вы должны сделать строки 4 разных div? вы можете добавить границу к контейнеру и
transform: skew()его.