div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)

Div垂直居中是我们在页面布局和设计中经常会遇到的问题,特别是在排版参差不齐的情况下,垂直居中能够使网页更加美观。本文将会分享几种实现DIV垂直居中的方法,针对不同的场景进行讲解。

一、单行文字(未知高度)

对于单行文字的垂直居中,最常见的一种方式是使用textAlign和lineHeight属性。具体实现代码如下:

<div class="vertical-center">
  <p>这是一行文字</p>
</div>
.vertical-center {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px; /* 高度自定义 */
}

.vertical-center p {
  text-align: center;
  line-height: 300px; /* 与高度一致 */
}

上述代码中,我们使用Flex布局,使用justify-content和align-items属性来使其水平和垂直居中,然后通过p标签的textAlign和lineHeight属性实现单行文字的居中。

二、多行文字(未知/固定高度)

对于多行文字垂直居中,我们可以使用CSS的transform属性与Flex布局相结合的方式进行实现。比如,我们可以用以下方式:

<div class="vertical-center2">
  <p>这里有多行文字,这里有多行文字,这里有多行文字,这里有多行文字</p>
</div>
.vertical-center2 {
  height: 300px; /* 高度自定义 */
  display: flex;
  align-items: center;
}

.vertical-center2 p {
  margin: 0;
  padding: 0;
  display: inline-block;
  transform: translateY(-50%);
}

上述代码中,我们使用了 translateY() 负值来使p标签相对于父元素居中,p标签设为 display: inline-block; 的目的是为了防止块状元素换行,在 Flex 容器中使用的话会导致子元素因为换行或者空格而产生间隙,从而导致居中出现偏差。

对于多行文字的高度未知的情况,我们可以使用CSS3的transform和webkit-transform、Flex布局相结合的方式进行垂直居中。具体实现代码如下:

<div class="vertical-center3">
  <p>这里有多行文字,这里有多行文字,这里有多行文字,这里有多行文字</p>
</div>
.vertical-center3 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px; /* 高度自定义 */
  position: relative;
}

.vertical-center3:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.vertical-center3 p {
  display: inline-block;
  vertical-align: middle;
  transform: translate(0, -50%);
  position: relative;
  top: 50%;
}

我们首先定义外部容器的样式为 Flex 布局、高度自定义。然后定义一个 :before 的伪元素,给其高度写成100%,使其不占据区域。然后再使其垂直对齐方式为垂直居中(vertical-align: middle;)。p 标签设为 display: inline-block; 和上述一样,防止块状元素换行,并将其垂直对齐方式同样设置为垂直居中(vertical-align: middle;),再使用 translate(-50%, -50%) 将其内容完全垂直居中。最后,使用 position: relative; top: 50%; 微调一下即可完美实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:div垂直居中的N种方法 单行/多行文字(未知高度/固定高度) - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • windows python3安装Jupyter Notebooks教程

    一、安装Python3 如果您还未安装Python3,请在官网上下载并安装Python3的最新版本:https://www.python.org/downloads/ 二、安装Jupyter Notebook 打开Windows命令提示符或者Windows PowerShell,输入以下命令: pip3 install jupyter 等待安装完成即可。 三…

    other 2023年6月27日
    00
  • 基于Android中获取资源的id和url方法总结

    基于Android中获取资源的id和url方法总结 在Android开发中,我们经常需要获取资源的id和url。下面是一些获取资源id和url的方法总结。 获取资源id 1. 通过资源名称获取id 可以使用getIdentifier()方法通过资源名称获取资源的id。该方法接受三个参数:资源名称、资源类型和应用程序的包名。 int resourceId = …

    other 2023年9月6日
    00
  • 高手教你优化内存设置

    高手教你优化内存设置攻略 优化内存设置可以提高计算机的性能和响应速度。下面是一个详细的攻略,帮助你优化内存设置。 步骤一:了解内存设置 首先,你需要了解一些关于内存设置的基本知识。内存设置涉及到操作系统和应用程序的配置,以及如何分配和管理计算机的内存资源。 步骤二:检查内存使用情况 在优化内存设置之前,你需要了解当前计算机的内存使用情况。可以通过任务管理器或…

    other 2023年8月1日
    00
  • 怎么安装nslookup

    nslookup是一种用于查询DNS记录的命令行工具。如果您需要使用nslookup,可以按照以下步骤进行安装。以下是如何安装nslookup的完整攻略,包含两个示例说明。 步骤一:打开终端 在Windows上,打开命令提示符。在macOS或Linux上,打开终端。 步骤二:安装nslookup 在Windows上,nslookup是默认安装的。在macOS…

    other 2023年5月9日
    00
  • 你都理解创建线程池的参数吗?

    当创建线程池时,有几个参数需要理解。下面是对每个参数的详细解释: 核心线程数(Core Pool Size):这是线程池中保持活动状态的线程数量。即使线程处于空闲状态,它们也会一直存在,除非线程池被关闭。如果提交的任务数少于核心线程数,线程池将创建新线程来处理任务。示例代码如下: ThreadPoolExecutor executor = new Threa…

    other 2023年8月6日
    00
  • 全网最全的华为数通认证考试思维导图(二)

    华为数通认证考试是非常重要的行业认证考试之一,需要一定的准备和复习才能获得成功。作者制作了“全网最全的华为数通认证考试思维导图(二)”来帮助考生更好地备考和复习。下面是详细的攻略: 一、认真理解思维导图内容 首先,需要认真学习和理解思维导图内容。思维导图分为三个层级,分别是基础、增强和深入,涵盖了数通所有的重要知识点。需要认真阅读每一个知识点的详细内容,理解…

    other 2023年6月28日
    00
  • 苹果操作系统详解

    苹果操作系统详解 苹果操作系统是苹果公司开发的、运行于苹果电脑上的操作系统,主要包括macOS和iOS两个版本。macOS是苹果电脑上的操作系统,而iOS则是苹果公司的移动设备操作系统。 macOS操作系统 系统架构 macOS的核心是基于UNIX的Darwin内核。Darwin内核是开源的,因此开发者可以获得内核源代码、自主开发定制版内核。macOS还包括…

    其他 2023年4月16日
    00
  • C++四种cast使用详细介绍

    C++四种cast使用详细介绍 在C++中,我们常常需要进行类型转换。而其中一种方式就是使用C++中的cast,本文将详细介绍C++中的四种cast。 C++中的四种cast C++中一共有四种cast,分别是static_cast、dynamic_cast、reinterpret_cast和const_cast。 static_cast static_ca…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部