博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML中dl元素的高度问题
阅读量:6622 次
发布时间:2019-06-25

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

dl元素通常用来创建一个描述列表,但是在我使用的过程中发现了一个小问题。

定义及用法

在MDN中 <dl> 元素的定义是:一个包含术语定义以及描述的列表,通常用于展示词汇表或者元数据 (键-值对列表)。

<dl> 元素有两个特有的子元素,分别是 <dt><dd><dt> 用于在一个定义列表中声明一个术语 , <dd> 用来指明一个描述列表 ( <dl> ) 元素中一个术语的描述。

Name
Godzilla
Born
1952
Birthplace
Japan
Color
Green

这样我们就得到了一个包含术语及其描述的列表:

dl元素列表

给<dl>元素添加样式

在上面的展示中, <dl> 元素有其默认的样式,但是我的页面上想要展示如下所示的列表:

目标列表

于是,我就给 <dl>列表添加了一些CSS样式:

dl {  width: 400px;  border: 1px solid red;  box-sizing: border-box;  display: inline-block;}dt, dd {  margin: 0;  padding: 0;  float: left;  width: 50%;}

问题

结果呢,就出现了文章开头时所说的小问题:

描述列表的样式完全乱了,列表的第一行好像还可以,在第二行的 <dt> 之前出现了莫明其妙的空白,所后的几行也都出现了问题,这是为什么呢?

我们使用「border大法」来看一看到底为什么出现了这种情况,我为 <dl> 元素中的所有元素都添加了 border ,并且稍微修改了 <dt><dd> 的宽度。

dl {  width: 400px;}dt, dd {  margin: 0;  padding: 0;  float: left;  width: 49%;  border: 1px solid red;}

出现的结果是这样的:

结果图

想必大家都看到了,定义术语的 <dt> 元素和描述术语的 <dd> 元素的高度不同,因此第二行的邮箱就被挤到了 <dd> 元素本来的位置上,其后的元素也被依次挤了下去。

解决

造成这个问题的原因是 <dt><dd> 自适应高度,而纯数字的 <dd> 高度要低于汉字内容的 <dt> ,因此有两种方法解决:

1 .既然纯数字的高度和带汉字的文本的高度不同,那我们在两边都加上汉字不就行了嘛:

完美~

讲道理,皮这一下很开心...

2 .正常人都不会用上边的方法的好吗,不慌,还有一种方法:给两边固定的高度。

dl {  width: 400px;}dt, dd {  font-size: 16px;  padding: 0;  margin: 0;  float: left;  width: 49%;  border: 1px solid red;  height: 30px;  line-height: 30px;}

给两边都加上30px的高度,并且将行高设置为与高度相同,使文本垂直居中。

结果图

解决~

如果各位同学还有更好的解决方法,还请不吝赐教。

以上。

转载地址:http://dljpo.baihongyu.com/

你可能感兴趣的文章
java获取当前时间前一周、前一月、前一年的时间
查看>>
话说WEB开发之页面重绘和回流
查看>>
vuex之传递参数(五)
查看>>
xutils使用手册(一)——初始化
查看>>
using标识使用
查看>>
解决linux下不能上网
查看>>
nginx rewrite伪静态配置参数说明
查看>>
python学习笔记(15-18)
查看>>
【转】linux进程的内存使用解析
查看>>
我的友情链接
查看>>
Oracle 查询不区分大小写 (正则函数)
查看>>
T264接口说明
查看>>
SELinux介绍
查看>>
visual C++ 用 TextOut 输出单个字符
查看>>
Rsyslog实现Nginx日志统一收集
查看>>
开源数字媒体资产管理系统:Razuna
查看>>
linux文本处理三剑客之grep家族及其相应的正则表达式使用详解
查看>>
Java中的IO操作(一)
查看>>
Python---装饰器
查看>>
s17data01
查看>>