Вы найдете ответы на все ваши вопросы здесь: Использование процентных значений с background-position на линейном градиенте
С другой стороны, вы можете оптимизировать код, как показано ниже, чтобы лучше контролировать треугольник:
select {
width:150px;
height:50px;
-webkit-appearance: none;
background-image:
linear-gradient(to top left ,transparent 50%, black 0),
linear-gradient(to top right,transparent 50%, black 0);
background-position:
/* The same top value for both
The right of the second one is the first + the width*/
top 15px right 5px,
top 15px right 15px;
background-size:
/*width height. both will have the same so the final result will be 2*Width Height*/
10px 10px;
background-repeat: no-repeat;
}
<select class="version">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4"> 4</option>
<option value="5">5</option>
</select>
С помощью CSS переменных вы можете упростить задачу:
select {
--t:15px; /* offset from top */
--r:5px; /* offset from right*/
--w:20px; /* Overal width*/
--h:10px; /* Overal height*/
width:150px;
height:50px;
-webkit-appearance: none;
background-image:
linear-gradient(to top left ,transparent 50%, black 0),
linear-gradient(to top right,transparent 50%, black 0);
background-position:
/* The same top value for both
The right of the second one is the first + the width*/
top var(--t) right var(--r),
top var(--t) right calc(var(--r) + var(--w)/2);
background-size:
/*width height. both will have the same so the final result will be 2*Width Height*/
calc(var(--w)/2) var(--h);
background-repeat: no-repeat;
}
<select class="version">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4"> 4</option>
<option value="5">5</option>
</select>
<select class="version" style="--w:10px;--r:10px;--t:10px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4"> 4</option>
<option value="5">5</option>
</select>
<select class="version" style="--w:30px;--h:20px;--t:10px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4"> 4</option>
<option value="5">5</option>
</select>
также относятся: { ссылка }