所以我希望显示 img
img
尽可能大(当它是风景时是填充宽度/纵向时的高度)
没有作物
无歪斜或拉伸(原始宽高比)
垂直和水平居中
此外,图像的原始大小未知 .
我已经为此尝试了很多不同的选项,包括一个flexbox(获得垂直中心),但似乎没有任何东西勾选所有方框 .
理想情况下,我当然希望这是一个全CSS解决方案,但我也在研究一些JS .
谢谢
jsFiddle Demo
要使其居中,您可以使用此处显示的技术:Absolute centering .
为了使它尽可能大,请给它 max-width 和 max-height of 100% .
max-width
max-height
100%
.className { position: fixed; top: 0; bottom: 0; left: 0; right: 0; max-width: 100%; max-height: 100%; margin: auto; overflow: auto; }
您可以使用带有背景图像的 div 和此CSS3属性:
div
background-size: contain
您可以查看以下示例:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Scaling_background_images#contain
引用Mozilla:
包含值指定无论包含框的大小如何,都应缩放背景图像,使每个边尽可能大,同时不超过容器对应边的长度 .
但是,请记住,如果 div 大于原始图像,则会对图像进行放大 .
经过大量的反复试验,我发现这解决了我的问题 . 这用于通过浏览器在电视上显示照片 .
它保持照片长宽比
垂直和水平刻度
纵向和横向居中
唯一需要注意的是真正的宽图像 . 它们可以拉伸以填充,但不是很多,标准相机照片不会改变 .
试试看 :)
*到目前为止仅在镀铬中测试过
HTML:
<div class="frame"> <img src="image.jpg"/> </div>
CSS:
.frame { border: 1px solid red; min-height: 98%; max-height: 98%; min-width: 99%; max-width: 99%; text-align: center; margin: auto; position: absolute; } img { border: 1px solid blue; min-height: 98%; max-width: 99%; max-height: 98%; width: auto; height: auto; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
yourimg { position: fixed; left: 0; top: 0; width: 100%; height: 100%; }
并确保没有位置的父标签:相对于它
4 回答
jsFiddle Demo
要使其居中,您可以使用此处显示的技术:Absolute centering .
为了使它尽可能大,请给它
max-width
和max-height
of100%
.您可以使用带有背景图像的
div
和此CSS3属性:background-size: contain
您可以查看以下示例:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Scaling_background_images#contain
引用Mozilla:
但是,请记住,如果
div
大于原始图像,则会对图像进行放大 .经过大量的反复试验,我发现这解决了我的问题 . 这用于通过浏览器在电视上显示照片 .
它保持照片长宽比
垂直和水平刻度
纵向和横向居中
唯一需要注意的是真正的宽图像 . 它们可以拉伸以填充,但不是很多,标准相机照片不会改变 .
试试看 :)
*到目前为止仅在镀铬中测试过
HTML:
CSS:
并确保没有位置的父标签:相对于它