美文网首页
利用:before垂直居中的问题

利用:before垂直居中的问题

作者: 饥人谷_任磊 | 来源:发表于2016-08-14 21:38 被阅读949次

在上次的直播课程中,若愚老师讲了两种垂直居中的方法,
html代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="wrap">
     <div class="box">
      ![](http://js.jirengu.com/images/dave.min.svg)   
    
  </div>
   
</div>
  
    <div class="box2">
      ![](http://js.jirengu.com/images/dave.min.svg)
    </div>
  

</body>
</html>

CSS代码如下:

.wrap{
  display: table;
  width: 100%;
}
.box{
  height: 200px;
  border: 1px solid red;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
}
.box>img{
  width: 100px;
} 
.box2>img{
  width: 180px;
  vertical-align: middle;
}
.box2{

  height: 300px;
  border: 1px solid blue;
  text-align: center;
}
.box2:before{
  content:'';
  display: inline-block;
  width: 0px;
  height: 100%;
  vertical-align: middle;
}
垂直居中
为方便调试,在贴一个JSbin的地址:
垂直居中

重点讨论伪类:before使用场景

在做实战15的时候想利用before来解决页头的垂直居中,但是使用起来发现没有达到想要的效果。仔细分析代码发现问题如下:

.box2:before{
  content:'';
  display: inline-block;
  width: 0px;
  height: 100%;
  vertical-align: middle;
}

在创建伪类后,使用了display:inline-block和heigh:100%这两行代码,这就意味着那个想要垂直居中的元素也需要display:inline-block,那么img本身就是inline-block,所以这个方法用在图片上是OK的,但是用在文字上就出现了问题,本来我想要的效果是这样:

想要的效果

结果确是这样:

现实效果

通过这个列子可以得知,这个方法用在图片(单行)或者单行文字是OK的,多行文字的垂直居中还是适用table-cell比较好。

相关文章

  • 利用:before垂直居中的问题

    在上次的直播课程中,若愚老师讲了两种垂直居中的方法,html代码如下: CSS代码如下: 重点讨论伪类:befor...

  • 垂直居中的方法

    行内元素居中 html css before元素居中 html css table-cell居中 css 垂直居中...

  • css居中各种实现

    垂直居中 多行文字垂直居中 利用flex布局 利用display: table;

  • 居中布局

    水平居中 垂直居中 垂直水平居中 已知元素的宽高的居中布局 定位居中布局 盒模型居中布局 图片的垂直水平居中(利用...

  • 如何垂直居中一个元素

    单行内联元素垂直居中 利用line-height与height相同即可 多行内联元素垂直居中 利用flex布局利用...

  • 【css图片垂直居中】让html img图片垂直居中的三种方法

    一、使用flex实现垂直居中 利用css flex实现垂直居中。flex可能不是实现垂直居中最好的选择,因为IE8...

  • CSS垂直居中

    CSS垂直居中的方法总结: 1.利用padding垂直居中(line-height用于单行文本居中) **不需要设...

  • margin auto

    1. margin auto 与垂直居中 关于垂直居中的方式方式1:利用父元素position:relative和...

  • CSS垂直居中

    #CSS垂直居中的所有方法 标签(空格分隔): css技巧 --- ##1.利用padding垂直居中(line-...

  • 页面布局居中问题

    css页面布局水平垂直居中问题 居中问题

网友评论

      本文标题:利用:before垂直居中的问题

      本文链接:https://www.haomeiwen.com/subject/dhaysttx.html