[转]CSS vertical-align属性详解 作者:黄映焜

2023-11-23 06:10

本文主要是介绍[转]CSS vertical-align属性详解 作者:黄映焜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

posted @  2014-08-26 17:44 黄映焜
  • 前言:关于vertical-align属性.
  • 实践出真知.
  • 垂直居中.
  • 第二种用法.

前言:关于vertical-align属性

vertical-align属性可能是CSS属性中比较不好理解的一个。

W3C对它的解释是:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。

本文将通过一系列实例实验说明它的作用。

[注:将鼠标放置到本文的图片上可看到辅助线]

实践出真知

首先,在HTML body中定义一个用于实验的HTML结构

它包含一个div作为父元素,两张图片,和一个span元素,如下:

<div>Writing<img id="img1" src="img1.jpg" /> <span id="span">span元素</span> <img id="img2" src="img2.jpg" /> </div>

为了更易于比较,需要加一些简单的样式,如下所示:

div{border:1px solid black;/*给父元素添加一个边框,便于辨认*/ width:1000px; height:200px; font-size: 50px;/*设置大号字体,便于比较*/ } img#img1{ width:150px; } #span{ display: inline-block;/*注意这里的inline-block*/ width:250px; height:80px; background-color: yellow;/*给span元素设置一背景色,便于辨认*/ } img#img2{ width:250px; } 

因为vertical-align的默认值为baseline,所以以上代码相当于为#img1元素设置了vertical-align:baseline;属性。

W3Cbaseline值的解释是:默认,元素放置在父元素的基线上。

目前的效果大概是这样(黑色边框即为父元素div范围):

vertical-align:baseline; 辅助线

第二个属性值是vertical-align:top;,W3Ctop值的解释是:把元素的顶端与行中最高元素的顶端对齐。

本例中,最高元素即为图片2(#img2),如下所示:

vertical-align:top; 辅助线

第三个属性值是vertical-align:text-top;,W3Ctext-top值的解释是:把元素的顶端与父元素字体的顶端对齐。如下所示:

vertical-align:text-top; 辅助线

第四个属性值是vertical-align:middle;,W3Cmiddle值的解释是:把此元素放置在父元素的中部。

其实从下图可以看出,对齐的是父元素文本的中部:

vertical-align:middle; 辅助线

第五个属性值是vertical-align:bottom;,W3Cbottom值的解释是:把元素的顶端与行中最低的元素的顶端对齐。

本例中,行中最低元素即为span元素,如下所示:

vertical-align:bottom; 辅助线

第六个属性值是vertical-align:text-bottom;,W3Ctext-bottom值的解释是:把元素的底端与父元素字体的底端对齐。如下所示:

vertical-align:text-bottom; 辅助线

可以使用定长表示元素底部与父元素基线(baseline)的距离,如vertical-align:20px;

正值表示往上,负值表示往下,如下所示:

vertical-align:20px; 辅助线
vertical-align:-20px; 辅助线

亦可使用百分数表示元素底部相对于父元素基线(baseline)移动相对于父元素高(height)的百分比,如vertical-align:40%;

同样的,正值表示往上,负值表示往下,如下所示:

vertical-align:40%; 辅助线

不仅可以将vertical-align属性应用在图片上,也可以应用 在其它行内(内联)元素上

如此例,把vertical-align:top;运用在span元素上,如下所示:

将vertical-align运用在内联元素上 辅助线

垂直居中

从上文的示例分析可以看出,vertical-align属性虽有很多个可能的值

我们可以利用它的middle值,构造出令不定高的行内(内联)元素在父元素中垂直居中的效果

只需要在需要居中的元素外增加一个空的span元素

span元素display:inline-block;width:1px;height:100%;并添加vertical-align:middle;

将需要垂直居中的元素(本例中为#img1元素)添加vertical-align:middle;

为了将元素水平居中,可以在它的父元素(本例中为div元素)设置text-align:center;

目前的HTML结构看起来可能像这样:

<div><span id="span"></span> <img id="img1" src="testImg1.jpg" /> </div>

目前的CSS应该像这样:

div{width:1000px;height:200px; text-align: center; } img#img1{ vertical-align: middle; } #span{ display: inline-block; width:1px; height:100%; vertical-align: middle; }

效果会像这样:

垂直居中 辅助线

第二种用法

其实,vertical-align属性还有第二种用法

vertical-align可以用在display:table-cell;元素的下面(典型的就是td),这时的有四个可取值baseline|top|middle|bottom如下图

垂直居中 辅助线

这种用法相对比较简单,在此不再展开赘述。

 

感谢阅读

转载于:https://www.cnblogs.com/vivaloki/p/5567783.html

这篇关于[转]CSS vertical-align属性详解 作者:黄映焜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/415919

相关文章

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d