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各个元素隐藏方 ...
随机推荐
- c++ hex string array 转换 串口常用
c++ hex string array 转换 效果如下 tset string is follow 0x50 55 0x35 00 10 203040506073031323334ff format ...
- 2019SDN第四次作业
一.配置java环境 输入命令sudo gedit ~/.bashrc 添加如下内容 二.启动并安装插件 cd distribution-karaf-0.4.4-Beryllium-SR4/bin/ ...
- Java基础语法知识你真的都会吗?
第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...
- Linux命令中dd的作用
Linux命令中用vi编辑文本时dd的作用是删除整行文本的信息.
- ES-实战
一.环境准备 操作系统:mac 依赖的软件:JDK1.8.Postman.NodeJs6.0以上.Maven.Idea ES下载:Elastic官方网站: http://www.elastic.co ...
- 小记------phoenix安装搭建
1.下载与hbase对应版本的phoenix http://phoenix.apache.org/download.html 2.解压 tar -zxvf apache-pho ...
- 【AtCoder】ARC079
ARC079题解 C - Cat Snuke and a Voyage #include <bits/stdc++.h> #define fi first #define se secon ...
- HttpServletResponse对象(转)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- Colossal Fibonacci Numbers! UVA - 11582(快速幂,求解)
Problem Description The i’th Fibonacci number f(i) is recursively defined in the following way: •f(0 ...
- k8s集群升级
集群升级 由于课程中的集群版本是 v1.10.0,这个版本相对有点旧了,最新版本都已经 v1.14.x 了,为了尽量保证课程内容的更新度,所以我们需要将集群版本更新.我们的集群是使用的 kubeadm ...