Rob*_*ham 3 html css safari flexbox
我有一个具有这些属性的元素
.Task-header {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: flex-start;
-ms-flex-line-pack: start;
align-content: flex-start;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
在 Chrome 中,孩子的行为与您预期的一样,即彼此之间的空间:

在 Safari 10.1.2 中,每个孩子都占据整个宽度,因此他们出现在彼此下方

我需要做些什么来修复 Safari 之一?
编辑:这是 JSX:
<details>
<summary className="Task-header">
<h3 className="Task-header-title">{data.Name + " [" + version + "]"}</h3>
<span className={"mdi mdi-18px " + (data.Status.State === "running" ? "mdi-checkbox-marked-circle" : "mdi-close-circle")}/>
</summary>
<h3>{data.Name + " [" + version + "]"}</h3><span></span>
<div className="Task-body">
<p>CPU %: <b>{data.cpuUsage}</b></p>
<p>Mem Usage/Limit: <b>{data.memoryUsage}/{data.memoryLimit}</b></p>
<p>Mem %: <b>{data.memoryPercent}</b></p>
<p>Block I/O: <b>{data.blockRead}/{data.blockWrite}</b></p>
<p>Net I/O: <b>{data.netRead}/{data.netWrite}</b></p>
<p>{dateString}</p>
</div>
</details>
Run Code Online (Sandbox Code Playgroud)
关于儿童的 CSS:
.Task-header-title {
font: 600 .875rem Averta;
margin: 0;
}
Run Code Online (Sandbox Code Playgroud)
这与 Safari 中的 FlexBug 相关,其中某些元素无法成为 flex 父元素(请参阅https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers)。摘要标签似乎是这些元素之一。
您可以通过在摘要下嵌套一个 div 来解决这个问题,如下所示:
<summary >
<div className="Task-header">
<h3 className="Task-header-title">{data.Name + " [" + version + "]"}</h3>
<span className={"mdi mdi-18px " + (data.Status.State === "running" ? "mdi-checkbox-marked-circle" : "mdi-close-circle")}/>
</div>
</summary>
Run Code Online (Sandbox Code Playgroud)