首页>建站相关>纯css实现一个网格背景

纯css实现一个网格背景

想引用一篇他人的文章,为了与原创内容的版式产生差异,准备将引用内容用blockquote元素包裹,并且为其实现一个特别的背景。网上搜索好看的背景图的时候无意中发现原来纯css也可以实现简单的网格背景,正好更高难度的拼接图片啥得咱也不会,就挑个最容易实现的吧。

线性渐变linear-gradient

css3的渐变可以在两个或多个指定的颜色之间展现平稳的过渡,在此之前,我们必须使用图像来实现这些效果。通过使用css3的渐变(gradients),现在我们可以减少下载的时间和带宽的使用。此外,渐变效果的元素在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的。
css3定义了两种类型的渐变(gradients):

  • 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向;
  • 径向渐变(Radial Gradients)- 由它们的中心定义。

利用纯css实现一个网格背景,我们只需要用到线性渐变,这个一个简单的线性渐变的案例,笔者在这个实例中将blockquote作为了容器,当然您也可以选择div,下面这个例子实现了一个纵向的渐变:

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(red,orange); 
}
</style>

如果需要一个横向的渐变,我们需要为gradient提供一个角度,就像这样:

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(90deg,red,orange); 
}
</style>

跟很多图像处理软件一样,css的线性渐变同样支持更多的颜色:

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(90deg,red,yellow,orange); 
}
</style>

linear-gradient的语法

linear-gradient(角度, 颜色1 结束位置, 颜色2 结束位置, ...);

当颜色1的结束位置不为0的时候,起始位置(0位)到颜色结束位置之间的这一部分是不会产生渐变效果的,这一部分呈现为纯色,色彩即为颜色1;而当颜色1的结束位置等于或者大于颜色2的结束位置的时候,两个结束位置之间也无法产生渐变,假如该渐变仅两种颜色,那么颜色2结束位置至色块尾部之间的距离也不会产生渐变,呈现为颜色2,这样就通过线性渐变的极限值,实现了泾渭分明的两种颜色。就像下面这个实例,我们将两种颜色的终点位置都设置为2px,这个实例中我们限定了背景图的尺寸,因为背景图默认是平铺的,所以还是占满了容器。

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(90deg,#333 2px,#f90 2px);
    background-size: 60px 60px;
}
</style>

linear-gradient是允许叠加的,我们可以将其属性定义成这样,然而实际显现的效果并没有什么两样:

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(90deg,#333 2px,#f90 2px),linear-gradient(#333 2px,#f90 2px);
    background-size: 60px 60px;
}
</style>

接下来修改一下这两个线性渐变的顺序,这次仅仅显示了横线,竖线在渲染时被覆盖了,虽然还是没能达到我们的目标,但至少可以说明一点,线性渐变的渲染顺序是自右向左的,这个例子中css首先渲染了右边的竖直样式,又接着渲染了逗号左侧的横线样式,结果把前者给覆盖了。

<style>
blockquote{
    width:700px;
    height:120px;
    background:linear-gradient(#333 2px,#f90 2px),linear-gradient(90deg,#333 2px,#f90 2px);
    background-size: 60px 60px;
}</style>

我们需要的最终效果是纯色的网格图,因为两次线性渐变的颜色相互覆盖,所以我们需要将上面一层的背景色设置为透明,前面说了渲染的顺序自右向左,所以我们尝试把左边的,也就是被放置于上一层的渐变的背景色设置为透明。

<style>
blockquote{
    width:700px;
    height:200px;
    background:linear-gradient(90deg,#333 2px,transparent 2px),linear-gradient(#333 2px,#f90 2px);
    background-size: 60px 60px;
}
</style>

成功生成了一个网格图片,就是格子的间距似乎过于大了,再适当微调以下,将background-size的长宽都稍微调小一些,最终效果如下:

<style>
blockquote{
    width:700px;
    height:200px;
    background:linear-gradient(90deg,#333 2px,transparent 2px),linear-gradient(#333 2px,#f90 2px);
    background-size: 40px 40px;
}
</style>

一个扩展案例

弄明白了其中的原理,我们也可以利用线性渐变的特性来打造更多的效果,比如下面的色块图:

<style>
blockquote{
    width:700px;
    height:200px;
    background:linear-gradient(135deg,#ccc 50%,#eee 50%);
    background-size: 40px 40px;
}
</style>

css实现网格背景的实例文件 提取码: xb8c

标签: css

移动端可扫我直达哦~

推荐阅读

css 2025-03-02

img插入div容器底部有3px白边

现象当盒子容器中中包含img元素时,如果连接区域对比度较高的情况下,会发现父元素的高度比img图片的高度多出3px,容器底部有一条明显的白边。<div> <img src=" "> ...

建站相关 css

css 2025-03-02

当网页中有遮罩时,如何禁止背景元素滚动

很多自适应的主题,在手机端都是选择把菜单栏隐藏在侧面,按需调用。调用的时候往往页面会显示一个遮罩,屏蔽掉了其他不相关元素的点击,但遮罩上即便设置了overflow属性,也无法阻挡背景body自由翻滚的热情。这个时候可以考虑给body临...

建站相关 css

css 2025-03-01

关于css的三维旋转rotateX,rotateY,rotateZ

试着写了一个前台登录窗口,想在展示的时候绕x轴以3d旋转的方式出现。旋转效果是实现了,但看着好像没有啥透视效果。记得之前修改wp主题的时候是实现过这个效果的,当真是学如逆水行舟,不进则退...退...退...测试了几个百度搜索到的代码...

建站相关 css

css 2025-02-28

站点导航条缩放动画不一致的问题

想问导航条增加一个滚动动画,向下滚动一段之后调整导航条高度,结果效果是有了,一看盒子高度先上去了,菜单栏却慢吞吞的隔了很久才到位,像极了工作摸鱼的打工人,盲目的调整了很久,最后发现是各部件动画持续时间不一致的问题。同一个模块中的零件,...

建站相关 css

css 2024-10-23

在CSS中的如何进行打印设置

之前翻阅wordpress默认主题的时候,看到主题的打印设置占了很大的篇幅,嫌太麻烦所以直接跳过了。这几天想要打印一份博客上的内容,觉得页眉侧栏以及页尾都有点多余,只需要打印博文部分的内容就可以了。于是只能重新去学习关于打印的语法,发...

建站相关 css

css 2023-10-14

Css中的反选伪类“:not()”

该“:not()”伪类用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-class)。描述使用 :not() 时,有几种不寻常的效果和结果需要注意:可以使用此伪类编...

建站相关 css

css 2023-09-06

浮动阴影-为什么我的css浮动元素总是差那么点意思

很多站点都这样的效果,鼠标移上去时对应元素上浮,然后这样的元素往往有一排。博主常见的操作是左右平移几次,然后元素就跟琴键一样依次浮动,看起来非常解压。虽然这个效果有个小小的bug,将鼠标停留在浮动起点与终点的一小块区域,会导致重复触发...

建站相关 css

css 2023-09-04

ios下safari浏览器hover失效的问题

修改主题的时候发现ios下hover子菜单弹出后收不回去,虽然刷新一下页面或者点击一个其他的按钮也能正确关闭,但是始终感觉操作不便。于是安装了一个第三方浏览器(夸克)尝试了一下,第三方浏览器是没有什么问题的,纯属safari的锅。找了...

建站相关 css

css 2023-05-25

如何用css实现一个导航条的logo

浏览网络的时候看见某个站点的导航条菜单图标很有意思,导航条logo一般都是3条横杠,该站点的其中一条横杠是略短的,鼠标悬停时会动态伸长。尝试着自己利用css实现了类似的效果,考虑将其放入正在修改的wordpress主题当中,先记录一下...

建站相关 css