src和data-src属性之间有什么区别?

Ada*_*ała 91 html html5 image

使用标签的任何一个data-srcsrc属性有什么区别和后果(好的和坏的)img?我可以同时使用两者获得相同的结果吗?如果是这样,何时应该使用它们?

Juk*_*ela 163

属性srcdata-src没有任何共同之处,只是HTML5 CR允许它们并且它们都包含字母src.其他一切都不同.

src属性在HTML规范中定义,具有功能意义.

data-src属性只是无限data-*属性集之一,它没有定义的含义,但可用于在元素中包含不可见数据,以用于脚本(或样式).

  • 杰夫你在想ng-src吗?https://docs.angularjs.org/api/ng/directive/ngSrc (4认同)
  • Angular.js 也使用 data-src 基于模型对 url 进行后期绑定 (2认同)

jfr*_*d00 18

如果您希望图像加载并显示特定图像,则使用.src加载该图像URL.

如果您想要一个可以包含URL的元数据(在任何标签上),那么请使用data-srcdata-xxx您要选择的任何元数据.

有关data-xxxx属性的MDN文档:https://developer.mozilla.org/en-US/docs/DOM/element.dataset

src图像标签上的示例,其中图像为您加载JPEG并显示它:

<img id="myImage" src="http://mydomain.com/foo.jpg">

<script>
    var imageUrl = document.getElementById("myImage").src;
</script>
Run Code Online (Sandbox Code Playgroud)

非图像标签上"data-src"的示例,其中尚未加载图像 - 它只是div标签上的一段元数据:

<div id="myDiv" data-src="http://mydomain.com/foo.jpg">

<script>
    // in all browsers
    var imageUrl = document.getElementById("myDiv").getAttribute("data-src");

    // or in modern browsers
    var imageUrl = document.getElementById("myDiv").dataset.src;
</script>
Run Code Online (Sandbox Code Playgroud)

data-src用作存储备用图像的URL的位置的图像标记的示例:

<img id="myImage" src="http://mydomain.com/foo.jpg" data-src="http://mydomain.com/foo.jpg">

<script>
    var item = document.getElementById("myImage");
    // switch the image to the URL specified in data-src
    item.src = item.dataset.src;
</script>
Run Code Online (Sandbox Code Playgroud)


小智 10

src 将立即渲染该值,它\xe2\x80\x99是使用单一源和 iframe 的图像、视频的默认值。

\n

data-src 在延迟加载时使用,以防止页面加载时加载默认图像。大多数延迟加载库将使用交集观察器,并在加载图像时将 data-src 值复制到 src。

\n


Tie*_* T. 6

第一个<img />无效 -src是必需的属性。data-src是一个可以被 JavaScript 等利用的属性,但没有表示意义。

  • @AdamPierzchała 要点是一样的——这个问题没有“非此即彼”;必须包含 `src`。您可以使用 `data-` 属性为脚本语言(如 JavaScript)添加额外的数据以供利用。 (3认同)