如何垂直居中一个元素

  前两天刚写完如何水平居中一个元素,今天把垂直的情况补上。

  相比于水平居中,垂直居中的情况就少多了。

  1、行级元素的垂直居中

    这种情况比较简单,只需要设置line-height和height相等即可,也没什么可延伸的。

  2、块级元素的垂直居中

    2.1、父元素高度不固定

    其实我认为这种情况不用讨论,正常情况下高度不固定,子元素会充满父元素,不过非要使子元素距父元素有一定间距也不是没办法:

    可以设置padding-top和padding-bottom相等来使子元素居中并且和父元素有一定距离。

    2.2、父元素高度固定

    css代码

    

    html代码

    

    

    针对这种情况,要实现垂直居中,只要以下两点即可:

      1)父元素line-height和height相等

      2)子元素设置 vertical-align:middle;// 垂直居中对齐

               display:inline|inline-block 块级元素转行级元素

    注意:这里有个小细节需要注意,对于display:inline的情况,这两条就可以实现,但是有个弊端就是我们没办法给子元素设置高度(因为这时已经变成行级元素了),

      所以对于有子元素有高度要求的情况下,我们可以设置 display:inline-block ,但是大多数情况下这样设置后我们会发现子元素的内容会发生偏移,如下图:

      

      这时什么原因呢?

      其实,这时子元素继承了父元素的line-height属性,使子元素内容发生了偏移。解决办法也很简单,只需要给子元素同样设置一个新的line-height和height相等即可

      

原文地址:https://www.cnblogs.com/tristy/p/8489457.html

时间: 2024-11-07 18:28:12

如何垂直居中一个元素的相关文章

浅谈css中一个元素如何在其父元素居中显示

css如何垂直居中一个元素的问题已经是一个老生常谈的问题了.不管对于一个新手或者老手,在面试过程中是经常被问到的.前两天在看一个flex的视频教程,当中提到了有关元素的居中问题,所以今天小编就来扒一扒几种常见的方式.不足之处请大家批评指正(所有的代码都是自己亲手敲过可用的) 1.水平居中(margin:0 auto;) 关于这个,大家应该是最不陌生的,不管是在培训班还是自己自学的话 .这个应该是老师讲的第一个方法了(水平方向上),但是其有一个前提,就是被包裹的元素不能有浮动的属性.否则的话这个属

如何垂直居中一个浮动元素

如何垂直居中一个浮动元素 // 方法一:已知元素的高宽 #div1{ width:200px; height:200px; position: absolute;        /*父元素需要相对定位*/ top: 50%; left: 50%; margin-top:-100px ;   /*二分之一的height,width*/ margin-left: -100px; } //方法二:未知元素的高宽 #div1{ width: 200px; height: 200px; margin:au

如何垂直居中一个浮动元素?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // 方法一:已知元素的高宽 #div1{ width:200px; height:200px; position: absolute;        //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ;   //二分之一的height,width margin-left: -100px; } /

css系列(布局):实现一个元素在浏览器中水平、垂直居中的几个方案

在开发中偶遇需要一个元素垂直居中的需求,之前都是水平居中,垂直居中使用的比较少,经过一通研究,选择了几种相对比较实用的方案分享,抛砖引玉,如有遗漏不足,还望不吝指正. 方案一(IE7下该方案无法实现垂直居中): 通过设置父级的的块属性实现,将父级元素手动转换位display:table-cell属性,然后使用表格的vertical-align: middle属性,实现元素的垂直居中,子元素继续使用margin:0 auto;实现水平居中即可 代码如下: 1 <!DOCTYPE html> 2

如何垂直居中一个浮动元素?如何垂直居中一个&lt;img&gt;?

// 方法一:已知元素的高宽 #div1{     background-color:#6699FF;     width:200px;     height:200px;     position: absolute;        //父元素需要相对定位     top: 50%;     left: 50%;     margin-top:-100px ;   //二分之一的height,width     margin-left: -100px;  }   //方法二:未知元素的高宽 #

逆战班第三周 定位实现一个元素水平垂直居中的方法

我们在写页面的时候,经常会遇到一种需求,就是想让一个元素水平垂直居中,这种需求分两种情况,一种是相对于父元素,一种是相对于浏览器窗口,这两种情况都有很多种解决方法,但是我们今天就只说怎样用定位去解决元素水平垂直居中的问题 首先说第一种,子元素相对于父元素水平垂直居中 假设我们知道这个子元素和父元素的宽高,比如父元素宽高都是400px,子元素都是200px,为了让他们看起来都比较直观,我们给他一个背景色,在给父元素一个margin100px: 看到的效果就是这样 因为是相对与父元素垂直水平居中,那

关于html与css中隐藏一个元素的几种方法

1,将元素的display属性设为none <div style="display:none">看不见我</div> 2,<input>标签元素的type属性设为hidden <input type="hidden" name="看不见我"> 3,将元素的width和heigth都设为0 <div style="width:0:heigth:0:background-color:re

[ jquery 过滤器 .first() | .last() ] 此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围)

此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围): 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content

js如何判断一个元素是否获得焦点

js如何判断一个元素是否获得焦点:可能在实际应用中需求不多,也或许使用以下方式判断过于直白,不过原理总是那么回事,下面就是一个简单的判断元素是否获得焦点的例子,代码如下: $("#theid").click(function(){ var act = document.activeElement.id; if(act=="theid" ){ alert("获取焦点了"); } else{ alert("没有获取焦点"); }