这篇文章给大家分享的是有关CSS处理图像上文字的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
什么是CSS
CSS是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体,颜色,位置等的语言,并且CSS样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由CSS根据这个层次结构决定,从而实现级联效果,发展至今,CSS不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。
做项目过程中,我们可能会遇到这样的一个组件,该组件的图像上方是文本。在某些情况下,根据所使用的图像,文字难以阅读,如文字是白色的,背景图偏浅。
这种情况有一些不同的解决方案,例如添加渐变叠加或着色的背景图像,文本阴影等。
<强>简介强>
每个解决方案都应该解决一个问题。我们来探讨本案的问题。在设计图像上方有文字的组件时,我们需要注意使文字必须易于阅读的。
注意上图上,没有渐变覆盖的版本几乎不可读,这是对用户不利。为了解决这个问题,我们需要在文本下方添加一个图层,便于阅读。添加图层也有要注意的地方。因为,很多解决方案中没有考虑到可访问性。
<强>多种解决方案强>
有多种解决方案可以使文本更易于阅读。我们逐一看看。
如上图所示,针对此问题有不同的解决方案。需要注意的是<强>渐变的解决方案>强。为什么?因为这种方案容易让文本失去可以访问性。
(学习视频分享:CSS视频教程)
<强>解决方案强>
<强>渐变叠加(渐变叠加)强>
一般而言,渐变叠加是让图像上的文字更加清晰的最常见解决方案,所以,我们重点来看看。
实现渐变叠加时,有两种方式:
- <李>
使用单独的元素进行渐变(伪元素或空的<代码> & lt; p> 代码)
李> <李>应用渐变作为背景图像。
李>以上每一种方法都有其优点和缺点,我们一起来看看。
.card__content { 位置:才能,绝对;/*,才能other styles (,,,,,,以及填充),*/背景:才能,线性渐变(用上面,rgba(0, 0, 0, 0.85),,透明); }
乍一看,你可能会认为渐变效果很好,这是不够全面的。如果用更多样的图片测试了同样的渐变效果,结果如下:
白色文本和图像之间的对比度并不总是很清晰。对于某些人来说,可以接受,但是使用这种渐变是一个巨大的错误,因为文字无法访问。
原因是该渐变在垂直方向上应覆盖更多的空间,因此它的高度需要更大。渐变等于内容的大小在所有情况下都无法使用。为了解决这个问题,我们可以使用<代码>最小高度> 代码,如下所示:
- <李>
<代码>。card__content 代码>元素的<代码>最小高度> 代码。
李> <李>Flexbox将内容推到底部。
李>.card__content { 位置:才能,绝对;/*,才能other styles (,,,,,,以及填充),*/,,显示:flex; ,,flex-direction:列; ,,justify-content: flex-end; 背景:才能,线性渐变(用上面,rgba(0, 0, 0, 0.85),,透明); }
另一种解决方案是仅使用<代码> padding-top> 代码来代替<代码>最小高度代码>和<代码> flexbox> 代码。
.card__content { 位置:才能,绝对; ,,padding-top: 60 px; 背景:才能,线性渐变(用上面,rgba(0, 0, 0, 0.85),,透明); }
请注意左卡和右卡之间的差异,渐变高度较大。
那看起来不错,我们可以做得更好吗?当然是!
<强>缓渐变强>
如果仔细观察,我们会发现渐变结束的地方很突兀,这家就是所谓的硬边现象。
为了使它更好,我们可以将缓动概念应用于渐变。这样一来,渐变将显得更加自然,并且在渐变结束时也不会注意到硬边。