div垂直居中的方法_【CSS】8种常见的垂直水平居中方法

de91e901119fcb12173d4af6d7fcbae7.png

1.比较传统的方式 absolute+margin负值偏移

特点:父容器要设置宽高,需要知道子容器宽高,偏移量是子容器宽高的一半且是负值,兼容性好

  /* absolute+margin负值偏移布局 */.layout.absolute {position: relative;}.layout.absolute  article {position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -160px;}<section class="layout absolute"><article><p>1.absolute+margin负值偏移<br>(父容器要设置宽高,需要知道子容器宽高)</p></article></section>

2.absolute+transform布局

特点:父容器要设置宽高

  /* absolute+transform布局 */.layout.transform {position: relative;}.layout.transform article {position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);}<section class="layout transform"><article><p>2.absolute+transform<br>(父容器要设置宽高)</p></article></section> 

3.flex布局

特点:自适应

  /* flex布局 */.layout.flex {display: flex;justify-content: center;align-items: center;}<section class="layout flex"><article><p>3.flex<br>(自适应)</p></article></section>

4.table-cell布局

特点:比其他方法多1个容器,注意边距重叠

  .layout.table-cell {display: table;width: 100%;}.layout.table-cell .outer {display: table-cell;vertical-align: middle;text-align: center;}.layout.table-cell article {margin: 0 auto;overflow: auto;}<section class="layout table-cell"><div class="outer"><article><p>4.table-cell<br>(多1个容器,注意边距重叠)</p></article>                      </div></section> 

5.grid布局

特点:自适应,要考虑兼容性

   .layout.grid{display: grid;}.layout.grid article {justify-self: center;align-self: center;}<section class="layout grid"><article><p>5.grid<br>(自适应,要考虑兼容性)</p></article></section> 

6.inline-block布局

特点:自适应,兼容性好

   .layout.inline-block {text-align: center;}.layout.inline-block::after {content: '';height: 100%;display: inline-block;vertical-align: middle;}.layout.inline-block article {display: inline-block;vertical-align: middle;}<section class="layout inline-block"><article><p>6.inline-block<br>(自适应)</p></article></section> 

7.absolute + margin-auto 布局

特点:内外容器都要设置宽高,兼容性好

  .layout.margin-auto {position: relative;}.layout.margin-auto article{position: absolute;top: 0;bottom: 0;left: 0;right: 0;margin: auto;}<section class="layout margin-auto"><article><p>7.absolute + margin-auto<br>(内外容器都要设置宽高) </p></article></section>

8.line-height 布局

特点:只适合单行inline,而且要知道父容器的高度,兼容性好

.layout.line-height {line-height: 150px;}.layout.line-height article {display: inline;margin:  auto;}<section class="layout line-height"><article><p>8.line-height(只适合单行inline,而且要知道父容器的高度)</p></article></section>

完整例子:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>垂直居中</title><style>html,body {padding: 0;margin: 0;}.layout {margin-bottom: 15px;height: 150px;background-color: blueviolet;background-clip: content-box;}.layout article {background-color: lightcoral;color: #fff;width: 320px;height: 100px;  text-align: center;}/* absolute+margin负值偏移布局 */.layout.absolute {position: relative;}.layout.absolute  article {position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -160px;}/* absolute+transform布局 */.layout.transform {position: relative;}.layout.transform article {position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);}/* flex布局 */.layout.flex {display: flex;justify-content: center;align-items: center;}/* table-cell布局 */.layout.table-cell {display: table;width: 100%;}.layout.table-cell .outer {display: table-cell;vertical-align: middle;text-align: center;}.layout.table-cell article {margin: 0 auto;overflow: auto;}/* grid布局 */.layout.grid{display: grid;}.layout.grid article {justify-self: center;align-self: center;}/* inline-block布局 */.layout.inline-block {text-align: center;}.layout.inline-block::after {content: '';height: 100%;display: inline-block;vertical-align: middle;}.layout.inline-block article {display: inline-block;vertical-align: middle;}/* absolute + margin-auto */.layout.margin-auto {position: relative;}.layout.margin-auto article{position: absolute;top: 0;bottom: 0;left: 0;right: 0;margin: auto;}/* line-height 布局 */.layout.line-height {line-height: 150px;}.layout.line-height article {display: inline;margin:  auto;}</style>
</head>
<body><section class="layout absolute"><article><p>1.absolute+margin负值偏移<br>(父容器要设置宽高,需要知道子容器宽高)</p></article></section><section class="layout transform"><article><p>2.absolute+transform<br>(父容器要设置宽高)</p></article></section><section class="layout flex"><article><p>3.flex<br>(自适应)</p></article></section><section class="layout table-cell"><div class="outer"><article><p>4.table-cell<br>(多1个容器,注意边距重叠)</p></article></div></section><section class="layout grid"><article><p>5.grid<br>(自适应,要考虑兼容性)</p></article></section><section class="layout inline-block"><article><p>6.inline-block<br>(自适应)</p></article></section><section class="layout margin-auto"><article><p>7.absolute + margin-auto<br>(内外容器都要设置宽高) </p></article></section><section class="layout line-height"><article><p>8.line-height(只适合单行inline,而且要知道父容器的高度)</p></article></section></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 反射获取对象_使用Java反射机制获取对象

本文由广州疯狂软件教育java培训分享&#xff1a;构造接口Person&#xff0c;所有Person都会问好&#xff0c;但具体讲什么语言就不知道了&#xff01;package interf;public interface Person {public void sayHello();}构造一个Person的实现类American&#xff0c;问好的时候…

websocket 导致大量apache进程_Swoole 服务端主动向websocket推送消息

在之前的博文中&#xff0c;我们已经学完了如果使用swoole搭建websocket长连接&#xff0c;也学会了swoole的多进程数据共享操作。但在一个完整的websocket长连接日常操作链中&#xff0c;服务端往往会主动给在线的用户单独推送消息&#xff0c;会群发一些消息。在Swoole-webso…

python因子分析法_python——因子分析

因子分析用Python做的一个典型例子 一、实验目的 采用合适的数据分析方法对下面的题进行解答二、实验要求 采用因子分析方法&#xff0c;根据48位应聘者的15项指标得分&#xff0c;选出6名最优秀的应聘者。 三、代码 importpandas aspd importnumpy asnp importmath asmath imp…

polycom安卓手机客户端_三款免费「游戏串流」APP,在手机/电视上玩PC游戏

以前想把电脑游戏输出到电视机上玩&#xff0c;得用HDMI线输出&#xff0c;如果电脑主机和电视机离太远&#xff0c;HDMI线不够长&#xff0c;还得抱电脑主机到电视机旁边&#xff0c;非常不方便。随着技术的发展&#xff0c;现在已经有「串流」功能&#xff0c;只要电视机和电…

java框架谁搭建_从零开始搭建一个开发框架(Java + Hibernate + Spring + Oracle)

框架使用的系统技术以及数据库如下&#xff1a;技术&#xff1a;Java/Hibernate/Hibernate Annotation/Spring数据库&#xff1a;Oracle 10g整个框架的搭建步骤大致分为以下三步&#xff1a;1、创建数据库相关信息2、配置Hibernate框架(导入包、编写hibernate.cfg.xml配置文件、…

python获取返回值_python如何获取函数的返回值

函数需要先定义后调用&#xff0c;函数体中 return 语句的结果就是返回值。如果一个函数没有 reutrn 语句&#xff0c;其实它有一个隐含的 return 语句&#xff0c;返回值是 None&#xff0c;类型也是 NoneType。return 语句的作用&#xff1a;结束函数调用、返回值 指定返回值…

java模拟器百度_Java模拟实现百度文档在线浏览

这个思路是我参考网上而来&#xff0c;代码是我实现。采用Apache下面的OpenOffice将资源文件转化为pdf文件&#xff0c;然后将pdf文件转化为swf文件&#xff0c;用FlexPaper浏览。ok&#xff0c;A、下载OpenOffice (转换资源文件)B、下载JodConverter(调用OpenOffice)C、下载Sw…

python去掉标点、特殊符号_python3去掉string中的标点符号方法

网上看到的python去掉字符串中的标点符号的方法&#xff0c;大多是基于python2的&#xff0c;不适用python3&#xff0c;调整后代码如下&#xff1a; 代码 lower_case_documents [Hello, how are you!,Win money, win from home.,Call me now.,Hello, Call hello you tomorrow…

java第一阶段知识_第一阶段 Java语言(下)

本课程是Android入门教程之Java核心技术阶段&#xff0c;是Java开发高级部分&#xff0c;安卓开发中的基础知识&#xff0c;讲解以下内容&#xff1a;(一)反射与内省讲解了什么是反射&#xff0c;反射在应用中的作用&#xff0c;相关反射的API&#xff0c;如Class类&#xff0c…

body click js 委托_JS 事件循环

进程 线程CPU 分配资源的最小单位是进程&#xff0c;同一个时间内单个 CPU 只能运行一个进程&#xff0c;单个 CPU 一次只能运行一个任务CPU 调度的最小单位是线程&#xff0c;一个进程里面包含多个线程。可以看看阮老师的这篇文章&#xff0c;进程与线程的一个简单解释浏览器的…

java格式_JAVA语言格式

3.1 常量 3.1.1 常量概述 – 在程序执行的过程中&#xff0c;其值不可以发生改变的量 3.1.2 常量分类 – 字符串常量用双引号括起来的内容(“HelloWorld”) – 整数常量 所有整数(12,-23) – 小数常量 所有小数(12.34) – 字符常量 用单引号括起来的内容(‘a’,’A’,’0’) –…

django jsonresponse_利用 Django 动态展示 Pyecharts 图表数据的几种方法

本文将介绍如何在 web 框架 Django 中使用可视化工具 Pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法!Django 模板渲染1. 新建一个 Django 项目命令行中输入以下命令django-admin startproject pyecharts_django_demo创建一个应用程序python manage.py startapp d…

python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!...

今天要来说说滑动验证码了大家应该都很熟悉点击滑块然后移动到图片缺口进行验证现在越来越多的网站使用这样的验证方式为的是增加验证码识别的难度那么&#xff0c;对于这种验证码应该怎么破呢接下来就是见证神奇的时刻打开 b 站的登录页面可以看到登录的时候需要进行滑块验证按…

怎么调用新建模型里文章的内容_优雅地进行Tensorflow Lite模型转换

初涉知乎江湖&#xff0c;知道大佬很多&#xff0c;请温柔以待&#xff01;&#xff01;&#xff01;七日凌晨&#xff0c;谷歌连夜发布了有关于Tensorflow最新成果和技术&#xff0c;这应该是贾扬清离开脸书后另一个深度学习界令人惊呼的事件了吧&#xff01;&#xff08;旁白…

elastic java_ElasticSearch和Java环境变量

当我下载并解压缩elasticsearch并运行/bin/service.bat或/bin/elasticsearch.bat文件时&#xff0c;我进入了终端&#xff1a;JAVA_HOME environment variable must be set! Press any key to continue . . .当我这样做时&#xff0c;终端关闭。我已经卸载并重新安装&#xff0…

git add后取消_Git常用命令-总结

创建git用户$ git config --global user.name "Your Name"$ git config --global user.email "emailexample.com"初始化一个Git仓库&#xff0c;使用git init命令。添加文件到Git仓库&#xff0c;分两步&#xff1a;使用命令git add &#xff0c;注意&…

java数组图片_在JAVA中定义图片数组

为实现此意图需要分三段来实现&#xff1a;1。 初始化&#xff1a; Image[] imgnew Image[n];for(int i0;iimg[i]Toolkit.getDefaultToolkit().createImage(....)//装入图片位置}2. 启动变换图片与刷新界面线程run(){//线程入口while(flag){index;index%n;(或写成if(index>n…

查看csv编码_[小O地图-数据] - 坐标转地址文字(逆地理编码)

小O地图是一款基于互联网地图进行地理数据处理、分析、图表的软件。致力为广大科研人员提供专业地图数据&#xff0c;用于科研及学习。小&#xff2f;地图提供将【经纬度坐标转换为地址】的功能&#xff0c;例如&#xff1a;将“116.359861, 39.917225” 转换为 “北京市西城区…

c# mysql 封装_C#简单通用的数据库连接封装

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Data;usingSystem.Data.SqlClient;namespaceDbLib{/// ///数据库类/// public classDatabase : IDisposable{/// ///受保护的数据库连接/// protecte…

python自动化办公源码_python自动化办公:文件篇(自动整理文件,一键完成)

import os list_all[]#初始化一个空列表 for root ,dirs,files in os.walk(rC:UsersShineionDesktop新建文件夹): for name in files: file_pathos.path.join(root,name)#包含路径的文件 file_nameos.path.split(file_path)[-1] list_all.append(file_name) print(list_all)如果…