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日

相关文章

  • 解析php类的注册与自动加载

    解析PHP类的注册与自动加载是一个非常重要的PHP开发技巧,能够帮助我们更好地管理和组织自己的代码,并提高代码的可维护性。下面是详细的攻略。 注册PHP类 在PHP中注册一个类非常简单,只需要使用PHP的内置函数spl_autoload_register()即可。这个函数可以用来注册一个自定义的自动加载函数,当系统在加载类的时候找不到对应的文件的时候,就会调…

    other 2023年6月25日
    00
  • asm入网小助手卸载

    以下是“asm入网小助手卸载的完整攻略”的详细讲解,过程中包含两个示例说明的标准Markdown格式文本: asm入网小助手卸载的完整攻略 asm入网小助手是一款方便快捷的网络工具,但有时候我们需要卸载它。本文将介绍如何彻底卸asm入网小助手。 1. Windows系统下的卸载 1.1 控制面板卸载 我们可以通过以下步骤在Windows系统下使用控制面板卸载…

    other 2023年5月10日
    00
  • Java中LinkedList真的是查找慢增删快

    Java中的LinkedList是一种基于链表数据结构的集合,相比于ArrayList而言,LinkedList的插入和删除操作时线性的,而查找的过程是需要遍历整个链表的。因此,我们可以说LinkedList在插入和删除的操作上比ArrayList快,但在查找的操作上,却会比ArrayList慢。 以下是详细的攻略: LinkedList数据结构基础 Lin…

    other 2023年6月27日
    00
  • 解析Linux系统中的/proc虚拟文件系统

    解析Linux系统中的/proc虚拟文件系统 什么是/proc虚拟文件系统 /proc是一个虚拟文件系统,意味着它不存储在硬盘上,而是由内核在运行时动态地生成。该文件系统提供了访问内核信息的接口,包括进程、系统信息、硬件设备等。因此,/proc被视为访问Linux操作系统的一个有用的方式,可以通过查看和解析这些虚拟文件来获取关于系统运行情况的详细信息。 如何…

    other 2023年6月27日
    00
  • Android嵌套滚动和协调滚动的多种实现方法

    Android嵌套滚动和协调滚动的多种实现方法攻略 Android提供了多种方法来实现嵌套滚动和协调滚动的功能。嵌套滚动是指在一个滚动容器中,可以包含其他可滚动的子容器,而协调滚动是指在多个滚动容器之间进行同步滚动。下面将详细介绍几种实现方法,并提供两个示例说明。 方法一:使用NestedScrollView和RecyclerView 在布局文件中,使用Ne…

    other 2023年7月28日
    00
  • 处理Shell脚本中带有空格的变量(bash脚本)

    当处理Shell脚本中带有空格的变量时,我们需要注意一些细节。下面是一个完整的攻略,包含了两个示例说明。 示例1:使用双引号引用变量 在Shell脚本中,我们可以使用双引号来引用带有空格的变量。这样可以确保变量的值被当作一个整体来处理。以下是一个示例: #!/bin/bash name=\"John Doe\" echo \"H…

    other 2023年8月16日
    00
  • modelsim安装步骤

    ModelSim安装步骤 ModelSim是一款数字电路仿真和验证工具,广泛应用于FPGA设计和数字电路相关领域。以下是ModelSim安装的详细步骤: 硬件和软件环境要求 操作系统:Windows或Linux 处理器:Intel Core i5或更高版本 内存:4GB或更高版本 硬盘空间:10GB或更高版本 可以在官方网站下载到的ModelSim安装包 M…

    其他 2023年3月28日
    00
  • CSS网页设计中的解决方案

    CSS 网页设计中的解决方案有很多种。下面是一些常用的解决方案及其实现方法。 一、网格布局 网格布局可以让你更好地控制网页上的元素排布,适用于需要对页面进行复杂布局的情况。在 CSS 中,可以通过 display: grid 来实现网格布局。 示例代码: .container { display: grid; grid-template-columns: r…

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