如何让一个行内元素(如image)在div中居中

摘要:
1、第一种:用vertical-alignvertical-align:middle是依赖div内子元素最高的行高来实现对某元素居中的,而我们只需要建立一个新元素,给他加上inline-block属性再把他高度设置为100%就行了,在下面的设置vertical-align就生效了˂imgclas

1、第一种:用vertical-align

vertical-align:middle  是依赖div内子元素最高的行高来实现对某元素居中的,而我们只需要建立一个新元素,给他加上inline-block
属性 再把他高度设置为100%就行了,在下面的<img>设置vertical-align就生效了
<div class="method1">
  <span class="tiptop"></span>
  <img class="test" src="http://t.zoukankan.com/img/Dota2.jpg" alt="dota2">
</div>


<style>.method1{
  text-align:center;
}
.tiptop{
  height:100%;
  display:inline-block;
  vertical-align:middle;
}
img{
  vertical-align:middle;
}
</style>

2、第二种:flex布局(注意浏览器兼容性)

<div class="method2">
  <img src="http://t.zoukankan.com/img_p1_title.png">
</div>


<style>.method2 {
  display: flex;
  justify-content: center;  //弹性盒子对象在主轴上的对齐方式
  align-items: center;      //定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。
  background-color:#00a0e9;
  height:200px;
}
.method2 img {
  20px;
  height:30px;
  background-color:#0A58A0;
}
</style>

3、绝对定位的方式

<div class="method3">
  <span>第三种方法</span>
</div>



<style>.method3 {
  100%;
  height: 200px;
  font-size: 18px;
  position: relative;
  background-color:#00a2d4;
}
.method3 span {
  100px;
  height:100px;
  background-color:#00ACED;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  }
</style>

4、使用display:table-cell配合vertical-align:center(淘宝也是这样用的)

<div class="method4">
  <span>第四种方法</span>
</div>


<style>.method4 {
   200px;
  height: 200px;
  vertical-align: middle;
  display: table-cell;  /*只支持IE8+及现代浏览器,与position:absolute;或float:left;属性尽量不一起用*/text-align: center;
  background-color:#00ACED;
}
.method4{
  100px;
  height:100px;
  background-color:#0A58A0;
}
</style>

免责声明:文章转载自《如何让一个行内元素(如image)在div中居中》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Winform中设置Dialog的显示位置居中微软Azure云计算服务主导全球下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js打印隐藏的div,可自定义样式

这里是全部代码,可以直接运行。js需要自行导入 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/...

CSS之多个div一行排列

  使多个div横着排的两种方法,一种是浮动float,一种是布局display   一、使用float   元素一旦浮动,脱离文档流(不占页面空间,后面未浮动元素会上前补位。   1、代码示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="...

我的css释疑-float line-height inline-block vertical-align

markdown的图片和链接格式相类似: [链接文字/图片的alt text] (链接地址/ 图片的地址), 只是图片要在前面加上感叹号! 当内容中含有图片的时候,如果图片的高度大于行高,则含有图片 行的行框将被撑开到图片的高度 注意:图片虽然撑开了行框,但是不会影响行高,因此也不会影响到基于行高来计算的其他属性。 提示:当行内含有图片的时候,图片和文字...

css3动画特效:上下晃动的div

<div class="container animated">上下晃动</div> /** * transform-origin 设置旋转元素的基点位置 * animation-name 设置动画名称 * animation-duration 设置动画时间 * animation-fill-...

让DIV中文字换行显示

让DIV中文字换行显示 1. <style> div { white-space:normal; word-break:break-all; word-wrap:break-word; } </style> &...

通过css实现div中文本内容显示N行,超过部分用省略号显示

一、div内显示一行,超出部分用省略号显示 white-space: nowrap; overflow: hidden; text-overflow: ellipsis;    二、div内显示N行,超出部分用省略号显示 overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -w...