在 HTML 中使用 img 标签 src 属性显示图像与在 CSS 中设置图像样式有什么区别?

2024-01-17

结果是相同的,但我猜想在 HTML 中使用 img 标签 src 属性设置图像和在 CSS 中设置图像样式之间存在差异。例如:

In HTML:

<img src="//notrealdomain.com/some.png">

and

In HTML:

<img id="my-pic" src="">

In CSS:

#my-pic {
    background-image: url(//notrealdomain.com/some.png)
}

让我们通过比较来看看。

仅仅提供一个是不够的background-image财产,因为img元素没有固有的height or widthbackground-image属性无法像设置src属性确实如此。因此,如果没有声明尺寸,则不会显示应用 CSS 的图像。

#my-pic {
    background-image: url(//placehold.it/150);
}
<img src="//placehold.it/150" />
<img id="my-pic" src="" />

您可以强制img标签有width and height等于background-image,如果你希望它的行为类似于src- 应用图像。注意:在某些浏览器中,图像顶部会显示损坏的图像占位符图标background-image.

#my-pic {
    display: inline-block;
    width: 150px;
    height: 150px;
    background-image: url(//placehold.it/150);
}
<img src="//placehold.it/150" />
<img id="my-pic" src="" />

但这有局限性,即原生img and src属性组合不具备,例如仅定义height or width并保留自然约束。

#my-pic {
    display: inline-block;
    width: 150px;
    background-image: url(//placehold.it/300);
}
<img src="//placehold.it/300" width="150" />
<img id="my-pic" src="" />

另外,设置width and height除了自然尺寸之外的任何东西,只会裁剪background-image,而不是用力约束它的方式img行为自然。

#my-pic {
    display: inline-block;
    width: 300px;
    height: 150px;
    background-image: url(//placehold.it/300);
}
<img src="//placehold.it/300" width="300" height="150" />
<img id="my-pic" src="" />

您还可以使用其他属性来实现各种结果,例如background-attachment, background-clip, background-origin, background-position, background-repeat, and background-size.

但如果您使用这些样式,您可能不应该使用img标记为您的容器; Adiv或其他类型的具有语义含义的包含元素将更适合这项工作。

关于alt文本,如果在中定义的图像src属性加载失败,值为alt属性按预期显示;而一个alt赋予 CSS 应用图像的属性始终显示,并根据文本基线调整内联块元素的对齐方式。

#my-pic {
  display: inline-block;
  width: 150px;
  height: 150px;
  background-image: url(http://placehold.it/150);
}

#my-pic-failed {
  display: inline-block;
  width: 150px;
  height: 150px;
  background-image: url(//failedtoload.png);
}
<img src="http://placehold.it/150" alt="Alternate text"/>
<img src="//failedtoload.png" alt="Alternate text"/>
<img id="my-pic" src="" alt="Alternate text" />
<img id="my-pic-failed" src="" alt="Alternate text" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 HTML 中使用 img 标签 src 属性显示图像与在 CSS 中设置图像样式有什么区别? 的相关文章

  • 输入类型=图像 - onclick(),将触发其事件,但在 jquery 中的函数上表现不佳

    我认为这可能是两篇文章 2个问题 所以如果你对此发表评论 我会将它们分开 主要问题实际上是 我怎样才能为按钮设置图像背景 简单且正确 我想现在我可以确定这些事实了 因为我在将图像设置为按钮背景时遇到了 小 问题 我想 好吧 如果很难设置的话
  • 使用画布仅删除文本而不删除图像

    我正在尝试删除画布元素中的文本 而不丢失Background Image of the Canvas Element 我想我需要保存Imagesrc并把它还给Canvas Element之后clearRect 但我不知道该怎么做 我希望有人
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 我的 CSS 未在 Internet Explorer 11 和 Firefox 中加载!仅适用于 Chrome

    我正在创建一个简单的网页 我的 CSS 只能在 Chrome 中使用 它在 Firefox 和 IE11 中都不起作用 这是我的 HTML h1 b u Adding a new Visitor u b h1 br div class wr
  • 增加数字输入、CSS、HTML 上的向下和向上箭头的大小

    有没有办法利用CSS来增大数字输入框右侧的上下箭头的大小 只是向上和向下箭头 而不是整个输入框 或者至少是按比例的 看这个例子 size 36 font size 36px size 12 font size 12px
  • php中的条件格式化html表与时间戳比较

    echo table style width 100 tr echo td Order td echo td Destination td echo td Location td echo td Status td echo td Time
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • CSS:水平滚动时背景不存在

    好的 我的背景设置如下 HTML div div CONTENT HERE div div CSS container background url image gif content width 800px margin auto 因此
  • 使用deployJava.runApplet来定位特定元素

    经过多年成功维护一个使用旧有的小程序 嵌入Java小程序的方法 我们无法捂住耳朵唱 啦啦啦 不再了 是时候使用 deployJava runApplet 当我使用点击处理程序触发此方法时 此处通过 jQuery 在按钮上使用事件侦听器 但这
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • Textmate“注释”命令对于 css 代码无法正常工作

    当我在 TextMate 中切换 CSS 源代码的注释时遇到一些问题 Using the shortcut CMD I activate the Comment Line Selection command from the source
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • JSTL 在循环中每 5 个字段集创建一个新行

    您好 我目前正在迭代并在表中显示字段集列表 为了让布局变得更得体一些 我想在每次循环到达第五个字段集时创建一个新行 谢谢 JSP div class det table class det tr td td tr table div
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 带显示块的SPAN

    和默认有什么区别 div 元素和默认值 span 元素与display block HTML 元素的有效性和语义存在差异 否则它们是相同的 div and span两者都被定义为通用容器 在 HTML 方面没有更深层次的含义 一个默认为块显

随机推荐

  • 非重放热可观察

    原问题 我有一个场景 我有多个IObservable我想要组合的序列Merge然后听 但是 如果其中之一产生错误 我不希望它使其他流的所有内容崩溃 也不希望重新订阅序列 这是一个 永远持久 的序列 我通过附加一个来做到这一点Retry 合并
  • 类型错误:定义 __new__ 后 object() 不带任何参数

    我真的不明白这段代码中的错误在哪里 class Personne def init self nom prenom print Appel de la m thode init self nom nom self prenom prenom
  • PHP:json 解码限制

    采取这个代码 json file get contents this gt url true decode json decode json true foreach decode as key gt value 很简单 嗯 传递最多包含
  • 使用 Spark SQL 从 SQL Server 读取数据

    是否可以在 Spark 应用程序中将 Microsoft Sql Server 以及 oracle mysql 等 中的数据读取到 rdd 中 或者我们是否需要创建一个内存集并将其并行化为 RDD 在 Spark 1 4 0 中 您现在可以
  • 默认模板参数中的 lambda 是否被视为直接上下文的一部分?

    以下代码是否符合 C 17 格式 template
  • 我在 Magento 中收到两次阻止?

    我正在尝试在主页上创建产品块 其中我将 page xml 复制到主题的布局文件夹中并将其修改为
  • 在Python中找到英文维基百科中两篇文章之间的最短路径

    问题 在英文维基百科中查找两篇文章之间的最短路径 如果存在文章 C i 并且文章 A 中存在指向文章 C 1 的链接 文章 C 1 中存在指向文章 C 2 的链接 则文章 A 和 B 之间存在路径 在文章 C n 中是指向文章 B 的链接
  • 如何快速获取字符串的一部分?

    我想了解如何在 Swift 中获取字符串的一部分 我正在寻找 Mid Right 和 Left 函数的 Swift 等效项 任何帮助 将不胜感激 斯威夫特 4 斯威夫特5 现代 API 具有以下语法 let str Hello world
  • 为什么我们使用 web.xml? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • TextView setText() 上抛出 NullPointerException

    调试了一段时间 帮忙 是的 我知道是什么原因造成的 但不知道如何解决它 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState Ran
  • 表单位置和大小行为

    我想将表单放置在屏幕的左上角 我努力了this Location new Point 0 0 但窗口位于 7 0 窗口顶部位于屏幕顶部 但左侧距离屏幕边缘 7 个像素 我创建了新的 WinForms 应用程序进行测试 并仅添加了以下代码 p
  • 如何检查数字是否溢出“int”[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 如何将模式应用于文本字段以仅允许特定字符

    我只想允许在 Material UI TextField 中输入特定字符 我见过我尝试过的不同例子 但我无法让它们中的任何一个工作 在我最后一次尝试中 我将一切都削减到最低限度 并得到了这个
  • 致命错误:未找到“Redis”类

    我已经在我的 ubuntu 14 服务器上安装了带有 phpredis 扩展的 Redis 我使用 Nginx 服务器 我有 php 测试脚本 redis new Redis or die Cannot load Redis module
  • 重置 primeNG 表上的过滤器值

    根据来自的文档https www primefaces org primeng table https www primefaces org primeng table重置方法应该 重置排序 过滤器和分页器状态 问题是重置表方法没有从 UI
  • tomcat支持http PATCH方式吗?

    对 tomcat 的 PATCH 请求返回 HTTP 状态 501 此 Servlet 未针对此 URI 实现方法 PATCH 错误 是否可以在tomcat中允许PATCH方法 类似的问题在这里得到了回答 如何阻止 Apache httpd
  • 让 readline 在 FIFO 上阻塞

    我创建一个 fifo mkfifo tofetch 我运行这个Python代码 fetchlistfile file tofetch r while 1 nextfetch fetchlistfile readline print next
  • 将 xml 命名空间限制为仅限主根

    我有这个查询 WITH XMLNAMESPACES DEFAULT https tribunet hacienda go cr docs esquemas 2017 v4 2 facturaElectronica http www w3 o
  • Silverlight 3 Datagrid:在 MouseOver 上获取行/项目

    我有一个绑定的 DataGrid 和各种其他控件 数据网格外部 它们显示有关数据网格中所选行的更多详细信息 通过数据绑定或处理数据网格上的 SelectionChanged 事件很容易做到这一点 但是 如何在不要求用户选择行的情况下执行此操
  • 在 HTML 中使用 img 标签 src 属性显示图像与在 CSS 中设置图像样式有什么区别?

    结果是相同的 但我猜想在 HTML 中使用 img 标签 src 属性设置图像和在 CSS 中设置图像样式之间存在差异 例如 In HTML img src notrealdomain com some png and In HTML im