如何在响应式容器内垂直对齐图像?
在响应式容器内垂直对齐图像
挑战
您有一个 HTML 结构,其中一个容器保持方形纵横比作为浏览器窗口已调整大小。在此容器内,您想要添加图像,但需要确保它保持垂直对齐。挑战的出现是因为图像的高度是可变的,并且容器的高度无法固定。
解决方案
使用 CSS 内联元素
- 创建一个内联块伪元素作为容器元素的第一个(或最后一个)子元素,并将其高度设置为100%以占据整个容器的高度。
- 为伪元素和图像设置vertical-align: middle,使元素垂直居中。
- 通过设置 font-size 删除元素之间的任何空白: 0;在容器元素上删除字符(空格)占用的空间。
HTML:
<div class="container"> <div>
登录后复制
CSS:
.container { height: 300px; text-align: center; /* align the inline(-block) elements horizontally */ font: 0/0 a; /* remove the gap between inline(-block) elements */ } .container:before { /* create a full-height inline block pseudo=element */ content: ' '; display: inline-block; vertical-align: middle; /* vertical alignment of the inline element */ height: 100%; } #element { display: inline-block; vertical-align: middle; /* vertical alignment of the inline element */ font: 16px/1 Arial sans-serif; /* <-- reset the font property */ }
登录后复制
制作容器响应式
要创建高度相对于宽度调整大小的响应式容器,您可以使用百分比值对于顶部/底部填充属性:
.responsive-container { width: 60%; padding-top: 60%; /* 1:1 Height is the same as the width */ padding-top: 100%; /* width:height = 60:100 or 3:5 */ padding-top: 45%; /* = 60% * 3/4 , width:height = 4:3 */ padding-top: 33.75%; /* = 60% * 9/16, width:height = 16:9 */ }
登录后复制
包装图像内容
为了避免容器顶部或底部出现过多空间,请将图像包装在包装元素中并将其定位绝对在容器内以填充其整个空间:
.responsive-container { width: 60%; position: relative; } .responsive-container .wrapper { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
登录后复制
包括图像和 CSS对齐
HTML:
<div class="responsive-container"> <div class="dummy"></div> <div class="img-container"> <img src="http://placehold.it/150x150" alt=""> </div> </div>
登录后复制
用于图像对齐的CSS:
.img-container { text-align: center; /* Align center inline elements */ font: 0/0 a; /* Hide the characters like spaces */ } .img-container:before { content: ' '; display: inline-block; vertical-align: middle; height: 100%; } .img-container img { vertical-align: middle; display: inline-block; }
登录后复制
浏览器兼容性的替代方案
为了更好地跨浏览器兼容性,您可以使用 div 元素作为图像容器的第一个子元素而不是伪元素:
HTML:
<div class="img-container"> <div class="centerer"></div> <img src="http://placehold.it/150x150" alt=""> </div>
登录后复制
CSS:
.img-container .centerer { display: inline-block; vertical-align: middle; height: 100%; }
登录后复制
使用 max-* 属性进行图像控制
保留图像当容器内宽度较小时,可以使用 max-height 和 max-width 属性图片:
.img-container img { max-height: 100%; /* Set maximum height to 100% of its parent */ max-width: 100%; /* Set maximum width to 100% of its parent */ }
登录后复制
以上是如何在响应式容器内垂直对齐图像?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
如何修复KB5055612无法在Windows 10中安装?
4 周前
By DDD
<🎜>:种植花园 - 完整的突变指南
3 周前
By DDD
<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
