Web制作のアレコレ

position:fixedがおかしくなる

position:fixed

position:fixedはウィンドウに対して要素の位置を固定するときに使うプロパティ
この指定をしつつ、表示する座標を指定するだけで、要素の位置を固定することができます

ただし、親要素に「transform」の指定がある場合は例外になり、親要素からの相対配置に代わります
結果固定位置にはならず、位置もおかしな場所に移動します

直すには「transform」を外すしか方法は見つけてられていませんので、この形で対処しましょう

サンプルページ

コードを抜粋しておきました

HTML


<body>
  <div class="ari">
    <p>fixed<br>親要素にtransform付き</p>
  </div>
  <div class="nasi">
    <p>
      fixed<br>親要素にtransform無し
    </p>
  </div>
</body>
CSS


body {
  height: 300vh;
  background: linear-gradient(#05FBFF, #1E00FF);
}
div p {
  width: 200px;
  height: 200px;
  position: fixed;
  display: flex;
  justify-content: space-around;
  align-items: center;
  border-radius: 50%;
}
.ari {
  transform: rotate(10deg);
}
.ari p {
  top: calc(50% - 100px);
  left: calc(25% - 100px);
  background-color: #8babff;
}
.nasi p {
  top: calc(50% - 100px);
  left: calc(75% - 100px);
  background-color: #ff8bb3;
  text-align: center;
}