你需要知道的 CSS 技巧:图片篇

简介: 你需要知道的 CSS 技巧:图片篇

这是 CSS 进阶指南系列文章,本文主要介绍了 CSS 中处理图片时容易被忽略的细节,通过阅读本文,你将学习处理图片失真、背景图片重复、图片上的文字、图片内边框等内容。

CSS 进阶指南系列文章:

图片失真


有时候我们需要展示的是用户上传的图片,所以宽高比很可能是不一致的,我们也很难去控制宽高比。

这个例子中,看上去是没有问题的。它的图片比例是 1:1。

image.png

但是当用户上传了不同尺寸的图片时,它会被拉伸。

image.png

实际上用户上传的图片时这样的

image.png

解决这个问题的最简单方案是使用 object-fit 属性,值设置为 cover。

image.png

这样它就可以确保图片不会被拉伸。


背景图片重复


我们使用大图片作为背景图时,偶尔会忘记考虑在不同屏幕上的显示情况。

在我们预期的屏幕上,图片的显示可能是这样。

image.png

但是在大屏幕上,它的显示可能是这样。

image.png

为了避免这种情况,我们可以使用 background-repeat,把它的值设置为 no-repeat。这样它就不会出现背景图片重复的现象了。

同时我们可以使用 background-color 设置背景色,使用 background-size 来决定背景图的宽高占比。


图片上的文字


这是一个在图片上悬浮的文字。

image.png

当发生意外图片没有被加载出来时,会出现下面这张现象。

image.png

这是添加了文字阴影的效果,如果没有添加文字阴影,页面将会空白。

解决这种问题的办法是给图片设置能和文字形成对比的背景色。

比如文字是白色,那就把图片的背景色设置成深灰色。

image.png


图片内边框


在处理用户头像时,我们应该用清晰的方式显示它们。

有些头像边缘的颜色非常亮,会和背景融为一体,特别是边缘有白色背景的头像。

image.png

通过上面两张头像的对比,我们可以看到右侧小猫头像显示的尺寸会比实际头像的尺寸小很多,因为小猫头像的图片周围本身就带有白色背景,和页面的背景混合了。这样对用户来说很不好。

解决方式是给图片添加内边框。

注意是内边框而不是边框。

下面这是添加了边框的效果。

image.png

下面是添加内边框的效果。

image.png

仔细观察,边框的颜色会跟随图像边缘的颜色,而不是纯色。

我们甚至可以用它去适配暗色主题。

image.png

这是使用边框做不到的。

但是,在 CSS 中为 img 元素添加内边框是做不到的。所以,我们需要将 img 包裹到一个容器元素中,并在容器元素里面添加内边框。


<div class="card__avatar">
  <img src="image.jpg" alt="" />
  <div class="border"></div>
</div>


.card__avatar {
  position: relative;
}
.card__avatar img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
}
.border {
  position: absolute;
  box-sizing: border-box;
  width: 56px;
  height: 56px;
  border: 2px solid #000;
  border-radius: 50%;
  opacity: 0.1;
  top: 0;
  left: 0;
}

如果你对 CSS 的内容感兴趣,欢迎关注我的新专栏 CSS 进阶指南,让我们一起成长。



相关文章
|
5月前
|
前端开发 UED 容器
CSS基础-背景属性:颜色、图片、重复
【6月更文挑战第9天】本文介绍了CSS背景属性,包括背景颜色、图片、重复的使用和常见问题。通过实例展示了如何设置背景颜色(如使用rgba()注意透明度影响)、背景图片(使用background-size控制缩放)、背景重复(避免默认平铺导致混乱)以及综合使用背景属性创建复杂效果。理解并熟练运用这些属性能提升网页设计的视觉层次和用户体验。建议通过实践不断探索和提升CSS技能。
64 4
|
6月前
|
前端开发 计算机视觉 开发者
利用CSS改变图片颜色的100种方法!
利用CSS改变图片颜色的100种方法!
133 1
|
25天前
|
前端开发 UED
Webpack 中处理 CSS 和图片资源的多 Loader 配置
【10月更文挑战第12天】 处理 CSS 和图片资源是 Webpack 配置中的重要部分。通过合理选择和配置多个 Loader,可以实现对这些资源的精细处理和优化,提升项目的性能和用户体验。在实际应用中,需要不断探索和实践,根据项目的具体情况进行灵活调整和优化,以达到最佳的处理效果。通过对 Webpack 中多 Loader 处理 CSS 和图片资源的深入了解和掌握,你将能够更好地应对各种复杂的资源处理需求,为项目的成功构建和运行提供坚实的基础。
51 1
|
3月前
|
前端开发
如何使用 CSS object-fit 进行图片的缩放和裁剪
如何使用 CSS object-fit 进行图片的缩放和裁剪
83 0
如何使用 CSS object-fit 进行图片的缩放和裁剪
|
3月前
|
前端开发
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!
|
4月前
|
前端开发 容器
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
67 0
|
4月前
|
前端开发 C++
css 鼠标悬浮显示放大图片 vs 鼠标点击显示放大图片
css 鼠标悬浮显示放大图片 vs 鼠标点击显示放大图片
48 0
|
4月前
|
前端开发 UED
前端 CSS 经典:在 Vue3 中使用渐进式图片
前端 CSS 经典:在 Vue3 中使用渐进式图片
109 0
|
4月前
|
前端开发
前端 CSS 经典:图片边框
前端 CSS 经典:图片边框
35 0
|
4月前
|
前端开发 容器
css 【详解】—— 图片底部留有间隙(含解决方案)
css 【详解】—— 图片底部留有间隙(含解决方案)
124 0