HTML中dl元素的高度问题
dl元素通常用来创建一个描述列表,但是在我使用的过程中发现了一个小问题。
定义及用法
在MDN中 <dl> 元素的定义是:一个包含术语定义以及描述的列表,通常用于展示词汇表或者元数据 (键-值对列表)。<dl> 元素有两个特有的子元素,分别是 <dt> 和 <dd> , <dt> 用于在一个定义列表中声明一个术语 , <dd> 用来指明一个描述列表 ( <dl> ) 元素中一个术语的描述。
<dl>
<dt>Name</dt>
<dd>Godzilla</dd>
<dt>Born</dt>
<dd>1952</dd>
<dt>Birthplace</dt>
<dd>Japan</dd>
<dt>Color</dt>
<dd>Green</dd>
</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的高度,并且将行高设置为与高度相同,使文本垂直居中。
解决~
如果各位同学还有更好的解决方法,还请不吝赐教。
以上。
HTML中dl元素的高度问题的更多相关文章
- [转] 在body中没有元素把高度撑开的情况下,设置全屏
[From] https://segmentfault.com/q/1010000006182839 html,body { margin:; padding:; min-height: 100vh; ...
- 网页或微信小程序中使元素占满整个屏幕高度
在项目中经常要用到一个容器元素占满屏幕高度和宽度,然后再在这个容器元素里放置其他元素. 宽度很简单就是width:100% 但是高度呢,我们知道的是height:100%必须是在父元素的高度给定了的情 ...
- CSS中父元素高度没有随子元素高度的改变而改变,应该如何解决?
如果子元素没有设置浮动(float),父元素实际上会根据内容,自动宽高进行适应的. 当子元素增加了浮动后,最简单的处理方法是给父元素添加overflow:hidden属性,此时父元素的高度会随子元素的 ...
- html中表格元素的相关总结
表格元素相关总结: 1.在CSS中,内部表元素(如td.tr.col等)生成矩形框,这些矩形框包含内容.内边距和边框,但没有外边距,因此如果定义外边距,浏览器将忽略该定义:对于table元素,外边距有 ...
- HTML和CSS设置动态导航以及CSS中伪元素的简单说明
HTML页面代码: <!DOCTYPE html> <html> <head> <title>Test</title> <meta c ...
- html中可以使用在块级元素<body>中的元素
1.<p></p>当在html页面中需要显示大段文字的时候,可以使用p元素标记每一个段落的边界,需要注意的是,段落是块级元素,只允许包含文本和行内元素. 以下标注的是p中的标准 ...
- (转载)html中div使用自动高度
为什么要使用div标签 1.更多的配置项,那就意味着更灵活,当然,难度也更高: 2.可以方便的容纳其他html标签: static定位就是不定位,出现在哪里就显示在哪里,这是默认取值,只有在你 ...
- css3动态计算元素的高度及宽度
1.px 像素,我们在网页布局中一般都是用px. 2.百分比 百分比一般宽泛的讲是相对于父元素,自适应网页布局越来越多,百分比也经常用到了 3.Viewport 当已知一个div的高度 ...
- jquery中使元素显示和隐藏方法之间的区别
在实际的项目开发中,要使一个元素隐藏的方法有很多,比如css的多种属性和jquery的多种方法,虽然他们的作用都是使元素不可见,但是各个方法实现的原理是不一样的.下面主要介绍jquery各个元素隐藏方 ...
随机推荐
- HDU6739 Invoker 【dp】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6739 借鉴了这个网址的题解:https://blog.csdn.net/qq_41785863/art ...
- 类型限定符volatile
目录 类型限定符volatile 强制内存读取 禁止编译优化 注意:volatile不能够保证线程同步 volatile bool flag; volatile int a; 添加volatile限定 ...
- Flutter、Weex、RN,Native对比
- 【贪心科技】贪心科技内容合伙人关于AI公司及创业的演讲笔记
贪心科技内容合伙人关于AI公司及创业的演讲笔记 视频 目录 一.投资角度对 AI 的两个基本认知 二.简单分析 AI 公司的两个纬度四个层面 三.AI 垂直行业应用的三点中美对比 四.给创业者的四个建 ...
- 为服务部署 Jekins的使用
docker pull jenkinsci/jenkins docker run -d -p 8080:8080 -v E:/docker/jenkins:/var/jenkins_home --na ...
- Snoopy.class.php介绍
Snoopy是一个开源的模拟抓取工具,找到一个不错的介绍网页 记录一下: php开源采集类Snoopy.class.php功能使用介绍与下载地址 Snoopy.class.php使用手册 还有一个介绍 ...
- redis 入门教程
https://edu.aliyun.com/course/22/lesson/list?spm=5176.8252056.759075.5.Bbrpyz
- table html
<html><head><title>demo-110101</title><style type="text/css"> ...
- pat L2_004
一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值: 其右子树中所有结点的键值大于等于该结点的键值: 其左右子树都是二叉搜索树. 所谓二叉搜索 ...
- pm2 常用操作
PM2全局安装 npm i pm2 -g PM2启动.net core pm2 start "dotnet xxx.dll" --name api //name后面跟你要取的名字 ...