Я пытаюсь сделать ввод с элементами префикса и суффикса:
- В одиночку, вход округлен
- С префиксом (соответственно суффикс), слева (соответственно... правая) сторона закруглена, но не правая (соответственно левая) сторона
- С префиксом и суффиксом, вход не округляется вообще (кнопки округлены)
Мне удалось обработать префиксный элемент, но я не могу найти селектор CSS, который бы сказал «Округлить правую сторону ввода, если элемент следует за вводом», пусть он будет на входе или в своем контейнере,
Я хотел бы сделать это только в HTML / CSS (без JS).Есть идеи ?
PS: Я не прошу предыдущий селектор брата .Я спрашиваю, есть ли способ выбрать вход, за которым следует суффикс.Это включает в себя:
- предыдущий селектор братьев и сестер (который не существует)
- элемент, за которым следует другой (который противоположен, так что, вероятно, тоже не существует)
- родительский контейнер, имеющий вход в качестве последнего дочернего элемента и ничего больше
- родительский элемент, имеющий N дочерних элементов (что позволяет мне знать, что если есть 3 дочерних элемента, то входные данные должны быть округлены)
:root {
--radius: 5px;
}
div {
height: 36px;
margin: 12px;
}
* {
box-sizing: border-box;
}
input {
height: 100%;
padding: 0;
border-radius: var(--radius);
border: 1px solid #ccc;
padding: 0 6px;
}
button {
height: 100%;
background: teal;
border: 0;
color: white;
}
button[prefix] {
border-radius: var(--radius) 0 0 var(--radius);
}
button[suffix] {
border-radius: 0 var(--radius) var(--radius) 0;
}
div > button[prefix] + input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
div > button[suffix] ~ input {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
<div>
<input type="text" placeholder="Type here">
</div>
<div>
<button prefix>P</button>
<input type="text" placeholder="Type here">
<button suffix>S</button>
</div>
<div>
<input type="text" placeholder="Type here">
<button suffix>S</button>
</div>
<div>
<button prefix>P</button>
<input type="text" placeholder="Type here">
</div>