background-size中,100%和cover的区别

background-size中,100%和cover都是用于将图片扩大或者缩放来适应整个容器

background-size:100% 100%;---按容器比例撑满,图片变形;

background-size:cover;---把背景图片放大到适合元素容器的尺寸,图片比例不变,但是要注意,超出容器的部分可能会裁掉。

当为百分比的时候,100%和100%,100%也会显示不一样的效果:

background-size:这个属性有两个值,第一个值为x轴方向的缩放比例或者px,第二个值为y轴方向的缩放比例或者px,如果只写一个值,则第二个值默认为auto(根据图片原来的比例,以及现有的宽度,来确定高度)
比方说:你有一张长宽比例为4:3的图片,有一个width:100px;height:50px;的盒子(也就是长宽比例为2:1)。
background-size:100% 100%;这种方式设置完背景图片的大小后,会完全铺满整个盒子,并且背景图片的比例会因此改变为2:1
background-size:100%;这种方式设置的背景图片的大小,x轴会和盒子一样的宽,但是y轴由于默认为auto,根据上面的理论计算得背景图片的高度为300px,但是盒子只有50px高,超出的部分隐藏,所以看两种写法的效果自然就不一样啦。
第一种效果你一定会看到完整的背景图片,但是有可能被挤压(失去图片原来的比例)
第二种效果你不一定能看到完整的图片,但是图片的比例没有发生变化。

原文地址:https://www.cnblogs.com/c-x-m/p/10416716.html

时间: 2024-10-10 20:14:41

background-size中,100%和cover的区别的相关文章

background-size值为100% 100%和cover的区别

background-size:100%100%;---按容器比例撑满,图片变形: background-size:cover;---把背景图片放大到适合元素容器的尺寸,图片比例不变. 下图是添加background-size:100% 100% 后的背景图效果,背景图被拉伸后有点失真 下图是添加background-size: cover 后的背景图效果,背景图被拉伸后背景图不能全部显示 它们的区别: background-size:100% 100%把背景图进行横向和纵向的拉伸,图片比例随之

OC中 self.view.frame.size.height = 100; 不能通过编译的原因

在OC中,当需要修改一个view的尺寸时,通常是通过先将 self.view.fram赋值给一个临时变量,然后修改临时变量,最后将临时变量赋值给 self.view.frame.代码如下: 1 // 1. 用一个临时变量保存返回值. 2 CGRect temp = self.view.frame; 3 4 // 2. 给这个变量赋值.因为变量都是L-Value,可以被赋值 5 temp.size.height = 100f; 6 7 // 3. 修改frame的值 8 self.view.fra

background-size: contain 与cover的区别,以及ie78的兼容写法

一:background-size: contain 与cover的区别: 作用: 都是将图片以**相同宽高比**缩放以适应整个容器的宽高. 不同之处在于: 1.  在no-repeat情况下,如果容器宽高比与图片宽高比不同, cover:图片宽高比不变.铺满整个容器的宽高,而图片多出的部分则会被截掉: contain:图片自身的宽高比不变,缩放至图片自身能完全显示出来,所以容器会有留白区域: PS:其实,从英文的意思来说:cover意味着“遮罩.遮盖”---此处理解为“塞满”较恰当,conta

c#中struct和class的区别

简单来说,struct是值类型,创建一个struct类型的实例被分配在栈上.class是引用类型,创建一个class类型实例被分配在托管堆上.但struct和class的区别远不止这么简单.本篇主要包括: ■ 概括来讲■ 从赋值的角度体验struct和class的不同■ 从参数传值角度体验struct和class的不同■ 从struct类型的struct类型属性和struct引用类型属性体验struct和class的不同■ 从构造函数体验struct和class的不同■ 从给类型成员赋初值体验s

CSS的width:100%和width:auto区别

CSS的width:100%和width:auto区别 一.   问题 前段时间在调整树结构的时候,发现如果树的节点名称比较长的话在IE6下则不会撑开外面的元素,导致节点的名称只显示了一半,同时图标和名称换行显示了,但是在IE8和IE9下则显示正常.定位到问题后,最终发现是下面的属性导致的,如下图红色所致,把width的值设置为auto后即可解决问题: .TreeView,.TreeView ul{ padding:0px 0px 0px  19px; list-style:none; marg

.NET中struct与class的区别

在.net中的struct与class有很多相似之处,比如可以直接new,对于成员可以直接XX.field,以至于有不少程序员在用时,将其混在一起,分不清有何区别.这两者有何区别呢? 1.类型不同 我们先来看一段代码 static void Main(string[] args) { TypeDemo(); Console.ReadLine(); } // Reference type (because of 'class') class SomeClassRef { public Int32

objective-c中#import和@class的区别

在Objective-C中,可以使用#import和@class来引用别的类型, 但是你知道两者有什么区别吗? @class叫做forward-class,  你经常会在头文件的定义中看到通过@class的引用, 原因就是当你只用@class来引入一个类时, 编译器知道有这么一个类,也就是说它能识别Engine *engine; 而在implementation文件中,如果你想要访问engine.price, 编译器就会出错, 即使你用了@class引入了. 这时需要使用的其实是#import

oracle中函数和存储过程的区别和联系【转载竹沥半夏】

oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as

WPF中ControlTemplate和DataTemplate的区别

下面代码很好的解释了它们之间的区别: <Window x:Class="WPFTestMe.Window12" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window12" Height="300&q