删除display:flex会在链接周围添加空格为什么?

问题描述

这是因为flexbox删除inlineinline-block元素之间的默认空白。

这是没有flexbox的代码,其中有空格:

.box {

  font-size:30px;

}


<div class="box">

  <a>click</a>

  <a>here</a>

</div>

我们可以通过从标记中删除它或使用任何常用方法来删除该空白:

.box {

  font-size:30px;

}


<div class="box">

  <a>click</a><a>here</a>

</div>

或通过使div成为flexbox容器:

.box {

  display:flex;

  font-size:30px;

}


<div class="box">

  <a>click</a>

  <a>here</a>

</div>

如果我们检查规格:

flex容器的每个流入子元素都将成为一个flex项目,并且每个连续的子文本序列序列都被包装在一个匿名块容器flex项目中。但是, (即可能受white-space属性影响的字符) 空格(就像其文本节点显示为:none一样)。

因此,在我们的代码中,我们有两个子项和一个不带空格的空白序列。

解决方法

我创建了一个html错误页面。它有2行显示错误。第二行链接到主页。为了使两行保持在中心,我创建了一个顶层css-grid并将网格的每一行都设为a
flex。我注意到,如果我display:flex用于第二行,则here链接周围没有任何空格,但是如果删除display:flex,该空格将被添加,即html从Clickhereto变为Click hereto

如果删除flex属性,为什么会添加空格?

html

<div id="invalid-page-grid-container">
  <h1 id="invalid-page-h1">Oops!</h1>
  <h6 id="invalid-page-para">The Page you are looking for does not exist! Click <a [routerLink]="homepageRouterLink"> here </a> to go back to home page of the application !</h6>
</div>

CSS

#invalid-page-grid-container{
  display:grid;
  justify-content:center;
}

#invalid-page-h1{
  display:flex;
  justify-content:center;
  grid-row: 1/2;
}

#invalid-page-para{
  /*display:flex;*//*UNCOMMENT THIS AND YOU'LL SEE SPACE GETTING ADDED AROUND <a> of the html*/
  justify-content:center;
  grid-row: 2/3;
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...