23种CSS垂直居中技巧

yizhihongxing

关于“23种CSS垂直居中技巧”的攻略,我会从以下三个部分进行详细讲解:

  1. 概述:介绍为什么需要垂直居中、垂直居中的相关概念、难点和解决方案。

  2. 解决方案:梳理23种CSS垂直居中技巧,并对它们进行详细讲解。

  3. 示例说明:通过两条具体的示例,让你更好地理解如何应用这些CSS垂直居中技巧。

进入正题:

一、概述

为什么需要垂直居中?

在Web开发过程中,为了让页面布局更加合理,我们经常需要进行垂直居中操作。比如,当我们需要将按钮或图片居中显示在父容器中,就需要使用垂直居中技巧。

垂直居中的难点在哪里?

CSS中的水平居中非常容易实现,但是垂直居中却常常让人们困惑。因为CSS中的垂直居中涉及到元素高度、行高、文本内容和图片等因素的影响。不同的情况下,需要应用不同的垂直居中技巧以达到所需效果。

垂直居中的解决方案有哪些?

在这篇攻略中,我们整理了23种CSS垂直居中技巧。这些解决方案运用了不同的CSS属性,包括了定位、flexbox、栅格系统、表格布局等技术。我们可以根据具体布局的需求选择合适的垂直居中方法。

二、解决方案

下面,我们来介绍这23种解决方案。需要特别注意的是,这些技巧并不是互相独立的,有些可以组合起来一起使用。

1、使用line-height进行单行文本垂直居中

.parent {
  height: 100px;
  line-height: 100px;
}

2、使用padding进行单行文本垂直居中

.parent {
  height: 100px;
  padding: 30px 0;
  box-sizing: border-box;
}

3、使用absolute+margin实现多行文本垂直居中

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  margin-top: -[高度的一半];
}

4、使用absolute+transform实现多行文本垂直居中

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

5、使用flexbox实现垂直居中

.parent {
  display: flex;
  align-items: center;
}

6、使用多重flexbox实现文本垂直居中

.parent {
  display: flex;
  align-items: center;
  justify-content: center;
}
.child {
  align-self: center;
}

7、使用CSS Grid实现垂直居中

.parent {
  display: grid;
  align-items: center;
}

8、使用table元素实现垂直居中

.parent {
  display: table;
}
.child {
  display: table-cell;
  vertical-align: middle;
}

9、使用table元素+margin实现垂直居中

.parent {
  display: table;
}
.child {
  display: table-cell;
  vertical-align: middle;
  margin: auto;
}

10、使用table元素+position实现垂直居中

.parent {
  display: table;
  position: relative;
}
.child {
  display: table-cell;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

11、使用absolute实现不定宽块状元素的垂直居中

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
}

12、使用CSS Grid实现两栏布局,并居中其中一栏

.parent {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.child {
  justify-self: center;
}

13、使用absolute+margin实现图片垂直居中

.parent {
  position: relative;
}
img {
  position: absolute;
  top: 50%;
  margin-top: -[图片高度的一半];
}

14、使用table元素实现多行元素垂直居中

.parent {
  display: table;
}
.child {
  display: table-cell;
  vertical-align: middle;
}

15、使用fonsize和height实现需要居中的文本垂直居中

.parent {
  height: 100px;
  font-size: 100px;
  line-height: 1;
}

16、使用margin:auto实现flexbox的成员居中

.parent {
  display: flex;
}
.child {
  margin: auto;
}

17、使用absolute+margin:auto实现flexbox的成员垂直、水平居中

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

18、使用flexbox+min-height实现比父容器小的元素垂直居中

.parent {
  display: flex;
  align-items: center;
  min-height: 100px;
}
.child {
  margin: auto;
}

19、使用absolute实现比父容器小的元素垂直居中

.parent {
  position: relative;
  height: 300px;
}
.child {
  position: absolute;
  bottom: 0;
  top: 0;
  margin: auto;
}

20、使用inline-block实现垂直居中

.parent {
  font-size: 0;
  text-align: center;
  height: 300px;
}
.child {
  display: inline-block;
  vertical-align: middle;
}

21、使用table实现垂直居中

.parent {
  display: table;
  height: 300px;
}
.child {
  display: table-cell;
  vertical-align: middle;
}

22、使用margin:auto实现的二等边三角形垂直居中

#triangle {
  width: 0;
  height: 0;
  border-top: 50px solid #f00;
  border-left: 25px solid transparent;
  border-right: 25px solid transparent;
  margin: auto;
}

23、使用absolute和table实现HTML5 video居中

.parent {
  position: relative;
}
video {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: table;
}
source {
  display: table-cell;
  vertical-align: middle;
}

三、示例说明

下面我们以文字垂直居中为例,为你演示如何使用这些技巧进行垂直居中的操作。

示例1:

HTML部分:

<div class="parent">
  <div class="child">
    <h3>Hello World</h3>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada tristique libero vitae rhoncus.</p>
  </div>
</div>

CSS部分:

.parent {
  height: 400px;
  background-color: #f6f6f6;
}
.child {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 80%;
  margin: 0 auto;
  text-align: center;
}

这里我们使用的是 absolute + transform 技巧。

示例2:

HTML部分:

<div class="parent">
  <div class="child">
    <h3>Hello World</h3>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada tristique libero vitae rhoncus.</p>
  </div>
</div>

CSS部分:

.parent {
  height: 400px;
  background-color: #f6f6f6;
  display: flex;
  justify-content: center;
  align-items: center;
}
.child {
  width: 80%;
  text-align: center
}

这里我们使用的是 flexbox 技巧。

通过这两个示例,我们可以发现,当我们需要垂直居中时,需要根据具体情况选择不同的技巧。例如对于多行文本垂直居中,我们可以使用 absolute + marginabsolute + transform 技巧。对于单行文本垂直居中,则可以使用 line-heightpadding 技巧。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:23种CSS垂直居中技巧 - Python技术站

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

相关文章

  • 纯css实现背景图片半透明内容不透明的方法

    下面是一份关于“纯css实现背景图片半透明内容不透明的方法”的攻略。 什么是背景图片半透明内容不透明的效果 这种效果指的是,在一个元素的背景图片是半透明状态时,元素内部的内容又是不透明状态。这种效果经常用于制作大图背景,同时又需要让内容不受图片透明度影响时非常实用。下面就是一些实现这种效果的方式。 方式一:使用伪类元素 这种方式的实现思路是在元素之中插入一个…

    css 2023年6月9日
    00
  • jQuery原理系列-常用Dom操作详解

    jQuery原理系列-常用Dom操作详解 1. jQuery是什么 jQuery是一种JavaScript库,它使编写JavaScript变得更容易。jQuery使在HTML文档中处理文档元素,处理事件以及应用Ajax技术变得更加容易。 2. jQuery的基础(语法与选择器) jQuery的基础语法: $(selector).action() $表示对jq…

    css 2023年6月10日
    00
  • CSS 动画实现动态气泡背景的方法

    下面是讲解“CSS 动画实现动态气泡背景的方法”的完整攻略: 设计思路 要实现动态气泡背景,我们需要首先创建一系列气泡形状的元素,并用 CSS 中的动画效果让它们在页面中移动、缩放或旋转。具体来说,可采用以下步骤实现: 创建一系列用 div 元素表示的气泡形状。对于每个气泡,需要设置其颜色、大小、位置等相关属性,可以通过定义 CSS 类来控制。 创建 @ke…

    css 2023年6月9日
    00
  • 最基本的几种CSS文字滤镜效果

    最基本的几种CSS文字滤镜效果攻略 CSS(层叠样式表)可以通过其文字滤镜效果来使网页更加美观,增强用户体验效果。以下是最基本且常用的几种CSS文字滤镜效果,我们将分步骤详细讲解它们的实现过程。 1. 文字阴影 文字阴影可以让文字看起来更加立体,效果更加突出。如下是实现文字阴影的示例代码: /* 添加黑色文字阴影 */ text-shadow: 1px 1p…

    css 2023年6月9日
    00
  • Django前端BootCSS实现分页的方法

    下面我将为大家讲解如何使用Django和Bootstrap实现分页: 1. 引入Bootstrap 首先,我们需要在Django项目中引入Bootstrap框架。在base.html文件(或者其他你想要放置的文件)中添加以下代码: <!– 引入Bootstrap –> <link rel="stylesheet" h…

    css 2023年6月10日
    00
  • 前端面试题及答案整理(二)

    “前端面试题及答案整理(二)”是一篇介绍常见前端面试题的文章,涵盖了HTML、CSS、JavaScript等多个方面的知识点。下面是题目和答案整理的攻略: 标题 文章的标题应该简洁明了,并包含主要内容,以吸引读者的注意。 示例 前端面试题及答案整理(二) – HTML、CSS、JavaScript面试题 目录 为方便读者快速了解文章内容,应该包含详细的目录,…

    css 2023年6月9日
    00
  • bootstrap响应式表格实例详解

    Bootstrap响应式表格实例详解 Bootstrap是一个流行的前端开发框架,可以快速地开发出响应式的网站。其中一个功能是响应式表格,可以根据不同的屏幕尺寸自动调整表格的显示方式。本文将详细讲解如何使用Bootstrap创建响应式表格。 准备工作 首先需引入Bootstrap框架的CSS和JS文件。如下: <!– 引入Bootstrap的CSS文…

    css 2023年6月10日
    00
  • HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影

    这个话题比较复杂,需要细致的讲解,下面为您详细讲解“HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影”的完整攻略。 一、瀑布流布局 瀑布流布局的关键在于如何优化瀑布流项的位置,使得页面整体布局效果更佳。以下是基于html5和CSS实现的瀑布流布局的示例代码,我们可以通过修改CSS代码,改变展示的效果。 <!DOCTYPE html> &l…

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