1年に2回くらいの頻度でcssのstikyが動かないと怒りが有頂天に達する時があります。
why! 動かないのなぜ?
その答えは以下でしょう、おそらく。多分。
stickyを指定した要素の親、もっと上の先祖要素にoverflow: hidden ;の指定があると効かない。
何度も忘れますのでメモとなります。
「サイガモの覚えられないcss」として認定されました。
おめでとうございます。
こんな簡単なことを。。
加齢によるポンコツ化ですかね。
【調査】原因の見える化と改善化
「なぜなぜ会議」を開きます。みんな集まってください。
どうしてそんな状況になぜ?なぜなんですか?
よく思い出してください。
あなたが悪いと言っているのではありません。
原因の見える化と改善化の為の「なぜなぜ会議」です。
あ、はい。思い起こすとテンパっている時だったと思います。
すみません。
- 急いでるのにbodyからはみ出る要素があるのでoverflow: hiddenで隠した。
- 急いでるのにcontainer要素からはみ出るのでoverflow: hiddenで隠した。
動かない原因はそれでした。
前に調べて原因は知ってたんですが忘れていました。
すみません。
どうしたらいいんでしょう。
向いてないんじゃないですか、この仕事。
アフェ · (;;;°;ω°;): スミマセン
【共有】stikyのサンプルページ
動かないときはoverflow: hiddenがあるかもです!調べてください。
スティッキー(サンプルページ)
https://astrowave.jp/amnesia_record/stiky.php
要件は以下です。
- 3カラムの両端要素にstikyを仕込む
- 1カラム目は上にstikyさせる
- 3カラム目は下にstikyさせる
- スマホの時はstikyさせない

HTML
<section class="main">
<div class="contents">
top contents
</div>
<div class="container">
<div class="column">
<div class="sticky">sticky</div>
</div>
<div class="column_center">
center contents
</div>
<div class="column2">
<div class="sticky2">sticky2</div>
</div>
</div>
<div class="contents">
bottom contents
</div>
</section>
CSS
<style>
.main {}
.sticky, .sticky2 {
position: sticky;
width: 100px;
height: 100px;
display: block;
}
.sticky {
top: 50px;
left: 0;
background: blue;
z-index: 1;
margin: 0;
padding: 0;
color: white;
}
.sticky2 {
right: 0;
bottom: 0;
background: lightgreen;
z-index: 0;
margin: 0;
padding: 0;
}
.column {
overflow: visible;
width: 25%;
height: 100%;
}
.column_center{
width: 50%;
height: auto;
background: rgb(255,201,114);
}
.column2 {
position: relative;
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: flex-end;
width: 25%;
height: 100%;
overflow: visible;
}
.container {
display: flex;
width: 100%;
height: 1000px;
background: rgb(255,201,114);
background: linear-gradient(118deg, rgba(255,201,114,1) 0%, rgba(246,179,84,1) 40%, rgba(231,229,97,1) 100%);
}
.contents {
width: 100%;
height: 500px;
background: lightcoral;
position: relative;
}
/* スマホ */
@media only screen and (max-width: 750px) {
.main {}
.sticky, .sticky2 {
position: relative;
width: 100%;
height: 100px;
display: block;
}
.sticky {
top: 0;
left: 0;
background: blue;
z-index: 1;
margin: 0;
padding: 0;
color: white;
}
.sticky2 {
right: 0;
bottom: 0;
background: lightgreen;
z-index: 0;
margin: 0;
padding: 0;
}
.column {
width: 100%;
height: auto;
}
.column_center{
width: 100%;
height: auto;
}
.column2 {
position: relative;
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: flex-end;
width: 100%;
height: auto;
}
.container {
display: block;
height: auto;
}
.contents {
height: 200px;
}
}
</style>
以上になります。
参考サイト置き場
なぜなぜ会議をされたことはありますか?
あるんですか?
はい。派遣の頃に(;゚∇゚)/☆
sprocket:なぜなぜ分析とは?3つの手順と5つのコツを解説
https://www.sprocket.bz/blog/20220519-5whys.html
keyence:5回の「なぜ」で導き出す「なぜなぜ分析」とは?
https://www.keyence.co.jp/ss/general/manufacture-tips/5whys.jsp
星間旅路のメロディ
「宇宙の静けさに包まれながら、漂流する過去の音楽を捜し求め、銀河の奥底でその旋律に耳を傾ける。」