如何只用 CSS 制作网格?

来源:how-to-make-a-grid-like-graph-paper-grid-with-just-css

在看 用于打印到纸张的 CSS 这篇文章时,对其中的网格比较好奇,作者提供了 stackoverflow 的链接,就看到了来源的这个问题和众多回复。本文从里面挑选了一些个人比较喜欢的样式,贴在下面展示。

样式1

效果图:

样式代码:

html 复制代码
<!DOCTYPE html>
<html>
<style>
html
{
    width: 100%;
    height: 100%;
    background-color: lightblue;

    background-size: 1cm 1cm;
    background-image:
      linear-gradient(to right, grey 1px, transparent 1px),
      linear-gradient(to bottom, grey 1px, transparent 1px);
}
</style>
<body>
    <h1>Sample text</h1>
    <h2>Sample text</h2>
    <h3>Sample text</h3>
    <h4>Sample text</h4>
    <p>sample text</p>
    <h1>示例文字</h1>
    <h2>示例文字</h2>
    <h3>示例文字</h3>
    <h4>示例文字</h4>
    <p>示例文字</p>
</body>
</html>

打印预览无边距时,选择A4纸时的尺寸和格子数量刚好一样,用这种背景比较方便做排版和套打,下图是打印后的效果:

和A4纸的尺寸 21.0 x 29.7厘米(8.27 x 11.69英寸) 是一致的。

样式2

效果图:

样式代码:

html 复制代码
<!DOCTYPE html>
<html>
<style>
html
{
    width: 100%;
    height: 100%;
    background-color: lightblue;

    background-size: 40px 40px;
    background-image: radial-gradient(circle, #000000 1px, rgba(0, 0, 0, 0) 1px);
}
</style>
<body>
    <h1>Sample text</h1>
    <h2>Sample text</h2>
    <h3>Sample text</h3>
    <h4>Sample text</h4>
    <p>sample text</p>
    <h1>示例文字</h1>
    <h2>示例文字</h2>
    <h3>示例文字</h3>
    <h4>示例文字</h4>
    <p>示例文字</p>
</body>
</html>

样式3

效果图:

样式代码:

html 复制代码
<!DOCTYPE html>
<html>
<style>
html
{
    width: 100%;
    height: 100%;
    background-color: lightblue;

    background:
        linear-gradient(-90deg, rgba(0,0,0,.05) 1px, transparent 1px),
        linear-gradient(rgba(0,0,0,.05) 1px, transparent 1px), 
        linear-gradient(-90deg, rgba(0, 0, 0, .04) 1px, transparent 1px),
        linear-gradient(rgba(0,0,0,.04) 1px, transparent 1px),
        linear-gradient(transparent 3px, #f2f2f2 3px, #f2f2f2 78px, transparent 78px),
        linear-gradient(-90deg, #aaa 1px, transparent 1px),
        linear-gradient(-90deg, transparent 3px, #f2f2f2 3px, #f2f2f2 78px, transparent 78px),
        linear-gradient(#aaa 1px, transparent 1px),
        #f2f2f2;
    background-size:
        4px 4px,
        4px 4px,
        80px 80px,
        80px 80px,
        80px 80px,
        80px 80px,
        80px 80px,
        80px 80px;
}
</style>
<body>
    <h1>Sample text</h1>
    <h2>Sample text</h2>
    <h3>Sample text</h3>
    <h4>Sample text</h4>
    <p>sample text</p>
    <h1>示例文字</h1>
    <h2>示例文字</h2>
    <h3>示例文字</h3>
    <h4>示例文字</h4>
    <p>示例文字</p>
</body>
</html>

样式4

效果图:

样式代码:

html 复制代码
<!DOCTYPE html>
<html>
<style>
html
{
    width: 100%;
    height: 100%;
    background-color: lightblue;

    --grid-size: 30px;
    --grid-strength: 1px;
    --grid-dash: 10px;
    --grid-gap: 5px;
    --grid-color: #ddd;
    --paper-color: #fff;

    background-color: var(--paper-color);
    background-size: var(--grid-dash) var(--grid-dash), var(--grid-size) var(--grid-size);
    background-image:
        linear-gradient(to bottom, transparent var(--grid-gap), var(--paper-color) var(--grid-gap)), 
        linear-gradient(to right, var(--grid-color) var(--grid-strength), transparent var(--grid-strength)),
        linear-gradient(to right, transparent var(--grid-gap), var(--paper-color) var(--grid-gap)),
        linear-gradient(to bottom, var(--grid-color) var(--grid-strength), transparent var(--grid-strength));

}
</style>
<body>
    <h1>Sample text</h1>
    <h2>Sample text</h2>
    <h3>Sample text</h3>
    <h4>Sample text</h4>
    <p>sample text</p>
    <h1>示例文字</h1>
    <h2>示例文字</h2>
    <h3>示例文字</h3>
    <h4>示例文字</h4>
    <p>示例文字</p>
</body>
</html>
相关推荐
小小小小宇3 小时前
TS泛型笔记
前端
小小小小宇3 小时前
前端canvas手动实现复杂动画示例
前端
codingandsleeping3 小时前
重读《你不知道的JavaScript》(上)- 作用域和闭包
前端·javascript
小小小小宇3 小时前
前端PerformanceObserver使用
前端
charlee444 小时前
给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)(下)
css·markdown·响应式设计·flexbox·粘性定位
zhangxingchao4 小时前
Flutter中的页面跳转
前端
烛阴5 小时前
Puppeteer入门指南:掌控浏览器,开启自动化新时代
前端·javascript
全宝6 小时前
🖲️一行代码实现鼠标换肤
前端·css·html
小小小小宇6 小时前
前端模拟一个setTimeout
前端
萌萌哒草头将军6 小时前
🚀🚀🚀 不要只知道 Vite 了,可以看看 Farm ,Rust 编写的快速且一致的打包工具
前端·vue.js·react.js