无法将多个伪classes 添加到 :not() 伪class

Can't add multiple pseudo-classes to a :not() pseudo-class

我尝试将样式应用于除第一个和最后一个元素之外的每个元素。我知道有很多方法可以做到。但我正面临一个奇怪的行为(我相信?)。

例如,如果我使用 :not() 伪 class 与 :last-child 关联,它会正常工作。但是一旦我添加第二个伪class(比如:first-child)就不起作用了。

开始了

.div-list {
  width:100px;
  height:400px;
}

.div-list div {
  width:25%;
  height:25%;
  background-color:green;
}
.div-list div:not(:last-child) {
  background-color:red;
}

.div-list div:not(:last-child,:first-child) {
  border:1px solid blue;
}
<div class='div-list'>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

请注意,我知道 standard 并且显然我的语法 "theoricaly" 是正确的。我错了吗?

而是使用这个使用 2 个非选择器的选择器,这就像说不是最后一个 child 而不是第一个 child :

.div-list div:not(:last-child):not(:first-child)

.div-list {
  width: 100px;
  height: 400px;
}

.div-list div {
  width: 25%;
  height: 25%;
  background-color: green;
}

.div-list div:not(:last-child) {
  background-color: red;
}

.div-list div:not(:last-child):not(:first-child) {
  border: 1px solid blue;
}
<div class='div-list'>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

:not 的多个 类 选择器仅在 CSS 选择器级别 4 中受支持,并非在所有浏览器中都有效。它目前仅适用于 Safari,您可以使用多个 :not

.div-list div:not(:last-child):not(:first-child) {
  border:1px solid blue;
}

勾选browser support doc