ショコラ
CSS ある位置でエレメントを上部に固定するには?
flexボックスのサンプルを用意しました。
注目は「position:sticky; top:var(–menu-height,50px);」とその親の div 配置することです。
もっさん先輩
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.3/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.js"></script>
</head>
<body>
<div class="ui top fixed borderless menu">
<div class="ui item">
<i class="icon eye"></i>メニュー
</div>
</div>
<div class="ui container">
<div style="margin-top:var(--menu-height,50px);" id="contents">
<div style="position:sticky; top:var(--menu-height,50px); z-index:999;" id="sticky">
sticky
</div>
<div class="ui segment" style="height:100em;">
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
</div>
</div>
</div>
<script>
$(function() {
var targetElement = document.querySelector('#sticky');
var containerElement = document.querySelector('.top.menu');
var containerHeight = containerElement.clientHeight;
document.querySelector('#contents').style.setProperty('--menu-height', containerHeight + 'px');
document.querySelector('#sticky').style.setProperty('--menu-height', containerHeight + 'px');
})
</script>
</body>
</html>
以上