我知道这可能已经重复,但我尝试了许多解决方案在互联网上,仍然不工作.我有两个图片,希望出现在不同的屏幕大小.然而,CSS命令图片较小的屏幕(767px及以下)似乎不工作.
如果你能帮助一个新手我会很感激的。谢谢。
@media only screen and (min-width: 768px) {
img{
border-top-left-radius: 30px;
border-bottom-left-radius: 30px;
}
}
@media only screen and (max-width: 767px) {
#loginPicXs{
border-top-left-radius: 30px;
border-top-right-radius: 30px;
}
}
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<picture>
<source media="(max-width: 767px)" id="loginPicXs" srcset="loginformpic_sm_xs.jpg">
<img src="loginformpic.jpg" class="img-responsive">
</picture>
</div>
3条答案
按热度按时间g0czyy6m1#
当使用
<source>
-元素时,你需要使用属性srcset
。它的用法是为不同的视口使用不同的图像,其中图像可以保持其固有的高度和宽度值,例如避免累积布局偏移。尽管
<source>
-元素实际上不应该只与srcset
-属性中的一个图像一起使用,但您可以通过使用srcset
而不是src
来保留HTML标记:zvokhttg2#
我认为最简单的解决办法是:
这使得两个图像在768px的断点处交换
q1qsirdb3#
根据HTML规范,
picture
只能包含一个img
元素,虽然可以隐藏一个,但不建议隐藏。https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture
您需要使用两个
img
元素:一个用于台式机,一个用于移动的。当视口宽度大于
768px
时隐藏移动的版本,当视口宽度小于768px
时隐藏桌面版本。您可以使用
figure
代替div。https://developer.mozilla.org/en-US/docs/Glossary/Semantics