图片水平居中与垂直居中
在开发中,有时候经常会碰到图片水平居中或垂直居中或者水平、垂直都居中的情况,虽然知道怎么用,但是也只是局限于某一种,有时候也需要调试好一会儿才能解决,因此看了一下关于这方面的知识点,来总结一下。以代码来说事儿。
html主要代码:
1 2 3 | < div class="container"> < img src="http://placeholder.qiniudn.com/190x284" alt=""> </ div > |
css代码:
1 2 3 4 5 6 7 8 9 10 | <style> .container{ width : 500px ; height : 400px ; border : 1px solid #eee ; } img{ width : 200px ; } </style> |
1、图片水平居中。
这里有一下几种方法可以实现。
(1)、将img标签变成块元素,然后使用margin:0 auto;即可实现。其他不变,那么此时img的样式为:
1 2 3 4 5 | img{ display : block ; width : 200px ; margin : 0 auto ; } |
(2)、其实跟第一种差不多,就是将img标签一个相对定位(relative)或者绝对定位(absolute),然后left值为50%,然后使用margin-left值为负的图片的宽度的一半就行,代码为
1 2 3 4 5 6 | img{ width : 200px ; position : absolute ; left : 50% ; margin-left : -100px ; // 该值为图片宽度的一半 } |
(3)、使用相对定位(relative)或者绝对定位(absolute),然后left值为50%,然后使用css3transform里的translate来实现(虽然在兼容性方面有些小问题)。
1 2 3 4 5 6 | img{ width : 200px ; position : relative ; left : 50% ; transform:translateX( -50% ); } |
2、图片垂直居中
(1)、这里其实上面实现图片水平居中的第三种方法是一样的,只不过是将left换为了top,水平方向移动换成了垂直方向移动而已。
1 2 3 4 5 6 | img{ width : 200px ; position : relative ; top : 50% ; transform:translateY( -50% ); } |
(2)、使用css伪类选择器 :before与vertical-align 来实现,代码为:
1 2 3 4 5 6 7 8 9 10 | .container:before{ content : '' ; display : inline- block ; height : 400px ; // 高度值与包含图片的容器的高度一致 vertical-align : middle ; } img{ width : 200px ; vertical-align : middle ; } |
(3)、第三种方法就是已知图片的高度,然后使用top:50%和设置margin-top值为负的图片高度的一半。
3、至于水平垂直都居中那就好说了,将上面垂直、水平居中的方法结合一下就行了。
作者:江峰★
出处:http://www.cnblogs.com/jf-67/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?