css3 background 新添属性让你的背景图不再拉伸而是随窗口变化而变化 一介布衣 |
您所在的位置:网站首页 › 表格横向拉伸怎么设置 › css3 background 新添属性让你的背景图不再拉伸而是随窗口变化而变化 一介布衣 |
传统的页面制作中,当你遇到css2 的时候,如何来显示一张背景图呢? 拉伸 (无节操的拉伸,容器长宽完全超出背景图的长宽) 重复展示(用无数张同样的图片来铺满容器的背景面积) x轴 /y轴 重复展示(纵向拉伸不重复 / 横向拉伸不重复 ) background-repeat 这个货 看下它的值: repeat 默认。背景图像将在垂直方向和水平方向重复。 repeat-x 背景图像将在水平方向重复。 repeat-y 背景图像将在垂直方向重复。 no-repeat 背景图像将仅显示一次(无节操拉伸)。 inherit 规定应该从父元素继承 background-repeat 属性的设置。 很明显,上面的 css2 满足不了这种需求. 但是强大的css3 扩展了一些很有用的属性来实现这样的效果. 在 css3 中,一下三个属性都新增了部分属性值. background-image background-repeat background-position 主要说下 background-repeat 属性新增的属性值 css3 中 background-repeat 可以用2个属性值来表示,如下: background-repeat: repeat no-repeat;上面我们看到 value 处有2个值,前面表示 x轴,后面表示 y轴 它的效果等同于下面的写法: (仅在x轴重复显示) background-repeat: repeat-x;新增 space和round属性值,它弥补了之前css2 中无休止贴瓷砖模式的重复平铺,超出就裁剪,让背景图的控制尽量做到完美. 下面我们分别来看下 space 和 round 属性值: space: 背景图在水平和垂直方向平铺且不裁剪.两端对齐,中间填补空白,背景图大小不变 (这里应该注意 不裁剪,两端对齐) round: 将背景图在水平和垂直方向平铺且不裁剪.但是背景图片可能被拉伸或缩短 (注意 不裁剪, 可以伸缩,有可能拉伸) 因为背景图小于填充容器面积时,图片在重复平铺时会遵循四舍五入的原则, 如果容器面积不能放下4个半图片时,那么就会显示4张图片(4张被拉伸的图片) 如果容器面积可以放下大于4个半时,那么容器会挤进去5张图片 background 在css3 中新增了3个属性 background-origin background-clip background-size 下面简单介绍下: 1.background-origin 这个是一个背景图定位的属性,貌似和 css2.0 中的 background-position 功能一致,但是存在就是合理的. 他的主要特定更多是定位容器.简单说就是 这个背景图该放在哪个盒子里. 然后再使用 background-position 来定位图片的精准位置,搭配使用更加强大. 2.background-clip 在背景区域中,背景图片需要裁减的位置 background-clip : border-box | padding-box | content-box | no-clip;默认值:border-box 3.background-size 字面意思看到他是控制背景大小的.它允许背景被拉伸或者被压缩. background-size: auto | | | cover | contain参数: auto:默认值,不改变背景图片的原始高度和宽度。 :成对出现如200px 50px,将背景图片宽高依次设置为前面两个值;当设置一个值时,将其作为图片宽度值,高度被设置为"auto",且高度等比缩放。 :0%~100%之间的任意值,将背景图片宽高依次设置为所在元素宽高【并不是图片默认的宽高】乘以前面百分比得出的数值,一个值时,高度等比缩放。 经常用下面代码在网站中适应全屏幕背景。 cover ,contain 可以确定背景图片在容器中等比缩放,其他的内容记不住,你也不需要记,需要的时候 google cover 和 contain 都是等比缩放,又有什么细微的差别呢? 容器与背景图 长度比:150/100=1.5 宽度比:60/50=1.2 cover 取大,所以就按照 长度比 1.5 (等比缩放背景图片) contain 取小,所以就按宽度比 1.2 (等比缩放背景图片) 现在我们有一个如下的需求: 需求: 那么我们现在需要一个div里面的背景图在div 宽度变化时(水平拉伸浏览器宽度)背景的图片不能变形,并且根据div大小,图片也要自动缩放(这里的缩放是指横纵放心的成比例缩放) 看图片1 看图片2 上面的红框表示div的可视区域,这张背景图其实很大 (2800x880) 当我们把div 可视区域从图1 拉到 图2 的情况时,你可以发现背景图左侧的小汽车没有被拉伸,最后右侧的小汽车也进入了我们背景图可视范围内.感觉上在容器逐渐缩放时,背景图是跟着缩放的感觉,有木有! 但是,问题来了,如果我们的div 拉伸到比背景图片还大的时候 (水平宽度>2800px) 而我们又不允许图片重复平铺,这时会出现背景图 可能会被拉伸 这个可能性取决于你的容器可视大小是否超出了背景图最大size ,否则背景图将会成比例缩放. 看下这个style 的写法: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |