一. 简单来说,img是内容部分的东西,css的background-image是修饰性的东西。

img------从页面元素来说,如果是页面中的图片是作为内容出现的,比如广告图片,比如产品图片,那么这个必然是用img了,因为这个是页面元素内容。页面元素内容最关键的一点就是,当页面没有样式的时候,还是能一眼看过去就知道什么是什么……

background-image---背景图片,修饰性的内容,在页面中可有可无。有,是为了让页面中视觉感受上更美;无,并不影响用户浏览网页获取内容。

二. 区别

1、background-image是背景图片,是css的一个样式。

<img/>是一个块状的元素,是html的一个标签

2、<img/>是一个dom对象,可以使用js进行元素的操作。背景图片不占位置。

3、一般来说,如果是装饰性的图片就使用background-img,如果和文体内容很相关就使用<img/>。

操作背景图片  ,document.getElementById("id").style.backgroundImage = "url("+currentImage+")";//currentImage图片地  址变量。

获取css属性document.getElementById("id").style.backgroundImage。

4、在网页中的加载顺序不一样,html中的标签<img/>是网页结构(内容)的一部分会在加载结构的过程中加载,  以css背景图存在的图片background-image会等到dom结构加载完成(网页的内容标签全部显示以后)才开始加载,  既网页会先加载标签<img/>的内容,再加载背景图片background-image。如果你用引入了一个很大的图片,那么在  这个图片下载完成之前,img后的内容都不会显示。而如果用css来引入同样的图片,网页结构和内容加载完成之后  ,才开始加载背景图片,不会影响你浏览网页内容。

5、选择的时候也要兼顾seo和标签语义化,logo最好同时使用背景图和<img/>标签。

三.js操作

操作标签<img/>

1、设置属性document.getElementsByTagName("img")[0].setAttribute("src","newSrc"); 获取属性document.getElementsByTagName("img")[0].getAttribute("src");

或者:设置document.getElementsByTagName("img")[0].src="newSrc"; 获取document.getElementsByTagName("img")[0].src;

获取与设置宽高:document.getElementsByTagName("img")[0].style.width;document.getElementsByTagName  ("img")[0].style.width = "320px";

2、图片居中:一般来说可以用CSS中的①“text-align:center属性,②margin:0 auto或③定位属性”(position)就可以居中。 但是主要看是看你的页面布局是怎样的,是否用了定位。根据这些来判断到顶使用怎样的方法来使元素居中。 设置background属性,详细参考

  1、background-image:url("");//设置图片的背景图片

  2、background-color:#***||colorName||rgba(,,,);//设置背景色

  3、background-position:center;//设置背景图片在父元素中的显示位置,如果您仅规定了一个关键词,那么第二个值将是"center"。接受三种值,百分比||描述值||像素值;

  4、background-repeat:repeat||repeat-x||repeat-y||no-repeat||inherit;

  5、background-origin: padding-box|border-box|content-box;//规定 background-position 属性相对于什么位置来定位。

  6、background-clip: border-box|padding-box|content-box;//background-clip 属性规定背景的绘制区域。剪裁的依据。

   7、background-attachment:scroll||fixed||inherit;//属性设置背景图像是否固定或者随着页面的其余部分滚动。

  8、background-size:cover;//设置了图片背景no-repeat之后,使用这个属性可以让图片平铺。详细讲解background-size

img 和 background-image 优劣比较的更多相关文章

  1. css样式之background详解

    background用法详解: 1.background-color 属性设置元素的背景颜色 可能的值 color_name            规定颜色值为颜色名称的背景颜色(比如 red) he ...

  2. css样式之background详解(格子效果)

    background用法详解: 1.background-color 属性设置元素的背景颜色 可能的值 color_name            规定颜色值为颜色名称的背景颜色(比如 red) he ...

  3. CSS背景background、background-position使用详解

    背景(background)是css中一个重要的的部分,也是需要知道的css的基础知识之一.这篇文章将会涉及css背景(background)的基本用法,包括诸如 background-attachm ...

  4. 微信小程序与传统APP十大优劣对比

    随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比       ...

  5. CSS 中关于background 属性功能

    background 是 css中的核心属性,我们对他应该充分了解. background-image   定义背景图像  这个属性是我们用的最多的属性 设置背景图像有两个方式 background: ...

  6. 1 background(复合属性)与font(复合属性) 2 行内块的间距问题 3 行内元素的margin 4 清除浮动 5定位的元素的层级 6 Border-radius: 边框半径

    1 background(复合属性)与font(复合属性): background: 颜色  图片的链接  是否平铺  背景位置 是否滚动.(可以随意调动或省略) Font: 粗度 字体风格 字体大小 ...

  7. Android什么时候进行View中Background的加载

    对大多数Android的开发者来说,最经常的操作莫过于对界面进行布局,View中背景图片的加载是最经常做的.但是我们很少关注这个过程,这篇文章主要解析view中背景图片加载的流程.了解view中背景图 ...

  8. CSS中对图片(background)的一些设置心得总结

    写网页的时候很多情况需要对图片进行操作,如何在不进行专业的美工裁切操作的情况下而让自己的素材度达到最大的满意度呢,这是一个问题,对于懒得开ps切图的我,通常会直接在网络上download一张图片,直接 ...

  9. PopupWindow 点击外部和返回键无法消失背后的真相(setBackgroundDrawable(Drawable background))

    刚接手PopupWindow的时候,我们都可能觉得很简单,因为它确实很简单,不过运气不好的可能就会踩到一个坑: 点击PopupWindow最外层布局以及点击返回键PopupWindow不会消失 新手在 ...

  10. CSS背景background详解,background-position详解

    背景(background)是css中一个重要的的部分,也是需要知道的css的基础知识之一.这篇文章将会涉及css背景(background)的基本用法,包括诸如 background-attachm ...

随机推荐

  1. 北京Uber优步司机奖励政策(4月8日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. 成都Uber优步司机奖励政策(3月9日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. APP九宫格滑动解锁的处理

    写手机自动化测试脚本关于APP九宫格滑动解锁方面采用了appium API 之 TouchAction 操作. 先是用uiautomatorviewer.bat查询APP元素坐标: 手工计算九宫格每个 ...

  4. MySQL☞sign函数

    sign( )函数:判断数值的正负性,如果数值是正数,返回值是1,如果该数值是负数,返回值是-1,如果该数值是 0,返回值也是0. 格式: select sign(数值) from 表名 例子: 1. ...

  5. 巧用浏览器F12调试器定位系统前后端bug

    做测试的小伙伴可能用过httpwatch,firebug,fiddler,charles等抓包(数据包)工具,但实际上除了这些还有一个简单实用并的抓包工具,那就是浏览器的F12调试器. httpwat ...

  6. 《Effective C++》读书笔记 条款02 尽量以const,enum,inline替换#define

    Effective C++在此条款中总结出两个结论 1.对于单纯常量,最好以const对象或enum替换#define 2.对于形似函数的宏,最好改用inline函数替换#define 接下来我们进行 ...

  7. sql server存储特殊字符解决办法

    好久没来院子了,最近在学java了,再加上项目比较紧,最近都没怎么上,其实这几天在项目中学到不少东西,都能写下来,但是久而久之就忘了,还是得养成及时总结的好习惯啊,还有有时间一定要把那个小项目整理下来 ...

  8. [转]Excel数据转化为sql脚本

    在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况.这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库. 1 在数据前插入一列单元格,用来拼写sql语句. 具体 ...

  9. Elasticsearch 相同内容文档,不同score(评分)的奇怪问题

    原文:http://stackoverflow.com/questions/14580752/elasticsearch-gives-different-scores-for-same-documen ...

  10. Sublime Text 插件推荐——for web developers

    楼主向高大上的: web front-end development engineer (好吧,google就是这样翻译的 ^_^)们推荐 ST 插件,在此抛砖引玉: NO.1 :Emmet (原名: ...