С помощью SVG можно создать паттерн для штриховки.
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<style type="text/css">
line { stroke: #ccc; }
</style>
<defs>
<pattern id="diagonalHatch" width="10" height="10" patternTransform="rotate(45)" patternUnits="userSpaceOnUse">
<line x1="0" y1="0" x2="0" y2="10" />
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#diagonalHatch)" />
</svg>
Плотность штриховки контролируется шириной pattern, чем меньше значение, тем ближе линии штриховки и наоборот. Цвет линий можно задать в CSS. Толщину можно задать через stroke-width.
body {
background-image: url(hatch-diagonal.svg);
}
Пример.
Проведём линии под прямым углом друг другу - получим сетку. Рисуем через центр паттерна. Сетку можно повернуть на любой угол через атрибут patternTransform:
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<style type="text/css">
line { stroke: #ccc; }
</style>
<defs>
<pattern id="grid" patternUnits="userSpaceOnUse" width="10" height="10" patternTransform="rotate(45)">
<line x1="5" y1="0" x2="5" y2="10" />
<line x1="0" y1="5" x2="10" y2="5" />
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#grid)" />
</svg>
body {
background-image: url(hatch-grid.svg);
}
Можно поиграться с настройками. Сетку можно сделать побольше, добавив scale() в значение patternTransform.
Усиливаем штриховку наложением второй штриховки под другим углом. Также можно менять цвет и ширину в CSS для SVG:
line { stroke: #333; stroke-width: 6px; }
Также можно применить селектор nth-child.
line:nth-child(odd) {
stroke: #555; stroke-width: 6px;
}
line:nth-child(even) {
stroke: #333; stroke-width: 5px;
}
Разместив каждую штриховку в собственном паттерне со своим углом поворота, мы можем создать разные варианты узора.
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<style type="text/css">
line { stroke: #ccc; stroke-width: 3; }
</style>
<defs>
<pattern id="grid1" patternUnits="userSpaceOnUse" width="10" height="10" patternTransform="rotate(16)">
<line x1="5" y1="0" x2="5" y2="10" />
</pattern>
<pattern id="grid2" patternUnits="userSpaceOnUse" width="10" height="10" patternTransform="rotate(32)">
<line x1="5" y1="0" x2="5" y2="10" />
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#grid1)" />
<rect width="100%" height="100%" fill="url(#grid2)" />
</svg>
body {
background-image: url(hatch-cross.svg);
}
Схожая техника пригодится для создания шахматного узора.
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<style type="text/css">
#checkerboard { fill: #ccc; }
</style>
<defs>
<pattern id="checkerboard" patternUnits="userSpaceOnUse"
width="50" height="50">
<rect x="0" y="0" width="25" height="25" />
<rect x="25" y="25" width="25" height="25" />
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#checkerboard)" />
</svg>
body {
background-image: url(hatch-chess.svg);
}
Вернуться в раздел SVG в качестве фонового рисунка.