在 window 调整大小时自动调整图像大小
Resize images automatically on window resize
我正在显示一些 input type=image。图像按我希望的方式显示在更大的 window 中,但是当 window 缩小时,就像在 phone 上一样,images/row 会发生变化,但不会改变每个图像的大小。我发布了一个类似的问题,并被告知使用 display:inline-flex 但是当我尝试这样做时,在这种情况下,较大 window 中的布局没有按我想要的那样间隔。
所以我试图让所有图像都像 window 大小一样缩小,但同时保持它们所在的布局 - 均匀分布在行中。
还有一个颜色名称居中的小问题。我用在第一个上,它有效。是这样做的方法还是可以更改 类 之一来做到这一点?
.imgStr {display:inline-block; }
.imgInput {width:100px; max-width:100px;}
img{border:solid 1px #9a9a9a; margin:10px;}
.selected{ box-shadow:0px 12px 22px 1px #333 }
.transition {
-webkit-transform: scale(1.6);
-moz-transform: scale(1.6);
-o-transform: scale(1.6);
transform: scale(1.6);
}
#enlarge {
-webkit-transition: all .4s ease-in-out;
-moz-transition: all .4s ease-in-out;
-o-transition: all .4s ease-in-out;
-ms-transition: all .4s ease-in-out;
}
#enlarge { margin:0px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="imgStr shadow"><center><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Beige</center></div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Black</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br />Blue</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Navy</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Baby Blue</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Chocolate</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Dark Grey</div>
据我了解,您希望响应式图像的缩放与用户 window 的大小相关。
我不确定在正常 css 中是否有简单的方法可以做到这一点,但是 Bootstrap(谢天谢地)内置了这个!
<img src="foo.jpg" class="img-responsive">
只需将 "img-responsive" class 添加到您的图像中,它就会响应并缩放到它所在的任何父元素的大小。
对于仅 CSS 的解决方案,您正在寻找 @media-query
(https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries):
<style>
.your-image {
transition: all 0.5s ease;
width: 200px;
}
@media (max-width: 600px) {
.your-image {
width: 100px;
}
}
</style>
这表示 "if the window is less than 600px width, images with the your-image
class should have a different width"。
IMO CSS 解决方案非常干净,但如果您想使用 Javascript,您可以这样做:
function foo() {
...do your resizing here...
}
window.addEventListener('resize', foo);
我正在显示一些 input type=image。图像按我希望的方式显示在更大的 window 中,但是当 window 缩小时,就像在 phone 上一样,images/row 会发生变化,但不会改变每个图像的大小。我发布了一个类似的问题,并被告知使用 display:inline-flex 但是当我尝试这样做时,在这种情况下,较大 window 中的布局没有按我想要的那样间隔。
所以我试图让所有图像都像 window 大小一样缩小,但同时保持它们所在的布局 - 均匀分布在行中。
还有一个颜色名称居中的小问题。我用在第一个上,它有效。是这样做的方法还是可以更改 类 之一来做到这一点?
.imgStr {display:inline-block; }
.imgInput {width:100px; max-width:100px;}
img{border:solid 1px #9a9a9a; margin:10px;}
.selected{ box-shadow:0px 12px 22px 1px #333 }
.transition {
-webkit-transform: scale(1.6);
-moz-transform: scale(1.6);
-o-transform: scale(1.6);
transform: scale(1.6);
}
#enlarge {
-webkit-transition: all .4s ease-in-out;
-moz-transition: all .4s ease-in-out;
-o-transition: all .4s ease-in-out;
-ms-transition: all .4s ease-in-out;
}
#enlarge { margin:0px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="imgStr shadow"><center><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Beige</center></div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Black</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br />Blue</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Navy</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Baby Blue</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Chocolate</div>
<div class="imgStr shadow"><input id="enlarge" class="imgInput" name="img_back_group" type="image" src="//dummyimage.com/700x350" / ><br / >Dark Grey</div>
据我了解,您希望响应式图像的缩放与用户 window 的大小相关。
我不确定在正常 css 中是否有简单的方法可以做到这一点,但是 Bootstrap(谢天谢地)内置了这个!
<img src="foo.jpg" class="img-responsive">
只需将 "img-responsive" class 添加到您的图像中,它就会响应并缩放到它所在的任何父元素的大小。
对于仅 CSS 的解决方案,您正在寻找 @media-query
(https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries):
<style>
.your-image {
transition: all 0.5s ease;
width: 200px;
}
@media (max-width: 600px) {
.your-image {
width: 100px;
}
}
</style>
这表示 "if the window is less than 600px width, images with the your-image
class should have a different width"。
IMO CSS 解决方案非常干净,但如果您想使用 Javascript,您可以这样做:
function foo() {
...do your resizing here...
}
window.addEventListener('resize', foo);