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

yizhihongxing

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日

相关文章

  • linux系统下的df命令参数详解

    Linux系统下的df命令参数详解攻略 介绍 df(磁盘空间查看器)是一个Linux系统下的命令行工具,用于显示文件系统的可用空间大小。本攻略将详细介绍df命令的参数及其用法。 命令语法 df [选项]… [文件]… 参数解释 以下是df命令常用的选项参数: -a, –all:显示所有文件系统,包括/proc等伪文件系统; -B, –block-…

    other 2023年6月27日
    00
  • C++ 实现高性能HTTP客户端

    C++ 实现高性能HTTP客户端攻略 1. 确定需要使用的库 为了实现一个高性能的HTTP客户端,需要选择一个高效的HTTP库。常用的HTTP库有: libcurl:在性能方面表现极佳,支持多种协议。使用C语言编写,提供了C++接口。 Boost.Beast:使用Boost库实现的HTTP客户端库,基于 Boost.Asio,使用C++编写。性能好,易于使用…

    other 2023年6月25日
    00
  • 64位系统天正打开找不到cad的原因分析及解决方法

    64位系统天正打开找不到CAD的原因分析及解决方法攻略 原因分析 当在64位系统上使用天正软件打开CAD时,可能会遇到找不到CAD的问题。这可能是由以下原因引起的: CAD软件未正确安装:在64位系统上安装CAD软件时,可能会出现错误或不完整的安装过程,导致软件无法正常运行。 系统环境变量配置错误:CAD软件通常需要正确配置系统环境变量才能正常运行。如果环境…

    other 2023年7月28日
    00
  • ios16死机怎么强制重启 ios16强制重启教程

    iOS 16死机怎么强制重启?iOS 16强制重启教程 什么是iOS 16强制重启? iOS 16强制重启是将iPhone设备强制重置到初始状态,这通常发生在设备因某些原因而无法响应或冻结时,也称为硬重置、强制重启或强制重启。iOS 16强制重启可以解决一些常见的问题,例如应用程序崩溃、响应速度过慢、Wi-Fi问题等等。 iOS 16如何强制重启? 在iOS…

    other 2023年6月26日
    00
  • Python读取配置文件(config.ini)以及写入配置文件

    下面是Python读取配置文件(config.ini)以及写入配置文件的完整攻略。 读取配置文件 步骤一:安装ConfigParser模块 在Python 3.x中,ConfigParser已经被重命名为configparser。如果你想使用ConfigParser,请在代码中引入configparser而不是ConfigParser。安装ConfigPar…

    other 2023年6月25日
    00
  • 谈一谈html表单标签有什么

    以下是关于“HTML表单标签”的完整攻略,包含两个示例。 HTML表单标签 HTML表单标签用于创建交互式表单,允许用户向Web服务器提交数据。以下是一些常用的HTML表单标签及其用途的详细攻略。 1. \ 标签 \ 标签用于创建HTML表单。它包含一个或多个表单元素,例如输入字段、复选框、单选按钮、下拉列表等。以下是一个示例: <form actio…

    other 2023年5月9日
    00
  • JS从非数组对象转数组的方法小结

    以下是详细讲解“JS从非数组对象转数组的方法小结”的完整攻略。 问题背景 在 JavaScript 开发中,我们常常需要将一个非数组对象转成数组,以便进行遍历、排序等操作。此时,我们可以使用多种方法将非数组对象转成数组。 方法一:Array.from() ES6 提供了 Array.from() 方法,可以将类数组对象或可遍历对象转成真正的数组。该方法的语法…

    other 2023年6月25日
    00
  • Java 包和访问权限操作

    下面是Java包和访问权限操作的完整攻略: 1. Java 包 Java包是为了更好地组织类而创建的一种包含关系,类似于文件夹。它可以将具有相同功能的类组织在一起,方便类的查找、使用和维护。 1.1 包定义 包定义使用关键字 package,定义格式如下: package 包名; 其中,包名由多个单词组成,中间使用.间隔,如: package com.exa…

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