Деляю менюшку, наполнил ряд кнопками, между которыми расположил
<select>
, которым хочу заполнить оставшуюся ширину. Использую на родительском элементе
display: table; width: 100%;
, на дочерних -
display:table-cell;width:fit-content;
, конкретно на
<select>
-
width: 100%
.
Проблема в том, что
width: 100%
на
<div>
(когда ставил эксперименты) заполняет оставшуюся ширину, но когда этот трюк попытался применить к
<select>
- элемент стал заполнять вообще всё, вытесняя остальное. Почему так происходит, и какими css-правилами добиться, чтобы ширина
<select>
вела себя нормально?
Есть хак - обернуть в , но мне это не подходит, потому что меню генерируется процедурно - а выделять во что-то отдельное - разводить мусор в проекте
Код с <div>, проблемой и хаком под спойлером
<!DOCTYPE html>
<html lang="ru" style="height:100%;">
<head>
<meta charset="utf-8">
<title>Полигон</title>
<!--
<link href="stypes.css" rel="stylesheet">
<script src="script.js"></script>
-->
<!--<script type="module" src="/static/vue.js"></script>-->
<style>
</style>
</head>
<body style="height:100%;margin:0;">
<div>My fixed content</div>
<div>
<div style="width:fit-content;float:left;background-color:lightgray;"
>setraw
</div>
<div
style="float:left;max-width:100%;background-color:lightyellow"
>Select-remaining
</div>
<div
style="width:fit-content;float:left;background-color:lightblue"
>vsplit
</div>
</div>
<div style="display:table;width:100%;">
<div style="display:table-cell;width:fit-content;background-color:lightgray;"
>setraw
</div>
<div
style="display:table-cell;width:100%;background-color:lightyellow"
>Select-remaining many1 many2 many3 many4 many5 many6 many7 many8
</div>
<div
style="display:table-cell;width:fit-content;background-color:lightblue"
>vsplit
</div>
</div>
<div style="display:table;width:100%;">
<button style="display:table-cell;width:fit-content;background-color:lightgray;"
>setraw
</button>
<select
style="display:table-cell;width:100%;background-color:lightyellow"
>
<optgroup>
<option>Select-remaining</option>
<option>many1</option>
<option>many2</option>
<option>many3</option>
</optgroup>
</select>
<button
style="display:table-cell;width:fit-content;background-color:lightblue"
>vsplit
</button>
</div>
<div style="display:table;width:100%;">
<button style="display:table-cell;width:fit-content;background-color:lightgray;"
>setraw
</button>
<span
style="display:table-cell;width:100%;background-color:lightyellow"
>
<select style="width:100%">
<optgroup>
<option>Select-remaining</option>
<option>many1</option>
<option>many2</option>
<option>many3</option>
</optgroup>
</select>
</span>
<button
style="display:table-cell;width:fit-content;background-color:lightblue"
>vsplit
</button>
</div>
</body>
<script>
</script>
</html>