博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《CSS世界》读书笔记(十六)
阅读量:6279 次
发布时间:2019-06-22

本文共 1016 字,大约阅读时间需要 3 分钟。

<!-- 《CSS世界》张鑫旭著 -->

line-height与“垂直居中”

line-height 可以让单行或多行元素近似垂直居中,原因在于 CSS 中“行距的上下等分机制”。之所以说近似,是因为文字字形的垂直中线位置普遍要比真正的“行框盒子”的垂直中线位置低。由于我们平时使用的 font-size 都比较小,所以我们往往察觉不到。

多行文本或者替换元素的垂直居中实现原理和单行文本不一样,需要 line-height 属性的好朋友 vertical-align 属性帮助才可以,示例代码如下:

.box {
line-height: 120px; background-color: #f0f3f9;}.content {
display: inline-block; line-height: 20px; margin: 0 20px; vertical-align: middle;}
基于行高实现的……

效果可查看:

实现的原理大致如下:

(1)多行文字用一个标签包裹,然后设置display为inline-block。好处在于既能重置外部的 line-height 为正常的大小,又能保持内联元素特性,从而可以设置vertical-align属性,以及产生一个非常关键的“行框盒子”。我们需要的是每个“行框盒子”都会附带的一个产物——“幽灵空白节点”。有了这个“幽灵空白节点”,我们的line-height:120px 就有了作用的对象,从而相当于在.content元素前面撑起了一个高度为120px的宽度为0的内联元素。

(如果设置为inline,则.content的line-height【20px】会被.box的line-height【120px】影响,内联元素 line-height 的大值特性,见P125)

(2)因为内联元素默认是基线对齐,所以我们对 .content 元素设置 vertical-align:middle 来调整多行文本的垂直位置,从而实现我们想要的“垂直居中”效果。这里仍然是近似垂直居中,只是 vertical-align 导致的(详见P140)。

 

转载于:https://www.cnblogs.com/beginner2014/p/9642988.html

你可能感兴趣的文章
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>
MySQL 索引 BST树、B树、B+树、B*树
查看>>
微信支付
查看>>
CodeBlocks中的OpenGL
查看>>
短址(short URL)
查看>>