当前位置: 首页 > 面试题库 >

Why my inline-block divs are not aligned when only one of them has text?[duplicate]

唐法
2023-03-14
问题内容

鉴于此HTML页面:

section[role=main] {

  margin: 1em;

  width: 95%;

  border: 1px solid #999;

}



section[role=main] article {

  width: 40%;

  height: 180px;

  margin: 1em;

  display: inline-block;

  border: 1px solid black;

}


<section role="main">

  <article>Java</article>

  <article></article>

</section>



<section role="main">

  <article>Java</article>

  <article>JavaScript</article>

</section>

我希望我的两篇文章都对齐,但是正如下面的屏幕快照所示,只有当我的两篇文章都带有文本时,<article>


问题答案:

这是CSS中“基线”垂直对齐的结果。根据CSS 2.1规范的第10.8节“线高计算”:“ line-height”和“ vertical-align”属性

基准线
将框的基线与父框的基线对齐。如果该框没有基线,则将下边距边缘与父级的基线对齐。(我的重点)

由于内联块的默认对齐方式是“基线”,因此除非被覆盖,否则将应用此规则。将文本放入内联代码块时,该
文本将为内联代码块创建基线,并且第一句(非粗体)适用。

如果内联块中没有文本,则它没有基线,因此第二句(加粗)适用。

在此处的JSFiddle中:http : //jsfiddle.net/WjCb9/1/我从您的示例中删除了margin:1em正在(至少对我而言)造成误导性错觉的情况,并添加了文本baseline以显示包含框的基线在哪里是。基线位于“基线”一词的底部,因此
您可以看到空的内联块的底部边距边缘与上述CSS规则所要求的父级基线对齐。



 类似资料:
  • 问题内容: 我在jsp页面中看到以下错误- 我看到了一篇关于此的文章,并尝试了一些建议的方法。BalusC提供了很好的输入- JSTL1.2和Standard.jar不能一起使用。我做到了,它解决了一段时间的问题- 但它再次出现。我不确定是否还有jar碰撞。我已经将所有jar定义为Maven中的依赖项。以下是我指定的依赖项pom.xml- 问题答案: 您将需要在项目中导入JSP API,而Serv

  • 问题内容: This question already has answers here : How to nicely format floating numbers to String without unnecessary decimal 0? (26 answers) Closed 6 years ago. For example I need to become , or to beco

  • 问题内容: 我正在创建一个需要存储键值对的程序。该程序需要接受键形式的请求,并返回相应的值。 问题在于每个键有时有多个值,并且map类不允许重复的键。 这些值是数字,因此无法像使用字符串那样有意义地连接这些值。 对于每个键可以有多个数值的事实,是否有任何优雅的解释方法?我希望返回每个数字,而不是随机返回一个数字。 问题答案: $ cat YourMap.java public class Your

  • 问题内容: 从MySQL 4.1.0开始,可以在目标表wrt 或某个字段中已经插入的值(使用或或)时添加语句来指定行为。如果表中已经有或个字段的值,则将其替换为。 如果我的表中有多个 字段,该如何处理? 如果任一字段匹配,我只能进行一次更新吗? 仅当两个字段同时匹配时才能更新吗? 问题答案: 考虑 如果a和b是字段,则发生在。同样,当两个或多个条目满足条件时,更新仅执行一次。 此处带有ID和Nam

  • 问题内容: 我已经找到了单独使用mySQL的一些答案,但是我希望有人可以向我展示一种使用PHP处理插入/更新时获取mysql DB最后插入或更新的行的ID的方法。 当前,我有类似这样的内容,其中column3是唯一键,还有一个id列是自动递增的主键: $ my_id在INSERT上是正确的,但是在更新行时(在DUPLICATE KEY UPDATE上)是错误的。 我见过一些人建议您使用类似 在调用

  • 问题内容: 我知道,如果已经有该键的记录,您可以用来更新某个值, 我可以做这个: 但是,如何做到这一点而不必两次写出列和值呢? 问题答案: 不幸的是没有。 您可以不必重复该值而达到一半: 但是您仍然必须列出这些列。

  • 问题内容: 我对MySQL的INSERT … ON DUPLICATE KEY UPDATE 语句的返回值感到困惑。当我在MySQL客户端(mysql终端,phpmyadmin或MySQL Workbench)上尝试使用它时,执行结果将显示以下内容之一: 1 :如果插入了新记录(即没有重复的密钥)。 2 :如果存在重复记录,则更新现有记录。 0 :如果执行更新,但没有更改列值。 这些结果是有道理的

  • 问题内容: 我有一个带有列的基本表: id(主要用于AI) 名称(唯一) 等等 如果唯一列不存在,则插入行,否则更新行…。 问题在于,如果它执行UPDATE,则id列上的auto_increment值会上升。因此,如果执行了大量更新,则id auto_increment会通过屋顶。 显然这是一个错误:http : //bugs.mysql.com/bug.php?id=28781 …但是我在共享主