当前位置: 首页 > 科技观察

网页图片技术:前端引入图片的多种方式及其优缺点

时间:2023-03-20 21:58:11 科技观察

前端开发者在建站时需要做出的决定之一就是如何引入图片。它可以是一个标签,或者通过CSS背景属性,或者可以使用SVG。选择正确的一个很重要,对性能和可访问性有很大影响。在本文中,我们将了解引入图像的各种方法,以及每种方法的优缺点,以及何时以及为何使用它们。HTMLimg元素在最简单的情况下,img元素必须包含src属性:在页面加载时设置宽度和高度属性,它们会在页面图像加载时引起一些布局变化。为了避免这种情况,我们可以为它设置width和height属性:但它有效。我们用一个图例来阐明这个概念:我们看到右边的图片虽然没有被加载,但还是保留了空间?那是因为设置了宽度和高度。通过CSS隐藏图片可以使用CSS隐藏图片。但是,它仍会加载到页面中。所以这样做的时候要小心。如果应该隐藏图像,则可能是出于装饰目的。img{display:none;}同样,上面的代码不会阻止浏览器加载图像,即使它在视觉上是隐藏的。原因是它被认为是一个替换元素,所以我们无法控制它加载的内容。Accessibility通过将alt属性设置为有意义的描述来发布AccessibleHTML图像,这对屏幕阅读器用户非常有帮助。但是,如果不需要alt描述,请不要删除它,如果这样做,图像src将被读出,这对可访问性非常不利。不仅如此,如果图像由于某种原因没有加载,并且它有一个清晰的alt,它将显示为后备。也通过图例来演示。假设我们有以下图像:当src无效,图片没有加载。第一个没有alt属性,而第二个有一个空的alt属性,它们在视觉上看起来是这样的:没有alt的图像仍然保留其空间,这令人困惑并且不利于访问。另一个带有空alt的图像会折叠成一个小点,因为它有边框。但是当alt属性有值时,它看起来像这样:这不是一个很好的反馈吗?此外,当图像源失败时,您可以向它们添加伪元素。响应式图像的美妙之处在于它们可以缩放为具有特定视口尺寸的照片的多个版本。我们有两种不同的方法来生成一组响应式图片:1.srcset属性这个很简单。对我来说,srcset可以根据屏幕宽度显示多种图像尺寸,这不是一个完美的解决方案。它让浏览器选择合适的图像,而我们对此无能为力。2.图片标签的另一种选择是使用元素。我更喜欢这种方式,因为它更容易预测。示例源代码:https://codepen.io/shadeed/pen/d703aee137f38c138f2323a0252548ac?editors=1100调整图像大小对于,我们还可以使用一组好的特征object-fit和object-position。它们可以控制大小和位置,就像CSS背景图像一样。object-fit值有:fill、contain、cover、none、scale-down。例如:img{object-fit:cover;object-position:50%50%;}CSS背景图像当使用CSS背景显示图像时,它需要一个具有内容或特定宽度或高度的元素。一般来说,背景图像的主要用途应该是装饰目的。CSS背景图片的使用方法首先我们需要一个元素//htmlSomecontent

//css.element{background:url('cool.jpg');}多背景使用CSS背景图片的好处是可以设置多个背景。考虑以下示例:.element{background:url('cool-1.jpg'),url('cool-2.jpg');}隐藏图像如果未使用CSS设置,我们可以在特定视口中隐藏和显示图像图像,它将不会被下载。与使用相比,这是一个额外的好处。在上面的示例中,我们有一个背景图像,它仅在视口宽度大于700px时显示。可访问性问题如果使用不当,背景图像会影响可访问性。例如,将其用于文章主题,这对于文章来说是必不可少的。非开发者无法下载一般人都知道,如果要保存图片,只需左键单击并选择保存即可。CSS 背景图像不是这种情况,我们必须检查元素并在DevTools中打开url中的链接,然后才能下载添加了CSS的图像。伪元素伪元素可以与CSS背景图像一起使用,例如在图像顶部显示叠加层。因为在我们为叠加层添加一个单独的元素之前,这是不可能的。SVGImageSVG被认为是一种图像,其较大的特征是在不影响质量的情况下进行缩放。此外,借助SVG,我们可以嵌入JPG、PNG或SVG图像。请参阅下面的HTML:您是否注意到prepareAspectRatio?它所做的是允许图像占据SVG的整个宽度和高度,而不会被拉伸或压缩。当宽度较大时,它将填充其父级(SVG)的宽度而不拉伸。这与CSS中的object-fit:cover或background-size:cover非常相似。辅助功能问题关于SVG辅助功能,这让我想起了元素。例如,我们可以这样添加:我们也可以使用元素非开发人员无法下载嵌入在SVG中的图像,必须首先检查元素并复制图像的URL。但是,如果我们想阻止用户下载特定图像,这可能是一件好事。用例英雄部分在构建英雄部分时,有时我们需要标题下方的图像和其他内容。见下图:一些要求:背景图片可以动态更换图片有叠加层,便于阅读图片有小、中、大三种尺寸。每一个都用于特定的视口。在我们找到解决方案之前,让我们问问自己这个背景的性质。以下是一些入门问题:为用户保留此图像是否重要,还是可以跳过?我们是否需要在所有视口尺寸上使用它?它是静态的还是动态变化的?解决方案1通过使用多个CSS背景,我们可以将一个背景作为叠加层,将另一个背景作为实际图像。看看下面的CSS:.hero{background-image:linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.4)),var('landscape.jpg');background-repeat:no-repeat;background-size:100%,cover;}虽然此解决方案有效,但可以使用JavaScript动态更改背景图像。见下文:"><!--Herocontent--></section>这里添加了一个内联样式。虽然这行得通,但它看起来很丑而且不实用。也许我们可以使用CSS变量?让我们探讨一下。<sectionclass="hero"style="--bg-url:url('landscape.jpg')"><!--Herocontent--></section>现在我们可以轻松地将--bg-url变量更新为动态改变背面,这比内联的东西好一百万倍。总结:该方案只适用于图片不重要的情况。这种方案只适用于一些静态网站,因为图片不是从后台拉出来的。源代码:https://codepen.io/shadeed/pen/17978a2d824fd51a3b27c2c2d099a522解决方案2这个解决方案是你可以使用img标签:<sectionclass="hero"><h2class="hero__title">UsingImagesinCSS</h2><pclass="hero__desc">Anarticleaboutwhichandwhentouse</p><imgsrc="landscape.jpg"alt=""></section>在CSS中,我们需要将图片绝对定位在内容下方,还需要使用伪元素作为覆盖。这个解决方案的美妙之处在于可以轻松更改图像的src属性。此外,如果图像很重要,它会更有用。此外,我喜欢使用HTML的一个特性是能够在图像未加载时添加回退。后备至少保持内容的可读性。.heroimg{/*Otherstyles*/background:#2962ff;}当图片源路径错误时,背景色是替代方面。示例源代码:https://codepen.io/shadeed/pen/73a2ca78141fcab39d6db9d5bd982728?editors=1100网站标志网站标志非常重要,因为它可以将网站与其他网站区分开来。要嵌入徽标,我们有几个选项:img->png,jpg,或svg内联SVG背景图像接下来,让我们看看哪个更合适。具有大量细节的徽标当徽标具有许多细节或形状时,将其用作嵌入式SVG可能没有好处。我推荐使用,图像类型可以是png、jpg或svg。需要动画的简单徽标我们有一个由形状和文本组成的简单徽标。悬停时形状和文本需要改变颜色。怎么做?对我来说更好的解决方案是使用嵌入式SVG。HTMLCSS.logorect,.logotext{transition:0.3sease-out;}.logo:hoverrect,.logo:hovertext{fill:#4a7def;}示例源代码:https://codepen.io/shadeed/pen/4005077cc54364714??8007f4834c0585c?editors=0100ResponseLogo这让我想起了SmashingMagazine的标志。我喜欢它如何从一个小图标变成一个完整的标志。请参阅下面的模型:一个很好的解决方案是使用一个元素,您可以在其中添加两个版本的徽标。看起来像这样:<aclass="logo"href="/"><picture><sourcemedia="(min-width:1350px)"srcset="sm-logo--full.svg"><imgsrc="sm-logo.svg"alt="SmashingMagazine"></picture></a>在CSS中,我们需要将视口的宽度更改为等于或大于1350px。.logo{display:inline-block;width:45px;}@media(min-width:1350px){.logo{width:180px;}}这是简单直接的解决方案。源代码示例:https://codepen.io/shadeed/pen/6cf55d4e87b7c443820bd5f8694587a8?editors=1100带有渐变的徽标当徽标具有渐变时,从Illustrator或Sketch等设计应用程序导出它的过程可能并不出色,有时会被打断。使用SVG,我们可以轻松地为我们的徽标添加渐变。我添加并将其用作文本填充。示例源代码:https://codepen.io/shadeed/pen/9bf3bee3d08a40411effb5d65f25b5c1?editors=1100用户头像对于用户头像,它们有多种形状,但最常见的是矩形或圆形。在此用例中,介绍了一个对您有用的重要技巧。首先,让我们看看下面的模型。请注意,我们有一个出色的头像,并且100%清晰。但是,当用户上传半白头像或非常浅的头像时,这种设计效果不佳。请注意,在上面的模型中,除非您真正关注它,否则您并不清楚其中是否有一个圆圈。这是个问题。为了解决这个问题,我们应该在头像内部添加一个边框,以防图像太亮而看不清。我们有几种选择img元素img和div元素divvsCSS背景SVG图像哪个更好?让我们探索一下。使用HTML`<img>`您可能首先想到的是添加边框,对吧?让我们探讨一下。.avatar{border:2pxsolid#f2f2f2;}我们的目标是让内边框和图片融为一体,不太实用。`<img>`和`<div>`元素现在的问题是,要添加内边框,我们不能使用box-shadow,因为它不适用于图像。解决方案是用头像包裹起来,并添加一个专用于内边框的元素。HTML<divclass="avatar-wrapper"><imgclass="avatar"src="shadeed2.jpg"alt="AphotoofAhmadShadeed"><divclass="avatar-border"></div></div>CSS.avatar-wrapper{position:relative;width:150px;height:150px;}.avatar-border{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:50%;border:2pxsolidrgba(0,0,0,0.1);通过在<div>上使用10%不透明度的黑色边框,我们可以确保边框与深色图像融合,并且只有在图像较亮时才可见。模型见下:示例地址:https://codepen.io/shadeed/pen/da23d9a18dac14692a97e1bc6e86a5ff?editors=1100using`<div>`withCSSbackground如果我用<div>来显示头像,它可能代表图像是装饰性的。我记得一个用例,其中随机头像散布在整个页面中。HTML<divclass="avatar"style="--img-url:url(shadeed2.jpg)"></div>CSS.avatar{background:var(--img-url)center/cover;width:150px;height:150px;border-radius:50%;box-shadow:inset0002pxrgba(#000,0.1);}示例地址:https://codepen.io/shadeed/pen/39eb9dac364ec15b9ab9bae7fe3a7148?editors=0100对我使用SVG``这是最有趣的解决方案。我在检查Facebook的新设计时注意到了它。首先剖析它,它包含以下内容:将图像切割成圆形的遮罩将遮罩应用于组图像本身,内部边框圆圈带有preserveAspectRatio="xMidYMid"{stroke-width:2;stroke:rgba(0,0,0,0.1);fill:none;}示例地址:https://codepen.io/shadeed/pen/b17d34b5c23cc90fdc4573779544c8c7?editors=0100</p> </div> </div> <div class="zuowen_sxy"> <div class="prev">上一篇:<a title="100台小型服务器的批量管理与自动化运维" href="/kejiguancha/148721.html">100台小型服务器的批量管理与自动化运维</a> </div> <div class="prev">下一篇:<a title="微信支付页新增“出行服务”:加油更方便了 还能比价" href="/kejiguancha/148723.html">微信支付页新增“出行服务”:加油更方便了 还能比价</a> </div> </div> <div class="related_about"> <div class="related_about_t"><code>网页图片技术:前端引入图片的多种方式及其优缺点相关文章</code></div> <ul> <li><a href="/kejifunen/370451.html" target="_blank" title="语音技术再次升级,联想携手DFKI继续引领SIoT2.0">语音技术再次升级,联想携手DFKI继续引领SIoT2.0</a></li> <li><a href="/kejifunen/370394.html" target="_blank" title="微软新专利! AR眼镜会有眼球追踪技术吗? ">微软新专利! AR眼镜会有眼球追踪技术吗? </a></li> <li><a href="/kejifunen/370378.html" target="_blank" title="功能上的不足弥补了Fitbit Alta智能手环评测图片">功能上的不足弥补了Fitbit Alta智能手环评测图片</a></li> <li><a href="/kejifunen/370376.html" target="_blank" title="区块链技术和VR将如何改变音乐产业? (第1部分)">区块链技术和VR将如何改变音乐产业? (第1部分)</a></li> <li><a href="/kejifunen/370375.html" target="_blank" title="智能硬件十字路口的酷想法!可穿戴技术将走向何方? ">智能硬件十字路口的酷想法!可穿戴技术将走向何方? </a></li> <li><a href="/kejifunen/370355.html" target="_blank" title="见过世面的“新华社”其实也被这项技术所吸引">见过世面的“新华社”其实也被这项技术所吸引</a></li> <li><a href="/kejifunen/370287.html" target="_blank" title="智能家居!物联网技术赋能传统基础设施,让世界变得更美好">智能家居!物联网技术赋能传统基础设施,让世界变得更美好</a></li> <li><a href="/kejifunen/370278.html" target="_blank" title="oTMS联合JDA发布中国消费者心声调查报告,新技术和客户体">oTMS联合JDA发布中国消费者心声调查报告,新技术和客户体</a></li> <li><a href="/kejifunen/370257.html" target="_blank" title="期待2016年!可穿戴技术下一步将在哪些方面创新? ">期待2016年!可穿戴技术下一步将在哪些方面创新? </a></li> <li><a href="/kejifunen/370245.html" target="_blank" title="可穿戴设备技术的五种解决方案">可穿戴设备技术的五种解决方案</a></li> <li><a href="/kejifunen/370227.html" target="_blank" title="非侵入性或将成为可穿戴技术的重大突破点">非侵入性或将成为可穿戴技术的重大突破点</a></li> <li><a href="/kejifunen/370226.html" target="_blank" title="Fitband智能手环全面评测!用你的专业知识寻找市场(更多">Fitband智能手环全面评测!用你的专业知识寻找市场(更多</a></li> <li><a href="/kejifunen/370223.html" target="_blank" title="VR技术会是下一个十亿级市场吗? ">VR技术会是下一个十亿级市场吗? </a></li> <li><a href="/kejifunen/370208.html" target="_blank" title="可穿戴技术行业分析系列四!三个有前途的行业">可穿戴技术行业分析系列四!三个有前途的行业</a></li> <li><a href="/kejifunen/370165.html" target="_blank" title="索尼新款WH-CH700N头戴式无线耳机搭载AI降噪技术">索尼新款WH-CH700N头戴式无线耳机搭载AI降噪技术</a></li> <li><a href="/kejifunen/370158.html" target="_blank" title="诺基亚推出可折叠OLED显示屏,这项技术或将用在iWatch">诺基亚推出可折叠OLED显示屏,这项技术或将用在iWatch</a></li> <li><a href="/kejifunen/370135.html" target="_blank" title="【盘点】智能穿戴行业五项核心技术">【盘点】智能穿戴行业五项核心技术</a></li> <li><a href="/kejifunen/370117.html" target="_blank" title="春晚首次采用4K超高清技术播出">春晚首次采用4K超高清技术播出</a></li> <li><a href="/kejifunen/370034.html" target="_blank" title="大数据+传感技术真的等同于智能穿戴吗? ">大数据+传感技术真的等同于智能穿戴吗? </a></li> <li><a href="/kejifunen/370012.html" target="_blank" title="教育与娱乐结合,利用VR技术激发孩子创造力">教育与娱乐结合,利用VR技术激发孩子创造力</a></li> </ul> </div> </div> <div class="main-right"> <div class="right_fix"> <div class="r_con"> <div class="r_title">最新推荐</div> <ul> <li><em>1</em><a href="/kejifunen/371258.html" title="亚业云,打造软件技术外包服务新王牌" target="_blank">亚业云,打造软件技术外包服务新王牌</a></li> <li><em>2</em><a href="/kejifunen/371237.html" title="AutoML技术挑战与发展,知乎科技下分CCDM2018分享" target="_blank">AutoML技术挑战与发展,知乎科技下分CCDM2018分享</a></li> <li><em>3</em><a href="/kejifunen/371224.html" title="雷军透露,小米手环2的图片已于5月10日发布" target="_blank">雷军透露,小米手环2的图片已于5月10日发布</a></li> <li><em>4</em><a href="/kejifunen/371210.html" title="除了小龙虾,世界杯还有这些值得关注的技术" target="_blank">除了小龙虾,世界杯还有这些值得关注的技术</a></li> <li><em>5</em><a href="/kejifunen/371208.html" title="当虚拟现实和3D技术走进战场,无需军官在场" target="_blank">当虚拟现实和3D技术走进战场,无需军官在场</a></li> <li><em>6</em><a href="/kejifunen/371167.html" title="韩国升级可穿戴技术,锂电池织进衣服随时充电" target="_blank">韩国升级可穿戴技术,锂电池织进衣服随时充电</a></li> <li><em>7</em><a href="/kejifunen/371142.html" title="小米穿戴式小米90分智能跑鞋图片欣赏" target="_blank">小米穿戴式小米90分智能跑鞋图片欣赏</a></li> <li><em>8</em><a href="/kejifunen/371073.html" title="可穿戴技术给医疗行业带来的机遇与挑战" target="_blank">可穿戴技术给医疗行业带来的机遇与挑战</a></li> <li><em>9</em><a href="/kejifunen/371068.html" title="瑞士手环2全能宝石款开箱评测+图片欣赏,详细规格参数曝光" target="_blank">瑞士手环2全能宝石款开箱评测+图片欣赏,详细规格参数曝光</a></li> <li><em>10</em><a href="/kejifunen/371029.html" title="荣耀手表S1详细评测+图片欣赏!简约风格,699元?值得购买" target="_blank">荣耀手表S1详细评测+图片欣赏!简约风格,699元?值得购买</a></li> </ul> </div> <div class="r_con"> <div class="r_title">猜你喜欢</div> <ul class="you_like"> <li><em>1</em><a href="/kejifunen/371011.html" title="有关技术的早期消息! 《王者荣耀》吃鸡玩法曝光,康佳新战略瞄" target="_blank">有关技术的早期消息! 《王者荣耀》吃鸡玩法曝光,康佳新战略瞄</a></li> <li><em>2</em><a href="/kejifunen/370980.html" title="可穿戴技术! “智能”引领世界,“穿戴”世界" target="_blank">可穿戴技术! “智能”引领世界,“穿戴”世界</a></li> <li><em>3</em><a href="/kejifunen/370958.html" title="库克再次支持增强现实技术!人与人的接触是无可替代的" target="_blank">库克再次支持增强现实技术!人与人的接触是无可替代的</a></li> <li><em>4</em><a href="/kejifunen/370919.html" title="钛技术!境内外双管齐下,出海会是下一个强劲增长点吗? " target="_blank">钛技术!境内外双管齐下,出海会是下一个强劲增长点吗? </a></li> <li><em>5</em><a href="/kejifunen/370901.html" title="阿里巴巴联手万豪,推动人脸识别技术在酒店场景的应用" target="_blank">阿里巴巴联手万豪,推动人脸识别技术在酒店场景的应用</a></li> <li><em>6</em><a href="/kejifunen/370898.html" title="小川信息技术(上海)有限公司荣获OFweek人工智能大奖20" target="_blank">小川信息技术(上海)有限公司荣获OFweek人工智能大奖20</a></li> <li><em>7</em><a href="/kejifunen/370889.html" title="服务机器人产业链特点!产品与技术交织" target="_blank">服务机器人产业链特点!产品与技术交织</a></li> <li><em>8</em><a href="/kejifunen/370841.html" title="谈论触觉反馈技术,让你在虚拟现实世界中漫游" target="_blank">谈论触觉反馈技术,让你在虚拟现实世界中漫游</a></li> <li><em>9</em><a href="/kejifunen/370812.html" title="VR眼镜-头盔已成为可穿戴设备新的技术趋势" target="_blank">VR眼镜-头盔已成为可穿戴设备新的技术趋势</a></li> <li><em>10</em><a href="/kejifunen/370761.html" title="下面我们来解析一下可穿戴黑科技,可穿戴设备技术呈现九大趋势" target="_blank">下面我们来解析一下可穿戴黑科技,可穿戴设备技术呈现九大趋势</a></li> <li><em>11</em><a href="/kejifunen/370736.html" title="微软、谷歌和苹果都是同质的!技术会实现大统一吗? " target="_blank">微软、谷歌和苹果都是同质的!技术会实现大统一吗? </a></li> <li><em>12</em><a href="/kejifunen/370734.html" title="解读虚拟现实技术成功的七大“基石”" target="_blank">解读虚拟现实技术成功的七大“基石”</a></li> <li><em>13</em><a href="/kejifunen/370690.html" title="韩国研发纳米级3D打印技术将应用于可穿戴设备" target="_blank">韩国研发纳米级3D打印技术将应用于可穿戴设备</a></li> <li><em>14</em><a href="/kejifunen/370687.html" title="第三届Microchip Source华东技术交流会在江苏常" target="_blank">第三届Microchip Source华东技术交流会在江苏常</a></li> <li><em>15</em><a href="/kejifunen/370640.html" title="迪士尼开发可穿戴玩具引领新技术生态" target="_blank">迪士尼开发可穿戴玩具引领新技术生态</a></li> <li><em>16</em><a href="/kejifunen/370616.html" title="我们来看看智能门锁行业的五大技术和十大厂商" target="_blank">我们来看看智能门锁行业的五大技术和十大厂商</a></li> <li><em>17</em><a href="/kejifunen/370594.html" title="左手握技术,右手握需求,但声纹识别依然不能成为“独行侠”" target="_blank">左手握技术,右手握需求,但声纹识别依然不能成为“独行侠”</a></li> <li><em>18</em><a href="/kejifunen/370572.html" title="可穿戴设备将走向何方?想象力与技术的差距" target="_blank">可穿戴设备将走向何方?想象力与技术的差距</a></li> <li><em>19</em><a href="/kejifunen/370535.html" title="2016欧洲杯你不知道的可穿戴技术" target="_blank">2016欧洲杯你不知道的可穿戴技术</a></li> <li><em>20</em><a href="/kejifunen/370498.html" title="详细讲解语音控制智能家居系统的实现流程和技术" target="_blank">详细讲解语音控制智能家居系统的实现流程和技术</a></li> </ul> </div> </div> </div> </div> <div class="related_article"></div> <div class="footer"> <p>Copyright © 2012-2022 程序源 版权所有<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">豫ICP备2022028201号</a></p> <p>重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。 如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。</p> </div> <!-- 应用插件标签 start --> <!-- 应用插件标签 end --> </body> </html>