html - 根据屏幕大小更改图像的位置

标签 html css responsive-design

我参与了一个建立响应式网站的元素,遇到了一个我在这里或其他任何地方都找不到答案的问题:

当查看带有文本和图像的特定框时,我希望在使用台式机/平板电脑和较小的屏幕(即智能手机)时图像的位置不同。在桌面/平板电脑上,我希望图像具有固定大小并 float 在文本旁边,但在标题下方,在较小的屏幕上,我希望图像位于标题和文本上方的顶部,并以 100% 大小填充框.

其实用一些图片来展示可能更简单:

它在台式机/平板电脑上的样子 enter image description here

我希望它在较小的屏幕上看起来如何

enter image description here

使用我完成的代码在较小屏幕上的(不希望的)结果 enter image description here

如您所见,我还没有想出如何做到这一点,结果是标题和文本被图像覆盖,并且不符合框的边界。这是我试过的代码:

桌面/平板电脑的 CSS:

div {position: relative;}

div img {
width: 200px;
float: right;
margin-left: 40px;
margin-bottom: 20px;}

适用于较小屏幕的 CSS:

div {position: relative;}

div img {
position: absolute;
top: 20px;
width: 100%;
margin-bottom: 20px;}

以及 div 的 HTML:

<div>
<h2>Sed ut perspiciatis unde omnis iste</h2>
<img src="img/blossom.jpg">
Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
</div>

一些注意事项:颜色、字体等在全局 CSS 中声明,但对这个问题并不重要。台式机/平板电脑版本运行良好,当屏幕变小并且智能手机版本加载图像时,图像无法正常工作。没有图像,小版本工作正常。

但这里的大问题是:当加载小屏幕版本时,如何使用 CSS 移动图像以使其位于所有文本(包括标题)之上。图像必须符合框的宽度和下方的文本。

相信我,到目前为止,我已经尝试了很多不同的方法,但都没有成功,我被卡住了!也许解决方案非常明显和简单,但我无法弄清楚。当然希望有人知道该怎么做...?

最佳答案

如果您给出像素的宽度,它就可以解决问题。如果您想使用它来使其响应,您需要使用媒体查询,就像这里一样。

@media (min-height: 680px), screen and (orientation: portrait) {
div {position: relative;}

div img {
position: absolute;
top: 20px;
width: 200px;
margin-bottom: 20px;}
}

因为现在您使用的是图像的完整宽度,而不是屏幕。

关于html - 根据屏幕大小更改图像的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47347914/

相关文章:

html - 样式表未在 asp.net 主页中使用

html - 无法让此响应式设计适用于此布局

javascript - 按后退按钮再次在页面上显示隐藏的 div

javascript - 使用javascript在一个视频标签中连续获取视频源

javascript - Angular/HTML - 将显示完整的 JSON 但不能仅显示单个属性

css - Node 萨斯 |除非我手动删除 css 文件,否则不会重新编译

html - 如何防止在调整大小时将 anchor 标记文本拆分为两行?

css - 仅使用 CSS 在 HTML 元素之间添加空格

html - 如何使用 html/css 和 javascript 制作响应式网站

html - 响应式设计 - 2 列缩减为 1 列