CSS 快速实现水平垂直居中

news2024/11/17 1:56:59

CSS 快速实现水平垂直居中.png

CSS 快速实现水平垂直居中

文章目录

  • CSS 快速实现水平垂直居中
    • 一、前言
    • 二、弹性布局普遍做法
    • 三、弹性布局的妙用
    • 参考资料💘
    • 推荐博文🍗


一、前言

本文探究的是如何快速实现水平垂直居中,重点在于快速两个字,我对于快速的理解,一是不需要编写大量的 CSS 属性,二是不需要手动计算居中的具体位置数值,基于这两个前提下,使用像 line-height 和定位布局这种方式是不被允许的,那还剩下什么选择呢?答案就是使用弹性布局。


二、弹性布局普遍做法

对于有前端基础的朋友来讲,这个方法实在是太普遍了,无非就是基于 justify-contentalign-self 属性实现的,也没啥内容好提的。

<div class="flex-wrap">
  <div class="flex-content"></div>
</div>

<style>
	.flex-wrap {
      /* 核心内容 */
      display: flex;
      justify-content: center;
      align-items: center;
      /* 无关紧要的 */
      width: 100vw;
      height: 100vh;
    }
    .flex-content {
      /* 无关紧要的 */
      width: 100px;
      height: 100px;
      background-color: orange;
    }
</style>

图 2-1


三、弹性布局的妙用

如果只是讲大多数人都会使用的弹性布局居中属性,那也太没意思了,在此讲解一个大多数都不知道的方法,相较于普通做法而言,只需要两个CSS属性即可实现。
该实现基于 FFC(Flex Formatting Contexts)、GFC(GridLayout Formatting Contexts) 上下文布局。
在WSC规范文档中弹性盒子部分,有这么一句描述:Prior to alignment via justify-content and align-self, any positive free space is distributed to auto margins in that dimension,翻译一下的意思是:任何正的剩余空间将会在 justify-contentalign-self 属性之前被分配到该维度的自动边距中,这意味这 margin: auto 属性不仅仅作用于水平方向,甚至可以作用于垂直方向上!
图 3-1

  <div class="flex-wrap">
    <div class="flex-content"></div>
  </div>

<style>
  .flex-wrap {
    /* 核心内容 */
    display: flex;
    /* 无关紧要的 */
    width: 100vw;
    height: 100vh;
  }
  .flex-content {
    /* 核心内容 */
    margin: auto;
    /* 无关紧要的 */
    width: 100px;
    height: 100px;
    background-color: pink;
  }
</style>

图 3-2

看着很牛很方便,但是在使用得当的前提下进行,此方法还是有一定的缺陷,但影响很小:

  • 使用此方法的前提是,需要明确是否为父子元素布局,父元素与子元素都要各自设置一个属性,对于非固定的子元素,我的建议是还是在父元素上使用传统的justify-contentalign-self 属性。
  • 值得一提的是,margin: auto 是在justify-contentalign-self 属性之前实现的,既然剩余空间都被分配完了,无可避免会造成这两个属性的失效,那目标就很明确了,确定只是水平垂直方向居中的话,从这两个方法中选一个,两者不能同时存在。

参考资料💘

🍅因发布平台差异导致阅读体验不同,源文贴出:《CSS 快速实现水平垂直居中》

  • 官方手册:
    • W3C规范文档

推荐博文🍗

  • 『速查手册』HTML 语义化标签 | 语义化标签必要性?
  • 『速查手册』MIME 多用途互联网邮件扩展

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

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

相关文章

智慧公厕:细致入微的城市贴心服务与便捷方便的生活配套

在现代城市生活中&#xff0c;公厕作为重要的城市基础设施&#xff0c;一直是城市发展的关键环节之一。然而&#xff0c;传统的公厕常常存在着设施陈旧、管理不善和卫生状况差等问题&#xff0c;给市民的生活品质和城市形象带来了一定的影响。为了提供更好的城市公厕服务&#…

Pillow(PIL)库的主要方法介绍

Pillow&#xff08;Python Imaging Library&#xff09;是Python中一个强大的图像处理库&#xff0c;它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL&#xff08;Python Imaging Library&#xff09;的分支&#xff0c;支持多种图像格式&#xff0c;并提…

VLOOKUP函数的使用方法

VLOOKUP是一个查找函数&#xff0c;给定一个查找的目标&#xff0c;它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为&#xff1a; VLOOKUP&#xff08;查找目标&#xff0c;查找范围&#xff0c;返回值的列数&#xff0c;精确OR模糊查找)下面以一个实例来介绍…

Spring Cloud之微服务

目录 微服务 微服务架构 微服务架构与单体架构 特点 框架 总结 SpringCloud 常用组件 与SpringBoot关系 版本 微服务 微服务&#xff1a;从字面上理解即&#xff1a;微小的服务&#xff1b; 微小&#xff1a;微服务体积小&#xff0c;复杂度低&#xff0c;一个微服…

SpringBoot整合XXL-JOB详解

❤️作者简介&#xff1a;2022新星计划第三季云原生与云计算赛道Top5&#x1f3c5;、华为云享专家&#x1f3c5;、云原生领域潜力新星&#x1f3c5; &#x1f49b;博客首页&#xff1a;C站个人主页&#x1f31e; &#x1f497;作者目的&#xff1a;如有错误请指正&#xff0c;将…

【ESP8266】:基于ESP8266的LED时钟

项目场景&#xff1a; 在嘉立创看到一个好看的LED时钟&#xff0c;自己复刻一个。 项目效果&#xff1a; 视频效果&#xff1a; ESP8266LED时钟 项目介绍&#xff1a; 随着物联网的快速发展&#xff0c;嵌入式系统成为了现代生活中不可或缺的一部分。本论文基于ESP8266开发板&a…

配置VUE环境过程中 npm报错的处理方案以及VUE环境搭建过程

背景&#xff1a;VUE已经出来很久了&#xff0c;一直想研究这个东西也很久了。由于各种各样的原因&#xff0c;一直没有能处理。最近终于有时间可以研究了。 奈何报错了 嘤嘤嘤~~ 针对报错情况&#xff0c;其实后来没有找到什么好的方案&#xff0c;几经周折&#xff0c;终于搭…

vscode不显示横滚动条处理

最近发现vscode打开本地文件不显示水平的滚动条&#xff0c;但是打开一个临时文件是有水平滚动条的。 解决方案 可以一个个试 vscode配置 左下角设置–设置–搜索Scrollbar: Horizontal auto 自动visible 一直展示hidden 一直隐藏 拖动底部状态栏 发现是有的&#xff0c;但是…

Lua与C++交互

文章目录 1、Lua和C交互2、基础练习2.1、加载Lua脚本并传递参数2.2、加载脚本到stable&#xff08;包&#xff09;2.3、Lua调用c语言接口2.4、Lua实现面向对象2.5、向脚本中注册c的类 1、Lua和C交互 1、lua和c交互机制是基于一个虚拟栈&#xff0c;C和lua之间的所有数据交互都通…

深入探究Selenium定位技巧及最佳实践

在使用Selenium进行Web自动化测试时&#xff0c;准确地定位元素是非常重要的一步。Selenium提供了多种元素定位方法&#xff0c;本文将深入探究这八大元素定位方法&#xff0c;帮助读者更好地理解和应用Selenium的定位技巧。 1. ID定位 ID是元素在HTML中的唯一标识符&#xff…

GitHub commit时出现 无法访问443 Operation timed out的解决办法

GitHub commit时出现 无法访问443 Operation timed out的解决办法 1.问题描述2. 环境3.解决方法4.如果上述方法不行&#xff0c;那就再试一试下面这个方法4.1 首先确认自己的网页可以打开github4.2 按照如下配置http和https代理4.2.1 找端口号 5. 参考链接 1.问题描述 当使用g…

STM32 PWM配置及呼吸灯

PWM的英文全称是"Pulse Width Modulation"&#xff0c;中文翻译为"脉冲宽度调制"。 在PWM中可以调节的其实只有两个东西&#xff0c;一个叫做可调周期&#xff08;调频率&#xff09;&#xff0c;另一个叫做占空比&#xff08;高电平/周期&#xff09;。 而…

一文说说自定义注解实现校验

自定义注解部分 /*** author 舒一笑* version 1.0.0* ClassName OvertimePlaceConver.java* Description 加班地址转化* createTime 2023年10月24日 22:22:00*/ Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy OvertimePlaceConvertV…

新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP

新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP 一、简介 SV-2800VP系列模块是我司设计研发的一款用于井下的矿用IP音频传输模块&#xff0c;可用此模块打造一套低延迟、高效率、高灵活和多扩展的IP矿用广播对讲系统&#xff0c;亦可对传统煤…

易基因: Nature Biotech:番茄细菌性青枯病的噬菌体联合治疗|国人佳作

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 生物防治是利用细菌接种剂来改变植物根际微生物群落的组成&#xff0c;但在以往研究中存在有接种的细菌在根际建立不良&#xff0c;与本地微生物组争夺资源&#xff0c;干扰本地微生物的…

程桌面管理软件Apple Remote Desktop mac中文介绍说明

Apple Remote Desktop mac是一款远程桌面管理软件。它可以让用户通过局域网或互联网连接到其他远程计算机&#xff0c;并实时监控和管理这些计算机。 使用Apple Remote Desktop&#xff0c;用户可以轻松远程操作和控制其他计算机的桌面。用户可以在远程计算机上查看、操控和键入…

vueDay03——可灵活变动的class样式

一、需求背景 有时候我们需要对不同身份的用户在同一个组件上展示不同的样式&#xff08;界面这里暂且不谈&#xff09;&#xff0c;我们就需要控制该组件在不同的数据下呈现不同的样式 这时候我们就可以使用:class属性来动态调整样式 二、将class与style绑定 我们可以这样…

Unity中从3D模型资产中批量提取材质

如何使用 只需在“项目”窗口中创建一个名为“编辑器”的文件夹&#xff0c;然后在其中添加此脚本即可。然后&#xff0c;打开Window-Batch Extract Materials&#xff0c;配置参数并点击“ Extract&#xff01; ”。 在Unity 2019.1上&#xff0c;可以将默认材质重映射条件配…

SpringBoot 分布式验证码登录方案

前言 为了防止验证系统被暴力破解&#xff0c;很多系统都增加了验证码效验&#xff0c;比较常见的就是图片二维码&#xff0c;业内比较安全的是短信验证码&#xff0c;当然还有一些拼图验证码&#xff0c;加入人工智能的二维码等等&#xff0c;我们今天的主题就是前后端分离的…

【C++】STL容器——【深浅拷贝】与【写时拷贝】对比详解(拷贝构造)(10)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 目录 一.深浅拷贝浅拷贝&#xff1a;深拷贝&#xff1a; 二.写时拷贝 一.深浅拷贝 (默认拷贝构造运用 引用 防止死递归的后遗症&#…