html - 当我的文本变长时相邻父容器的随机移动:HTML/CSS
问题描述
我对编码/网页设计很陌生,所以也许这有一个明显的答案。但我只是在练习。在一个非常基本的网页上,我有一个三种颜色的列表。我已经把颜色的名字放在它们上面。我通过将颜色块放在无序列表中然后将它们设置为 display: inline-block 来创建颜色块,这样它们就可以并排放置。文本是包含块的子 [p] 元素,我将其居中,然后设置为 position: relative。然后我将它们向上移动,使它们位于色块上方。这是我使用的 HTML
.backgroundclr {
list-style: none;
margin-top: 70px;
}
.backgroundclr li {
border: 1px solid black;
display: inline-block;
padding: 50px;
height: 100px;
width: 200px;
text-align: center;
}
.bclr1 {
background-color: rgb(48, 56, 65);
}
.bclr2 {
background-color: rgb(114, 120, 126);
}
.backgroundclr li p {
position: relative;
bottom: 95px;
font-size: 20px;
}
<ul class="backgroundclr">
<li class="bclr1">
<p>Dark Gray</p>
</li>
<li class="bclr2">
<p>Medium Gray</p>
</li>
<li class="bclr3">
<p>White</p>
</li>
</ul>
当文本只有一行时,这很好用。但是当我将颜色的 rgb 值放入文本中时,每个元素中的文本都会变得足够长,以至于它会创建第二行文本。并且由于某种原因,当这种情况发生时,它会将下一个 li 元素向下推。这是两个州的照片。
这可能是我没有意识到的显而易见的事情。IDK 如果我制作色块或使文本居中并位于它们上方的方式是最实用/有用/灵活的方法。我只是好奇这里是否有人知道为什么会发生这种情况。谢谢!
解决方案
默认情况下,这些块具有vertical-align:baseline
,这使它们与文本的底部对齐。只有当文本具有相同的行数时,它才能正常工作。
解决方案:添加vertical-align:top
以将它们与顶部对齐。
.backgroundclr {
list-style: none;
margin-top: 70px;
}
.backgroundclr li {
border: 1px solid black;
display: inline-block;
vertical-align: top; /* new */
padding: 50px;
height: 100px;
width: 200px;
text-align: center;
}
.bclr1 {
background-color: rgb(48, 56, 65);
}
.bclr2 {
background-color: rgb(114, 120, 126);
}
.backgroundclr li p {
position: relative;
bottom: 95px;
font-size: 20px;
}
<ul class="backgroundclr">
<li class="bclr1">
<p>Dark Gray</p>
</li>
<li class="bclr2">
<p>Medium Gray</p>
</li>
<li class="bclr3">
<p>White</p>
</li>
</ul>
推荐阅读
- django - 我可以使用 redis 作为后端代理服务器来存储聊天应用程序的 WebSocket 连接实例吗
- python - 从字符串中删除特殊字符,如果字符串在 python 中具有一定长度,则添加更多字符
- java - 无法解决:com.github.smrtyvz:ArchedImageProgressBar:2.01
- excel - Excel 嵌套 IF 公式中的“您键入的公式包含错误”
- angular - 带有茉莉花的 Angular 9 单元测试生成器
- java - 无法使用 JNA:com.sun.jna.Library 不可访问
- javascript - React-如何每天保存变量的值
- python - 我正在尝试制作一个将十进制数转换为十六进制数的python程序,但是当我运行它时,它给了我一个格式转换错误
- python - Python 不再被识别
- node.js - 类型错误:无法读取对象未定义的属性“端口”。