首页 > 其他分享 >css 利用 linear-gradient 实现条纹背景

css 利用 linear-gradient 实现条纹背景

时间:2023-04-20 18:34:48浏览次数:50  
标签:aaa linear gradient background size css ddd

1. 水平条纹背景

当给背景设置渐变效果时,默认的渐变方向是垂直由上到下的,效果如下:

{
  background: linear-gradient(#aaa, #ddd);
}

image

尝试拉近色标的距离,会发现渐变区域变小了:

{
  background: linear-gradient(#aaa 40%, #ddd 60%);
}

image

当渐变色的色标设置为相同位置时,过渡区域就会变成无限小,看起来的效果就会如下图所示:

{
  background: linear-gradient(#aaa 50%, #ddd 50%);
}

image

然后通过 background-size 来调整他的尺寸,由于默认情况下背景是重复平铺的,所以得到的效果就是填满水平条纹:

{
  background: linear-gradient(#aaa 50%, #ddd 50%);
  background-size: 100% 30px;
}

image

如果某个色标的位置值比整个列表中在它之前的色标的位置值都要小,则该色标的位置值会被设置为它前面所有色标位置值的最大值。因此后面色标的位置可以写成0:

{
  background: linear-gradient(#aaa 50%, #ddd 0);
  background-size: 100% 30px;
}

可以通过修改色标的位置来生成不等宽的条纹:

{
  background: linear-gradient(#aaa 30%, #ddd 0);
  background-size: 100% 30px;
}

{
  background: linear-gradient(#aaa 70%, #ddd 0);
  background-size: 100% 30px;
}

image image

如果需要多种颜色的条纹,设置多种颜色渐变即可:

{
  background: linear-gradient(#aaa 33.33%, #ddd 0, #ddd 66.66%, #fff 0);
}

image

2. 垂直条纹背景

想要生成垂直方向的条纹,只需修改渐变的方向即可(别忘了把 background-size 颠倒一下):

{
  background: linear-gradient(to right, #aaa 50%, #ddd 0);
  background-size: 30px 100%;
}
/* 或 */
{
  background: linear-gradient(90deg, #aaa 50%, #ddd 0);
  background-size: 30px 100%;
}

image

3. 斜向条纹背景

如果直接修改渐变方向,使其倾斜45°,并且修改 background-size ,会得到下面的效果:

{
  background: linear-gradient(45deg, #aaa 50%, #ddd 0);
  background-size: 30px 30px;
}

image

虽然效果也很好看,但是我们需要的效果是把整个背景旋转45°,而不是把每个小切片旋转45°。仔细观察会发现,想要通过小切片拼接成完整的斜向条纹,只需将每个切片分割为四份。因此需要新增两个色标:

{
  background: linear-gradient(45deg, #aaa 25%, #ddd 0, #ddd 50%, #aaa 0, #aaa 75%, #ddd 0);
  background-size: 30px 30px;
}

image image

效果实现了,再调整 background-size ,增加条纹宽度:

{
  background: linear-gradient(45deg, #aaa 25%, #ddd 0, #ddd 50%, #aaa 0, #aaa 75%, #ddd 0);
  background-size: 60px 60px;
}

image image

效果虽然实现,但是条纹的宽度如果想和上面的同样设置为15px,那 background-size 就需要根据勾股定理求出准确的值,此处的结果约为42,因为这个结果不能完全整除,所以只能根据想要的精确度四舍五入取值,因此这种方法不够灵活。如果想要其他倾斜角度的条纹便很难计算 background-size

想要灵活地实现不同角度的条纹,这时候就需要用到 repeating-linear-gradient() ,重复线性渐变。重复线性渐变会循环色标,知道填满整个背景:

{
  background: repeating-linear-gradient(45deg, #aaa, #ddd 30px);
}

image

改写成上面的效果就是:

{
  background: repeating-linear-gradient(45deg, #aaa 0, #aaa 15px, #ddd 0, #ddd 30px);
}

image

只需修改角度便可以得到不同角度的条纹:

{
  background: repeating-linear-gradient(60deg, #aaa 0 15px, #ddd 0 30px);
}

{
  background: repeating-linear-gradient(30deg, #aaa 0 15px, #ddd 0 30px);
}

image image

4. 附录

MDN linear-gradient
MDN repeating-linear-gradient

标签:aaa,linear,gradient,background,size,css,ddd
From: https://www.cnblogs.com/lpkshuai/p/17337854.html

相关文章

  • 01-CSS中的非布局样式
    title:01-CSS中的非布局样式publish:true前言CSS中,有很多非布局样式,这些样式(属性)和与布局无关,包括:字体、字重、颜色、大小、行高背景、边框滚动、换行装饰性属性(粗体、斜体、下划线)等。这篇文章,我们来对上面的部分样式做一个回顾。边框如何用边框画一个三角形?详见......
  • 02-CSS布局
    title:02-CSS布局publish:true前言常见的布局属性(1)display确定元素的显示类型:block:块级元素。inline:行内元素。inline-block:对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以设置宽高)。(2)position确定元素的位置:static:默认属性值。relative:......
  • CSS的一些小知识
    title:认识Web和Web标准publish:false隐藏盒子的几种方式隐藏盒子,有以下几种方式:(1)方式一:overflow:hidden;//隐藏盒子超出的部分(2)方式二:display:none; 隐藏盒子,而且不占位置(用的最多)比如,点击X,关闭京东首页上方的广告栏。(3)方式三:visibility:hidden;//隐......
  • CSS开发积累
    title:认识Web和Web标准publish:false让flex盒子中的子元素们,居中flex布局常用的三行代码:display:flex;justify-content:center;//子元素在横轴的对齐方式(左右居中)align-items:center;//子元素在竖轴的对齐方式(上下居中)让文字只显示一行,超出显示......
  • CSS文章推荐
    title:认识Web和Web标准publish:false2020-03-16Bootstrap中文文档:https://code.z01.com/v4/content/tables.html2020-03-13CSS实现鼠标悬停弹出微信二维码......
  • 11-CSS3属性详解(一)
    title:11-CSS3属性详解(一)publish:true前言我们在上一篇文章中学习了CSS3的选择器,本文来学一下CSS3的一些属性。本文主要内容:文本盒模型中的box-sizing属性处理兼容性问题:私有前缀边框背景属性渐变文本text-shadow:设置文本的阴影格式举例: text-s......
  • 12-CSS3属性详解:动画详解
    title:12-CSS3属性详解:动画详解publish:true前言本文主要内容:过渡:transition2D转换transform3D转换transform动画:animation过渡:transitiontransition的中文含义是过渡。过渡是CSS3中具有颠覆性的一个特征,可以实现元素不同状态间的平滑过渡(补间动画),经常......
  • 13-CSS3属性:Flex布局图文详解
    title:13-CSS3属性:Flex布局图文详解publish:true前言CSS3中的flex属性,在布局方面做了非常大的改进,使得我们对多个元素之间的布局排列变得十分灵活,适应性非常强。其强大的伸缩性和自适应性,在网页开中可以发挥极大的作用。flex初体验我们先来看看下面这个最简单的布局:......
  • 14-CSS3属性详解:Web字体
    title:14-CSS3属性详解:Web字体publish:true前言开发人员可以为自已的网页指定特殊的字体(将指定字体提前下载到站点中),无需考虑用户电脑上是否安装了此特殊字体。从此,把特殊字体处理成图片的方式便成为了过去。支持程度比较好,甚至IE低版本的浏览器也能支持。字体的常见格......
  • 17-CSS3的常见边框汇总
    title:17-CSS3的常见边框汇总publish:trueCSS3常见边框汇总<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>CSS3边框</title><style>body,ul,li,dl,dt,dd,h1,......