css:两个行内块元素和图片垂直居中对齐

news/2024/11/20 3:37:30/

目录

    • 两个行内块元素垂直居中对齐
    • 图片垂直居中问题
    • 图片和文字垂直居中对齐
    • 参考文章

两个行内块元素垂直居中对齐

先看一段代码:

<style>
.box {width: 200px;height: 200px;line-height: 200px;font-size: 20px;text-align: center;display: inline-block;background-color: green;}
</style><div class="box"></div>
<div class="box">box</div>

显示效果
在这里插入图片描述
发现一个很奇怪的现象:我们本来期待的是两个框对齐,表现却是错位的

原因是:
一个inline-block元素,如果里面没有inline内联元素,或者overflow不是visible,则该元素的基线就是其margin底边缘,否则,其基线就是元素里面最后一行内联元素的基线。

所以第一个框的底部和后一个元素中的文字基线对齐了,

如果两个元素都有文本,则是对齐的

在这里插入图片描述

如果两个元素都没有文本,同样是对齐的
在这里插入图片描述
尝试增加对齐属性

.middle {vertical-align: middle;
}

在第一个元素上增加

<div class="box middle"></div>
<div class="box">box</div>

发现还是没有对齐,还是有一点点错位
在这里插入图片描述
尝试在第二个元素上增加

<div class="box"></div>
<div class="box middle">box</div>

发现并没有居中对齐,有种失效的感觉
在这里插入图片描述
解决办法

让第一个盒子对齐方式改为顶部或底部对齐

.top {vertical-align: top;
}
<div class="box top"></div>
<div class="box">box</div>

表现如下
在这里插入图片描述

图片垂直居中问题

<style>
.box {background-color: green;}
</style><div class="box"><img class="image" src="./mm.jpg" alt="" />
</div>

图片没有居中显示,底部多出了一个间隙

在这里插入图片描述

实现图片垂直居中对齐

方案一:修改图片元素为块级元素

.image {display: block; 
}

方案二:图片元素居中对齐

.image {vertical-align: middle;
}

方案三:父级元素行高改为0

.box {line-height: 0;
}

方案四:父级元素字体大小改为0

.box {font-size: 0;
}

在这里插入图片描述

图片和文字垂直居中对齐

一个很常见的需求,用户头像和用户名并排显示

<style>.box {background-color: green;}.image {border-radius: 50%;width: 30px;height: 30px;object-fit: cover;}.text {background-color: red;color: #fff;}
</style><div class="box"><img class="image" src="./mm.jpg" alt="" /><span class="text">我是一段文字</span>
</div>

可以看到,默认情况下并没有实现垂直居中对齐
在这里插入图片描述

改造如下

<style>.box {background-color: green;}.image {vertical-align: middle;border-radius: 50%;width: 30px;height: 30px;object-fit: cover;}.text {background-color: red;color: #fff;font-size: 12px;vertical-align: middle;}
</style><div class="box"><img class="image" src="./mm.jpg" alt="" /><span class="text">我是一段文字</span>
</div>

实现效果如下
在这里插入图片描述

参考文章

  1. CSS深入理解vertical-align和line-height的基友关系

http://www.ppmy.cn/news/1211539.html

相关文章

Android通信安全之HTTPS

Android通信安全之HTTPS 目录 Android通信安全之HTTPS Https 起因 问题描述 自定义X509TrustManager 自定义HostnameVerifier 修复方案 解决方案一 解决方案2 本文章向大家介绍Android通信安全之HTTPS&#xff0c;主要内容包括Https、起因、问题描述、自定义Hostname…

acwing算法基础之搜索与图论--染色法判断二分图

目录 1 基础知识2 模板3 工程化 1 基础知识 二分图&#xff1a;每条边连接的起点和终点&#xff0c;分别属于集合A和集合B。 一个图是二分图&#xff0c;当且仅当&#xff0c;图中不含奇数环&#xff08;即&#xff0c;回环中的结点数目是奇数&#xff09;。 染色法判定二分…

设计模式——适配器模式(Adapter Pattern)+ Spring相关源码

文章目录 一、适配器模式定义二、例子2.1 菜鸟教程例子2.1.1 定义两个不兼容的播放接口MediaPlayer 、AdvancedMediaPlayer2.1.2 定义AdvancedMediaPlayer两个实现类VlcPlayer 、Mp4Player2.1.3 定义适配器MediaAdapter2.1.4 定义AudioPlayer 并使用MediaAdapter2.1.5 使用 2.2…

@KafkaListener注解详解(一)| 常用参数详解

KafkaListener 注解提供了许多可配置的参数&#xff0c;以便更灵活地定制 Kafka 消息监听器的行为。 topics&#xff1a; 描述&#xff1a; 指定监听的 Kafka 主题&#xff0c;可以是一个字符串数组。这是最基本的参数&#xff0c;它定义了监听器将从哪个或哪些主题接收消息。…

rust 闭包

文章目录 闭包使用闭包来简化代码传统函数实现 闭包实现闭包的类型推导结构体中的闭包捕获作用域中的值三种 Fn 特征闭包作为函数返回值 闭包 闭包是一种匿名函数&#xff0c;它可以赋值给变量也可以作为参数传递给其它函数&#xff0c;不同于函数的是&#xff0c;它允许捕获调…

P6入门:项目初始化3-项目详情之记事本Notebook

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

SparkSQL语法优化

SparkSQL在整个执行计划处理的过程中&#xff0c;使用了Catalyst 优化器。 1 基于RBO的优化 在Spark 3.0 版本中&#xff0c;Catalyst 总共有 81 条优化规则&#xff08;Rules&#xff09;&#xff0c;分成 27 组&#xff08;Batches&#xff09;&#xff0c;其中有些规则会被归…

在Spring Boot中使用JTA实现对多数据源的事务管理

了解事务的都知道&#xff0c;在我们日常开发中单单靠事务管理就可以解决绝大多数问题了&#xff0c;但是为啥还要提出JTA这个玩意呢&#xff0c;到底JTA是什么呢&#xff1f;他又是具体来解决啥问题的呢&#xff1f; JTA JTA&#xff08;Java Transaction API&#xff09;是…