- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 site-title 的 div,用于保存我网站的标题。我想使用 CSS 在标题左侧添加一个图像。我可以这样做:
.site-title::before {
content: "";
background: url("logo.jpg");
background-size: 200px 200px;
position: absolute;
width: 200px;
height: 200px;
}
这很好用,在我还为标题等添加了一些填充之后。但是图像是 200px x 200px 并且不随页面缩放。当它不再适合时,我希望它变小。我该怎么做?
顺便说一句,这是对 Wordpress 网站的黑客攻击。我想使用上面的 CSS 技巧来避免处理 PHP 等。
编辑:刚刚删除了 float: left;
最佳答案
您可以将伪元素的宽度和高度限制为视口(viewport)的宽度(使用 vw
单位),并像这样定义最大宽度
.site-title::before {
content: "";
background: url("logo.jpg");
background-size: cover;
position: absolute;
max-width: 200px;
max-height: 200px;
width: 20vw;
height: 20vw;
}
当视口(viewport)小于 1000px
时,伪元素将开始减小其大小。在给定的断点下,您还可以隐藏伪元素。
此外,做一些基本的数学运算,您可以计算宽度和高度值,以便元素逐渐出现在给定视口(viewport)尺寸上方(或消失在下方),例如
div {
max-width: 200px;
max-height: 200px;
background: #9bc;
overflow: hidden;
height: calc(0.38461 * 100vw - 184px);
width: calc(0.38461 * 100vw - 184px);
}
<div>
I will disappear when the viewport is wide less than 480px
</div>
工作原理
假设您要定义视口(viewport)范围(例如 [480px .. 1000px]
),以便元素可以从 0
调整到其最大值(upper 由固定的 max-width
和 max-height
限制):然后你可以使用 equation of the line from two points注入(inject) css calc()
函数
这是我所做的这些值背后的简单计算(因此您可以看到如何根据需要更改元素可见性的范围)
截至 2020 年 12 月的更新
引入了一些有用的 CSS 函数,例如 min()/max()/clamp()可以通过这种方式在现代浏览器上简化样式
.site-title::before {
height: min(200px, calc(0.38461 * 100vw - 184px));
width: min(200px, calc(0.38461 * 100vw - 184px));
}
关于html - 如何通过视口(viewport)调整大小的渐进缩放来调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35505160/
前几天我读到了一种特殊类型的回调,当你重复调用它时,它会随着你的进展而进行。就像第一次调用它时执行 A 并返回一样,然后在下次调用它时执行 B。最终它以某种方式发出信号,表明最终行动已经采取。 我不记
我正在使用 php Gmagick 修改图像。以下代码按预期工作,只是图像不是渐进的。为什么?根据GraphicsMagick docs它应该。作为引用,输入图像为 666 x 1000。 $
我希望能够使用 Flash 播放器传送音乐/mp3,但我想让 mp3 文件无法被嗅探......即你不能使用 safari、firebug 等。使用事件窗口找出 mp3 位置。我没有流媒体服务器。任何
我是一名优秀的程序员,十分优秀!