javascript - 将图像作为可调整大小组件的背景
问题描述
我正在尝试创建一个由两列组成的简单布局:左侧的宽度应为容器的 30%,右侧应占用剩余空间。一切都应该在台式机、平板电脑和移动设备上运行,等等。
我正在尝试做这样的事情,但图像不应该是窗口页面背景,而应该是右侧面板。
所以:
- 图像应该填满整个
right
div,没有空白 - 根据需要缩放图像
- 保留图像比例(纵横比)
- 图像在
right
div内居中 - 不会导致滚动条
- 尽可能跨浏览器兼容。
.page {
border: 3px solid black;
display: flex;
width: 100%;
height: 100%;
}
.left {
width: 30%;
max-width: 300px;
border: 3px solid steelblue;
}
.right {
flex-grow: 1;
border: 3px solid tomato;
}
img {
width: 100%;
height: 100%;
}
<div class="page">
<div class="left">This is the left panel with some content</div>
<div class="right">
<img src="https://siameseofday.com/wp-content/uploads/2020/05/Ragdoll-Cat-min-scaled.jpg" />
</div>
</div>
我的代码有问题,因为左侧面板不是容器的 30%,然后我不知道如何做剩下的。我读到的唯一例子是关于整个窗口,而不仅仅是一个 div 容器。有人能帮助我吗?
解决方案
好吧,使用 grid 和 flex 很容易。请参阅此视频,了解如何保持左右空间。
关于正确的图像应该响应并保持与跨浏览器的比例。我建议以下。
.page {
border: 3px solid black;
display: flex;
width: 100%;
height: 100%;
}
.left {
width: 30%;
min-width: 300px;
max-width: 300px;
border: 3px solid steelblue;
}
.right {
width: 70%;
min-height: 300px;
border: 3px solid tomato;
background: url(https://siameseofday.com/wp-content/uploads/2020/05/Ragdoll-Cat-min-scaled.jpg);
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
<div class="page">
<div class="left">This is the left panel with some content</div>
<div class="right"></div>
</div>
推荐阅读
- python-3.x - 如何在 Python 中使用 selenium webdriver 从表中提取数据,但有一些例外
- django - 在heroku中找不到静态文件
- node.js - MySQL 节点
- prestashop - 显示 SpecificPriceRule 信息
- flutter - 排序图
颤振,飞镖 - ios - 如何更改 UIContextualAction 按钮的标题颜色和图像色调颜色
- php - Symfony4.4:CSV 输出是不可能的
- pine-script - 变量未在每个刻度上更新
- javascript - HTML & JavaScript - 响应式导航栏不向下推送内容
- swift - 如何在ios的主页上放置一个深层链接?