Как указано в других ответах, вы можете стилизовать 'first of sequence', используя псевдоселектор :not
и :first-child
:
:not(.error) + .error,
.error:first-child {
border-top-right-radius: 10px;
border-top-left-radius: 10px;
}
Я думаю, что нашел решение для 'последняя последовательность »в этом сценарии с закругленными углами.Он использует совершенно другой метод для изготовления готового продукта, но заканчивается аналогичным результатом:
![Rounded Corners on last of sequence](https://i.stack.imgur.com/42U3L.png)
Основной метод заключается в применении псевдоэлементов сradial-gradients
для вывода списка элементов, которые не являются .error.
после .error
с, и перемещения их вверх над предыдущим (.error
) элементом списка:
.error + :not(.error):before {
content:'';
display:block;
width:10px;
height:10px;
position:absolute;
top:-20px;
left:0;
background:-webkit-radial-gradient(100% 0,circle,transparent 10px,white 0);
}
.error + :not(.error):after {
content:'';
display:block;
width:10px;
height:10px;
position:absolute;
top:-20px;
right:0;
background:-webkit-radial-gradient(0 0,circle,transparent 10px,white 0);
}
Убедитесь, что li
имеет position:relative;
.
Наконец, для border-radius
на последнем используйте last-of-type
:
.error:last-of-type{
border-bottom-right-radius:10px;
border-bottom-left-radius:10px
}
Демо (Webkit только для простоты)