CSS 垂直居中

摘要:
示例如下.content{400px;background:#ccc;line-height:100px;/*垂直居中*/text-align:center;/*水平居中*/}我居中了2.line-heigh+inline-block既然单行可以做到垂直居中,那么多行肯定也是可以的适用场景:多对象的垂直居中原理:在要居中的对象外面包裹一层,将它们整个的display设置为inline-block模仿行内元素。

1. line-height
适用场景:单行文字,下拉框,按钮等

原理:将单行文字设置行高以后,文字会位于行高的中间位置。也就是需要将元素的 line-height 设置成和高度一样。

示例如下

<style>
.content{
400px;
background: #ccc;
line-height:100px; /* 垂直居中 */
text-align: center; /* 水平居中 */
}
</style>
<div class="content">我居中了</div>

2. line-heigh + inline-block
既然单行可以做到垂直居中,那么多行肯定也是可以的

适用场景:多对象的垂直居中

原理:在要居中的对象外面包裹一层,将它们整个的 display 设置为 inline-block 模仿行内元素。但是包裹对象的内部还是以块级元素的形式存在。

示例如下

<style>
.main{
400px;
border: 1px solid red;
line-height: 200px;
text-align: center; /* 水平居中 */
}
.wrapper{
line-height: 1;
display: inline-block;
}
</style>

<div class="main">
<div class="wrapper">
<div>我居中了</div>
<div>我也是</div>// 仅限于是一行,多行就不能垂直居中了
</div>
</div>

3. absolute + margin 负值(定位方式,固定,已知的宽高)
这个应该是最常见的居中方式了

适用场景:多行文字的垂直居中,已知宽高

原理:利用绝对定位 top 和 left 50%,然后减去元素本身内容区的一半,就可以实现居中

示例如下

<style>
.main{
border: solid 1px red;
400px;
height: 400px;
position: relative
}
.content{
height: 200px;
200px;
background-color: yellow;
position: absolute;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -100px;
}
</style>
<div class="main">
<div class="content">
</div>
</div>

4. absolute + margin:auto(很少用)
适用场景:多行文字垂直居中

原理:这种方法跟上面的有些类似,但是这里是通过 margin:auto 和 top,left,right,bottom 都设置为 0 实现居中。不过这里得确定内部元素的高度,可以用百分比,比较适合移动端。

示例如下

<style>
.main{
border: solid 1px red;
400px;
height: 400px;
position: relative;
}
.content{
position: absolute;
background-color: yellow;
200px;
height: 100px;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
</style>
<div class="main">
<div class="content"></div>
</div>

这里需要注意设置父元素的 position 必须是 relative 或者 absolute 或者 fixed

5. Flex + align-items(没用过

适用场景:多对象垂直居中

原理:Flex 布局 align-items 垂直居中,justify-content 水平居中

示例如下

<style>
.main{
border: solid 1px red;
400px;
height: 400px;
display: flex;
align-items: center;
justify-content: center;
}
</style>
<div class="main">
<div>我居中了</div>
<div>我也居中了</div>
</div>

6. display:table-cell(用最多的一个,不需要知道高度)
适用场景:多行文字的垂直居中技巧

原理:利用 display 将 div 设置成表格的单元格,然后利用 veritical-align 实现垂直居中

示例如下

<style>
.main{
border: solid 1px red;
400px;
height: 400px;
display: table-cell;
vertical-align: middle;
text-align: center;
}
</style>
<div class="main">
<div>我居中了</div>
</div>

原文链接:https://blog.csdn.net/zhang6223284/article/details/82221751

免责声明:文章转载自《CSS 垂直居中》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java 读取Word文本/段落格式属性(摘)Zebra打印机异常处理下篇

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

相关文章

css中position(absolute)与margin同时使用的情况

1,当元素绝对定位以后,它在父元素的位置是根据top/left/right/bottom来定位的,而margin是根据自身当前位置来定位的2,当它距离父元素left:50%,top:50%,那就是父元素一半的距离,因为要实现居中即自身的中点在父元素的中间才算,所以margin-left/margin-top 负的自身宽/高的一半,那么正好水平垂直居中。3,...

下拉菜单(css)

<!DOCTYPE html><html> <head>  <meta charset="utf-8" />  <title></title>  <style type="text/css">   *{margin:0;padding:0;}   #nav{backgrou...

三、Electron + Webpack + Vue 搭建开发环境及打包安装 ---- 打包electron应用

目录 Webpack + Vue 搭建开发环境及打包安装 ------- 打包渲染进程 Electron + Webpack  搭建开发环境及打包安装 ------- 打包主进程 Electron + Webpack + Vue 搭建开发环境及打包安装 ---- 打包electron应用 三、打包Election App 应用   在之前的节中已经写...

jQuery Grid入门指南(1)

上周需要把一个项目中的普通table改成使用jQuery插件形式的表格,找到了jqgrid这个插件,本以为找个demo,查查api就能解决,没想到还是费了一番的功夫,在这里记录总结一下。 本文实现的内容主要有:基础表格的绘制,实现分页功能,将jqgrid修改为响应式表格。 先贴一张表格样子图   jqgrid源码下载地址:https://github.co...

【php5权威编程-1】

 public/private/protected 访问修饰符,针对对象中的方法和属性。 <?php class MyClass { private $id = 18; public function getId() { return $this->id; } } $obj = new My...

CSS-居中方法汇总

CSS居中是前端工程师经常要面对的问题,也是基本技能之一。今天有时间把CSS居中的方案汇编整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15种。如有漏掉的,还会陆续的补充进来。 水平居中 1.1内联元素水平居中 利用 text-align: center 可以实现在块级元素内部的内联元素水平居中。此方法对内联元素(inline), 内联块(in...