CSS でトランジションを設定する

Rajeev Baniya 2023年2月20日
  1. CSS でトランジションを設定するには、transition プロパティとともに opacity および visibility プロパティを使用する
  2. CSS でトランジションを設定するには、transition プロパティとともに heightopacityoverflow プロパティを使用する
CSS でトランジションを設定する

この記事では、CSS で遷移を設定する方法を紹介します。ここでは、opacity, height, visibilitytransition を設定して、ホバリングおよびホバリング時にフェードインおよびフェードアウト効果を与える方法を学習します。

CSS でトランジションを設定するには、transition プロパティとともに opacity および visibility プロパティを使用する

CSS の display プロパティで transition プロパティを使用することはできません。たとえば、CSS の transition プロパティを使用して、ホバー(マウスイン)後に display : nonedisplay : block に変更したり、その逆を行ったりすることはできません。したがって、トランジションとともに opacity および visibility プロパティを使用して、アイテムにフェードインおよびフェードアウト効果を与えることができます。Transition には、transition-propertytransition-durationtransition-timing-functiontransition-delay などの特定のプロパティがあります。遷移の省略形プロパティを遷移:不透明度 2s 線形 1s として使用することもできます。ここで、opacitytransition-property を示し、2stransition-duration を示し、lineartranstion-timing-function を、1stransition-delay を表しています。hover を使用して、transition を試すことができます。

たとえば、div を作成し、ul タグと li タグを使用して、3つの順序付けされていないリストアイテムのリストを作成します。div には見やすいように 1px solid black の境界線を付けて表示します。ul のプロパティを opacity: 0visibility: hiddentransition: visibility 0s, opacity 0.6s linear を設定します。opacityvisibility の両方を使用しています。これは、opacity: 0 のみを使用した場合でも、アイテムをクリックしてホバーできるためです。ul ホバープロパティを visibility: visible および opacity: 1 に設定して、ul のリストアイテムがホバリング中にのみ transition 効果で表示されるようにします。

次の例は、ul のアイテムがホバーしている間のみ表示されることを示しています。アイテムは 0.6 秒以内に線形効果で表示され、マウスを離すと再び非表示になります。

サンプルコード:

<div>
 <ul>
 <li> Apple </li>
 <li> Banana </li>
 <li> Mango </li>
 </ul>
</div>
div {
 border : 1px solid black;
}
div > ul {
 visibility: hidden;
 opacity: 0;
 transition : visibility 0s, opacity 0.6s linear;
}
div:hover > ul {
 visibility : visible;
 opacity : 1;
}

CSS でトランジションを設定するには、transition プロパティとともに heightopacityoverflow プロパティを使用する

display: none および display: block でトランジションを使用する別の方法は、トランジションと一緒に使用される heightoverflow、および opacity プロパティである可能性があります。リストに opacity : 0height : 0 を設定して、アイテムが表示されないようにすることができます。また、transition-duration に時間がかかる間、アイテムが div の外に出ないように overflow: hidden を設定する必要があります。最初の方法と同じように、transition 省略形プロパティを使用できます。

たとえば、div を作成し、ul および li タグを使用して 3つの順序付けされていないアイテムのリストを作成します。最初の方法と同じように、div1px solid black の境界線を付けます。ul のプロパティを opacity: 0overflow: hidden および height: 0 として設定します。transition プロパティの値を opacity 0.6s ease-in として設定します。ul ホバープロパティを height: auto および opacity: 1 に設定して、ul のリストアイテムがいくつかの transition 効果でホバリングしているときにのみ表示されるようにします。

次の例は、div が空で、divheight0px であることを示しています。しかし、div にカーソルを合わせると、アイテムリストが ease-in 効果で表示されます。ease-in オプションは、トランジションのスロースタートを設定します。divheight プロパティは auto になります。div からホバーアウトすると、再び空になります。

サンプルコード:

<div>
 <ul>
 <li>Apple</li>
 <li>Banana</li>
 <li>Mango</li>
 </ul>
</div>
div {
 border: 1px solid black;
}
div > ul {
 opacity: 0;
 height: 0;
 overflow: hidden;
 transition: opacity 0.6s ease-in;
}
div:hover > ul {
 opacity: 1;
 height: auto;
}

関連記事 - CSS Transition