居中图片的多种姿势
集合目前能想到的居中图片的做法并区分
通过 margin 实现
实现方式
将 <img> 包在 <div> 中, 然后设置 <div> 的样式如下:
1 | div { |
效果
- 当视窗宽度大于
<div>宽度时, 图片完全显示, 且图片呈现为居中状态 - 当视窗宽度小于等于
<div>宽度时候, 图片部分显示, 且显示的部分也不是图片中间部分
通过 text-align 实现
实现方式
通过设定 <img> 父元素的 text-align css 样式为 center 实现:
1 | body { |
效果
- 当视窗宽度大于
<img>宽度时, 图片完全显示, 且图片呈现为居中状态 - 当视窗宽度小于等于
<img>宽度时候, 图片部分显示, 且显示的部分也不是图片中间部分
通过 flex 实现
实现方式
将 <img> 父元素设定为 flex box实现, 具体 css 如下:
1 | body { |
效果
- 当视窗宽度大于
<img>宽度时, 图片完全显示, 且图片呈现为居中状态 - 当视窗宽度小于等于
<img>宽度时候, 图片依然完全显示, 但是图片会等比例缩小
通过 background 实现
实现方式
图片设置为 div 的背景图片, 并将其设置为居中, 具体 css 如下:
1 | div { |
效果
- 当视窗宽度大于
<img>宽度时, 图片完全显示, 且图片呈现为居中状态 - 当视窗宽度小于等于
<img>宽度时候, 图片部分显示, 显示部分始终为图片的中间部分!
通过 position 实现
实现方式
将图片左移自身宽度一半的距离, 然后在向右移动视窗一半的距离, 具体 css 如下:
1 | img { |
效果
- 当视窗宽度大于
<img>宽度时, 图片完全显示, 且图片呈现为居中状态 - 当视窗宽度小于等于
<img>宽度时候, 图片部分显示, 显示部分始终为图片的中间部分!
总结
就目前来看, 实现图片居中的最好方式, 是使用 position 或 background 实现!