css 实现 html 元素内文字水平垂直居中的N种方法

news2024/11/23 20:31:02

        上一篇博文写了div 中元素居中的N种常用方法,那么单个html元素:div(块级元素代表),span(行内元素代表)中的文字如何水平垂直都居中呢?实现方法如下:

        本文例子使用的 html body结构下的模型如下:

<body>
	<div class="container">
		文字居中显示
	</div>
</body>

        例子居中效果都如下图:

注:当把div 换成其他块级元素,如<p>或<h1>~<h6>时,以下方法仍然奏效。但当把div换成行内元素,如<span>时,第4种方法将失效。 

       1、弹性布局 设置容器项目在横轴和纵轴上都居中对齐

    <style>
			.container{
				height: 200px;
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				display: flex;
				justify-content: center;
				align-items: center;
			}
	</style>

        

        2、使用 table-cell 显示        

                使用 table-cell 可以实现 div 中文字的垂直居中,然后在使用text-align: center可实现水平居中

    <style>
			.container{
				height: 200px;
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				display: table-cell;
				vertical-align: middle;
                text-align: center;
			}	
	</style>

         3、使用 Grid 布局

                display: grid + place-items: center

    <style>
			.container{
				height: 200px;
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				display: grid;
				place-items: center;
			}	
	</style>

          4、使用 line-height

                设置line-height的值和为div的height值,实现垂直居中,使用text-align实现水平居中。该方法只能使用于单行文本,如文本超过单行,文字将会溢出。且该方法不适用于span等行内元素

    <style>
			.container{
				height: 200px;
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				text-align: center;
				line-height: 200px;
			}	
	</style>

                当多行文字时,如下:

<body>
	<div class="container">
		文字居中显示文字居中显示文字居中显示
	</div>
</body>

        当用该方法用于span等行内元素时:为span设置的宽高将失效,因为默认情况下,行内元素无法设置宽度和高度,其宽度和高度都是由它们所包含的内容决定的。有关html块级元素、行内元素、行内块级元素的说明请看该篇博文:HTML 块级元素、行内元素和行内块级元素

<body>
	<span class="container">
		文字居中显示
	</span>
</body>

        要想让span等行内元素也实现div的效果,使用display:block 或 display:inline-block 即可

    <style>
			.container{
				height: 200px;
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				display: block;            /* 把span显示变成块级元素 */
				text-align: center;
				line-height: 200px;
			}	
	</style>

        5、使用 text-align: center + padding   

               使用 text-align: center 可使文字水平居中,当没有固定高度时,使用 padding-top 和 padding-bottom 相同高度即可实现垂直居中。当要求固定高度时,先看文字的高度,然后再计算出  padding-top 和 padding-bottom 相同的高度也能实现垂直居中

    <style>
			/* 不限定高度时,container 不设置 height 属性值
                使用 text-align: center + 
				padding-top、padding-bottom 相同高度
			 */
			.container{
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				text-align: center;
				padding-top:50px;
				padding-bottom:50px;
			}
	</style>

 

    <style>
			/* 限定高度时(如div总高度限定 200px),container 不设置 height 属性值
				使用 text-align: center + 
				padding-top、padding-bottom 
				要根据div高度减去文字高度再平分剩余的高度
				假如文字高度占20px,那么padding-top、padding-bottom 都是90px
			 */
			.container{
				width: 200px;
				border: 1px solid black;
				background-color: aliceblue;
				text-align: center;
				padding-top:90px;
				padding-bottom:90px;
			}
	</style>

 

  •  组合上篇 div找那个元素居中和本篇html元素居中的方法综合实现子div在父div中居中显示并且子div中的文字居中

    <head>
		<meta charset="utf-8" />
		<title></title>
		
		<style>
			.container{
				height: 300px;
				width: 300px;
				border: 1px solid black;
				background-color: aliceblue;
				display: flex;
				justify-content: center;
				align-items: center;
			}
		
			.box{
				width: 150px;
				height: 150px;
				background: #55a9ff;
				display: flex;
				justify-content: center;
				align-items: center;
			}
		</style>
		
	</head>
	<body>
		<div class="container">
			<div class="box">
				文字居中显示
			</div>
		</div>
	</body>

        注:box 中可使用上述第1,第3,第4,第5种方法实现组合文字居中,第2种display: table-cell讲失效 

以上方法如有错误请各位不吝指教,如以后有别的方法将会往下继续添加,各位有其他方法可留言告知。

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

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

相关文章

机器学习实战5-KMeans聚类算法

文章目录 概述KMeansKMeans参数&接口n_clusters质心inertia模型评估指标轮廓系数Calinski-Harabaz Index 重要参数init & random_state & n_init&#xff1a;初始质心怎么放好?重要参数max_iter & tol&#xff1a;让迭代停下来重要属性与重要接口 概述 聚类 …

微信公众号开发基础

开发文档 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 一、接入微信公众平台开发 开发者需要按照如下步骤完成&#xff1a; 1.1 填写服务器配置 1.2 验证服务器地址的有效性 开发者提交信息后&#xff0c;微信服务器将发…

【编织时空一:探究顺序表与链表的数据之旅】

本章重点 线性表 顺序表 顺序表OJ题 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结…

Linux命令 -- vim

Linux命令 -- vim 前言一般模式光标移动复制粘贴内容查找 底线命令行模式 前言 用vim指令进入文件。 刚进入时是命令行模式&#xff0c;也叫一般模式。 按i或者insert进入编辑模式&#xff0c;此时可以编辑文件内容。 按esc可从编辑模式退回到一般模式&#xff0c;输入冒号进…

[C++ 网络协议编程] TCP/IP协议

目录 1. TCP/IP协议栈 2. TCP原理 2.1 TCP套接字中的I/O缓冲 2.2 TCP工作原理 2.2.1 三次握手&#xff08;连接&#xff09; 2.2.2 与对方主机的数据交换 2.2.3 四次握手&#xff08;断开与套接字的连接&#xff09; TCP&#xff08;Transmission Control Protocol传输控…

【Apollo】阿波罗自动驾驶:塑造自动驾驶技术的未来

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…

前后端分离------后端创建笔记(03)前后端对接(上)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论&#xff0c;如有侵权请联系 源码&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

Reinforcement Learning with Code【Code 6. Advantage Actor-Critic(A2C)】

Reinforcement Learning with Code【Code 6. Advantage Actor-Critic&#xff08;A2C&#xff09;】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiy…

你不得不懂的IT知识-《敏捷项目管理》

国林哥在IBM时&#xff0c;几乎每天都会收到关于“敏捷”相关的邮件&#xff0c;公司鼓励我们去学习邮件里的知识&#xff0c;参加敏捷相关的认证和培训。刚开始我和大多数同事一样不管不顾&#xff0c;后来随着PBC里要求加上成长目标&#xff0c;比如要获得一个认证&#xff0…

为什么要试用CRM系统?有什么优点?

对于那些正在进行CRM选型的企业来说&#xff0c;想要了解一款CRM系统是否好用&#xff0c;亲自试用无疑是最好的方法。那么&#xff0c;有没有可以免费试用的在线CRM系统 CRM系统免费试用的好处 体验产品功能&#xff1a;您可以亲自操作和测试CRM系统的各项功能&#xff0c;如…

从一个GPU到多个GPU

在多GPU运行应用程序时&#xff0c;需要正确设计GPU之间的通信&#xff0c;GPU间数据传输的效率取决于GPU是如何连接在一个节点上并跨集群的 在多GPU系统里有两种连接方式 多GPU通过单个节点连接到PCIe总线上 多GPU连接到集群中的网络交换机上 /* * 本示例演示了如何使用 Open…

【Vue-Router】路由模式

1. WebHashHistory index.ts import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory } from "vue-router";// 路由模式 //vue2 mode history -> vue3 createWebHistory //vue2 mode hash -> vue3 createWebHashHistory //vue2 m…

电池的正极是带正电?

首先说明结论&#xff1a;电池正极带正电&#xff0c;负极带负电。 一个错误的实例&#xff1a; 如果说电流是从电池正极流动到电池负极&#xff0c;那么电子就是从负极流动到正极&#xff0c;那么正极就是带负电。----这个说法是错误的。这是因为&#xff0c;根据那么很出名…

verilog学习笔记5——进制和码制、原码/反码/补码

文章目录 前言一、进制转换1、十进制转二进制2、二进制转十进制3、二进制乘除法 二、原码、反码、补码1、由补码计算十进制数2、计算某个负数的补码 前言 2023.8.13 天气晴 一、进制转换 1、十进制转二进制 整数&#xff1a;除以2&#xff0c;余数倒着写 小数&#xff1a;乘…

难解的bug

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord 【Android TimeCat】 解决 context.startforegroundservice() did not then call service.startforeground() | XiChens Blog http://www…

【Linux从入门到精通】文件I/O操作(C语言vs系统调用)

文章目录 一、C语言的文件IO相关函数操作 1、1 fopen与fclose 1、2 fwrite 1、3 fprintf与fscanf 1、4 fgets与fputs 二、系统调用相关接口 2、1 open与close 2、2 write和read 三、简易模拟实现cat指令 四、总结 &#x1f64b;‍♂️ 作者&#xff1a;Ggggggtm &#x1f64b;‍…

JAVA多线程和并发基础面试问答(翻译)

JAVA多线程和并发基础面试问答(翻译) java多线程面试问题 1. 进程和线程之间有什么不同&#xff1f; 一个进程是一个独立(self contained)的运行环境&#xff0c;它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序…

Shell编程之条件测试、if语句、case语句

条件语句 一、条件测试1.1 测试命令1.1 文件测试1.2 整数比较1.3 字符串比较1.4 逻辑测试1.4.1 逻辑与 &&1.4.2 逻辑或 || 1.4.3 组合应用1.5 多个命令组合执行 ( ) { } 二、if语句2.1单分支结构2.2 多分支结构2.4 if语句练习2.4.1 单分支2.4.2 简单的交互式分数反馈 三…

Shell编程之正则表达式(非常详细)

正则表达式 1.通配符和正则表达式的区别2.基本正则表达式2.1 元字符 &#xff08;字符匹配)2.2 表示匹配次数2.4 位置锚定2.5 分组 和 或者 3.扩展正则表达式4.部分文本处理工具4.1 tr 命令4.2 cut命令4.3 sort命令4.4 uniq命令 1.通配符和正则表达式的区别 通配符一般用于文件…

部署Springboot项目注意事项

步骤 步骤 1&#xff1a;将数据库内容在云服务器上的数据库部署一份 我使用mariadb&#xff1b;会出现一些不兼容现象&#xff1b;我们需要把默认值删掉 2&#xff1a;配置文件你得修改地方 a&#xff1a;linux是磁盘区分(像我自己项目用来储存验证码的文件我们得换这个配置;…