图片插入在css与html有什么区别?

html-css09

图片插入在css与html有什么区别?,第1张

Q1.二者有何区别?\x0d\x0aA1.写在css里面的图片是以背景图形式存在的,而写在html里的是以标签形式存在的,\x0d\x0a 在网页加载的过程中,以css背景图存在的图片会等到结构加载完成(网页的内容全部显示以后)才开始加载,而html中的标签是网页结构(内容)的一部分会在加载结构的过程中加载,换句话讲,网页会先加载标签的内容,再加载背景图片,如果你用引入了一个很大的图片,那么在这个图片下载完成之前,之后的内容都不会显示。而如果用css来引入同样的图片,网页结构和内容加载完成之后,才开始加载背景图片,不会影响你浏览网页内容。\x0d\x0a\x0d\x0aQ2.什么图片插入在css,什么图片插入在html里面?\x0d\x0aA2.如果是装饰性的图片就写在css里面,如果是内容性的图片就写在html里面,\x0d\x0a 打个比方,你要做一个有漂亮边框的相册。那么修饰边框的图片就写在css里面,相框里面的内容照片就写在html里面。\x0d\x0aQ3.不知道怎样问了,扩展点说就更好。\x0d\x0aA3.以后的网页设计方向是表现层和内容层分离,css管表现,也就是显示效果,html管结构,内容结构的划分,这样代码要简洁易维护一些。关于其他回答中的“像这种属于表现层的东西都会被丢弃的”这种说法是不正确的,内容中的图片还是要使用图标而不是css背景来引入。而“css图片可以复用,图片不能复用”这种说法也不正确,网页加载过程中相同的图片会下载一次并保存在缓存里面,其他地方的使用了同样的图片是不会再去下载的。图片也可以复用。

在理解css的背景图片之前需要清楚两个问题,在什么情况下去使用css的背景图片?又在什么情况下去使用img标签的内容图片?html中专门有一个img标签用于向页面中去插入内容图片,那么如何区分这两种情况呢?

网页中可以使用很多的图片格式,下面简单的列举一些:

background-position 属性既可以使用关键字,也可以使用像素、em、百分比,最简单的情况下:可以给两个值,一个表示相对于左侧的偏移量,一个表示相对于顶部的偏移量。

calc()可以让浏览器代替你计算任何数值,包括(角度、像素、百分比等),甚至还支持混合单位的计算,非常强大,比如:你使用的页面布局为百分比布局,但是在UI设计稿中又需要去进行20px的偏移,那么就可以写成“calc(100% + 20px)”。

同样的,背景图片右侧定位的问题也可以使用calc()去处理,比如:左侧为文本内容,右侧icon图标的定位。

默认的情况下,背景图片是绘制在元素边框以内的,如果把图片定位到边框的下方,而边框又被设置为半透明,那么图片边缘就会出现半透明的边框,使用background-clip属性可以处理这种情况,background-clip:border-box将其改为padding-box就可以把图片剪裁到内边距盒子内,content-box值会把图片位于内边距及其之外的部分剪裁掉。

背景会附着在指定的元素后面,如果滚动页面,那么背景也会随着页面的滚动而滚动,通过background-attachment属性改变这种行为。

除了fixed和默认值scroll,还可以把background-attachment设为local,它与scroll的区别在于,scroll会让图片相对于元素本身固定,而local会让背景图片相对于元素中的内容固定,也就是元素设置了固定大小,overflow设置了auto或scroll,则元素内部内容滚动显示时,图片会随之滚动。

background-size明确指定一个值,可以重新设置图片大小,也可以让它随着元素大小缩放.

如果希望图片随着元素的缩放而缩放,则必须设置为百分比的形式,不过,百分比设置时不是相对于图片固有的大小,而是相对于容器的大小,如果给图片的宽高都加以百分比的形式处理,那么会导致图片产生变形。

还有一个属性值contain,这个值会让浏览器尽可能的保持图片的最大化,同时不改变图片的宽高比,浏览器决定哪一边使用auto。

另一个属性值为cover,意思是图片会缩放,覆盖整个元素,同时不会变形,如果在一个高而窄的元素中,元素高度会填满,但是图片的两边会被切除掉。