first-child
должно работать нормально, если вы хотите больше контролировать специфику правила, вы можете попробовать использовать другой атрибут, чтобы убедиться, что стиль применяется к элементу, который соответствует этому атрибуту.
В этом примере правило будет применяться к элементу, который является первым дочерним элементом container
, но также имеет атрибут name
со значением testinput1
.
.container {
margin-bottom: 10px;
}
.container input[name="testinput1"]:first-child {
border: 1px solid red;
}
<div class="container">
Container 1
<input class="input" name="testinput1" />
<input class="input" name="testinput2" />
</div>
<div class="container">
Container 2
<input class="input" name="testinput2" />
<input class="input" name="testinput1" />
</div>
<div class="container">
Container 3
<input class="input" name="testinput1" />
<input class="input" name="testinput2" />
</div>
Однако, глядя на ваш сценарий, возможно, вы захотите взглянуть на CSS Сетка , чтобы построить макет, вы можете установить его так что всегда есть «пустой» столбец, в котором должен быть элемент управления уведомлением, поэтому он сохраняет другой элемент выровненным.
Или используйте свойство visibility: hidden
в элементе управления уведомлениями, как предлагается в комментариях.