如何让两张图片适合 html 中的任何屏幕尺寸?
How do I get two images to fit any screen size in html?
这是我第一次尝试写作 html 对于任何初学者的错误提前致歉。
我想在 desktop/laptop 和平板电脑浏览器 windows 中水平对齐放置 2 张大小相等的图像,然后一旦屏幕切换到移动设备 'portrait' 视图,我就想要这两个图像垂直对齐,但仍然完全可见(即不显示滚动条)。
通过将每个图像放在单独的 div 中并使用 flexbox,我已经很好地完成了第一部分。这两个 div 在容器 div 中。在此视图中,它们居中。一旦浏览器 window 变得太窄,第二张图片会按预期放置在第一张图片下方,但它会移出视野。我怎样才能确保调整图像大小以始终保持在视图中?
<style type="text/css">
html, body {
height: 100vh;
min-height: 100vh;
}
.call-outs-container {
min-height: 100vh;
height:auto !important;
height:100vh;
overflow: hidden !important;
max-width: 2800px;
}
.pics {
padding:20px;
box-sixing: border-box;
margin-bottom: 20px;
flex-basis: 50%;
}
img {
max-width:100%;
height:100%;
object-fit:contain;
}
@media (min-width: 700px) {
.call-outs-container {
display: flex;
justify-content: space-between;
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
}
}
</style>
</head>
<body>
<main>
<div class="call-outs-container">
<div class = "pics">
<img src="images/temp_spectra.jpeg" alt="Spectra Image" />
</div>
<div class = "pics">
<img src="images/temp_sl.png" alt="Spectra Image" />
</div>
</div>
</main>
</body>
以下请求 - 这是一个 JSFiddle。 https://jsfiddle.net/tullfan/t9hope6f/
希望您正在寻找这样的东西。
做了一些改动。请检查一下。
html,
body {
padding: 0;
}
.call-outs-container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}
.pics {
height: 100%;
width: 100%;
/*margin: 0 10px; /* change margin as needed*/
display: flex;
justify-content: center;
}
img {
margin: auto;
height: auto;
width: auto;
}
@media (min-width: 700px) {
.call-outs-container {
height: 100%;
flex-direction: row;
justify-content: center;
}
img {
margin: auto;
height: 100%;
width: 100%;
}
}
<body>
<main>
<div class="call-outs-container">
<div class="pics">
<img src="https://via.placeholder.com/150" />
</div>
<div class="pics">
<img src="https://via.placeholder.com/150" />
</div>
</div>
</main>
</body>
我认为这可以解决您的问题。我做了一些改变。试试这个代码:
img{
width: 100%;
}
.call-outs-container{
display: flex;
}
@media (max-width: 768px){
.call-outs-container{
display: block;
}
}
并且不要忘记在头部添加视口:
<meta name="viewport" content="width=device-width, initial-scale=1">
您可以尝试使用 vw
(视图宽度)和 vh
(视图高度)的高度大小,让 2 张图片各占整个视图高度的 50%。要适应比例因子,只需将宽度设置为自动,浏览器会调整宽度,使比例因子相同:
img {
height: 50vh;
width: auto;
}
这是我第一次尝试写作 html 对于任何初学者的错误提前致歉。
我想在 desktop/laptop 和平板电脑浏览器 windows 中水平对齐放置 2 张大小相等的图像,然后一旦屏幕切换到移动设备 'portrait' 视图,我就想要这两个图像垂直对齐,但仍然完全可见(即不显示滚动条)。
通过将每个图像放在单独的 div 中并使用 flexbox,我已经很好地完成了第一部分。这两个 div 在容器 div 中。在此视图中,它们居中。一旦浏览器 window 变得太窄,第二张图片会按预期放置在第一张图片下方,但它会移出视野。我怎样才能确保调整图像大小以始终保持在视图中?
<style type="text/css">
html, body {
height: 100vh;
min-height: 100vh;
}
.call-outs-container {
min-height: 100vh;
height:auto !important;
height:100vh;
overflow: hidden !important;
max-width: 2800px;
}
.pics {
padding:20px;
box-sixing: border-box;
margin-bottom: 20px;
flex-basis: 50%;
}
img {
max-width:100%;
height:100%;
object-fit:contain;
}
@media (min-width: 700px) {
.call-outs-container {
display: flex;
justify-content: space-between;
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
}
}
</style>
</head>
<body>
<main>
<div class="call-outs-container">
<div class = "pics">
<img src="images/temp_spectra.jpeg" alt="Spectra Image" />
</div>
<div class = "pics">
<img src="images/temp_sl.png" alt="Spectra Image" />
</div>
</div>
</main>
</body>
以下请求 - 这是一个 JSFiddle。 https://jsfiddle.net/tullfan/t9hope6f/
希望您正在寻找这样的东西。 做了一些改动。请检查一下。
html,
body {
padding: 0;
}
.call-outs-container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}
.pics {
height: 100%;
width: 100%;
/*margin: 0 10px; /* change margin as needed*/
display: flex;
justify-content: center;
}
img {
margin: auto;
height: auto;
width: auto;
}
@media (min-width: 700px) {
.call-outs-container {
height: 100%;
flex-direction: row;
justify-content: center;
}
img {
margin: auto;
height: 100%;
width: 100%;
}
}
<body>
<main>
<div class="call-outs-container">
<div class="pics">
<img src="https://via.placeholder.com/150" />
</div>
<div class="pics">
<img src="https://via.placeholder.com/150" />
</div>
</div>
</main>
</body>
我认为这可以解决您的问题。我做了一些改变。试试这个代码:
img{
width: 100%;
}
.call-outs-container{
display: flex;
}
@media (max-width: 768px){
.call-outs-container{
display: block;
}
}
并且不要忘记在头部添加视口:
<meta name="viewport" content="width=device-width, initial-scale=1">
您可以尝试使用 vw
(视图宽度)和 vh
(视图高度)的高度大小,让 2 张图片各占整个视图高度的 50%。要适应比例因子,只需将宽度设置为自动,浏览器会调整宽度,使比例因子相同:
img {
height: 50vh;
width: auto;
}