首页>建站相关>纯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 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

css 2023-05-21

一套纯css实现的图标库-ICONO

网络上有很多免费的图标库,比如fontawesome,比如typicons,利用一些小图标来代替呆板的文字描述,可以让页面显得更为简洁而生动。这类图标库也有一些美中不足之处,比如在不同分辨率下,可能产生边缘的锯齿,也可能会有部分几个图...

建站相关 css

css 2023-05-15

text-transform属性控制文本的大小写

看范例站点的css代码,发现这么一条,之前没有接触过这个属性,先就text-transform做个笔记。这个属性会改变元素中的字母大小写,而不论源文档中文本的大小写。如果值为 capitalize,则要对某些字母大写,但是并没有明确定...

建站相关 css

css 2022-12-01

利用css整站加灰色遮罩实现全站变灰

遇到举国同悲的日子,大部分站点会将原本五颜六色的画面呈现为黑白,用黑白的色调,表达对伟人的追思,为逝去的英雄送行。用css就可以很方便的实现全站变灰的效果。外部样式目前绝大多数站点都采用了引用外部css文件的方式,对于这类站点,只需要...

建站相关 css

css 2022-11-25

利用ul+css实现一个分页效果

尝试自定义了一个wordpress的后台设置页面,仅仅是添加了表单,暂时没有写css效果,分页器的页面展现是这样的,想用ul+css实现图片下方这样的效果。为ul添加一个flex属性,可以很方便的让其中包含的li元素排列为一行,为li...

建站相关 css