Webデザイン

【PR】を含みます。

【HTML・CSS】画像のマウスオーバー(ホバー)時にテキスト表示する方法

【HTML・CSS】画像のマウスオーバー(ホバー)時にテキスト表示する方法

もくじ

HTMLとCSSのみで画像マウスオーバー時にテキストを表示する方法を紹介します。

ホバー時に画像にマスクをかけて、文字を表示します。

今回はマスクのエフェクトを18個作成しました。

画像のマウスオーバー時のエフェクトサンプル18選

サンプル画像をクリックすると、実装コードに遷移します。

画像のマウスオーバー時のエフェクトサンプル・HTML・CSS

【サンプル1】マスクと文字を表示

【実装コード1】マスクと文字を表示

HTML
Copy
  1. <div class="item_box">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample1</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }

【サンプル2】マスクと文字をふわっと表示

【実装コード2】マスクと文字をふわっと表示

HTML
Copy
  1. <div class="item_box -fade-in">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample2</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -fade-in */
  48. .item_box.-fade-in .item_mask {
  49.   transition: opacity 1.0s ease;
  50. }

【サンプル3】文字を上から表示

【実装コード3】文字を上から表示

HTML
Copy
  1. <div class="item_box -text-from-top">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample3</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -text-from-top */
  48. .item_box.-text-from-top .item_mask {
  49.   transition: opacity 0.5s ease;
  50. }
  51. .item_box.-text-from-top .item_mask-text {
  52.   top: -100%;
  53.   transition: top 0.5s ease;
  54. }
  55. .item_box.-text-from-top .item_link:hover .item_mask-text {
  56.   top: 50%;
  57.   transform: translateY(-50%);
  58. }

【サンプル4】文字を下から表示

【実装コード4】文字を下から表示

HTML
Copy
  1. <div class="item_box -text-from-bottom">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample4</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -text-from-bottom */
  48. .item_box.-text-from-bottom .item_mask {
  49.   transition: opacity 0.5s ease;
  50. }
  51. .item_box.-text-from-bottom .item_mask-text {
  52.   top: 100%;
  53.   transition: top 0.5s ease;
  54. }
  55. .item_box.-text-from-bottom .item_link:hover .item_mask-text {
  56.   top: 50%;
  57.   transform: translateY(-50%);
  58. }

【サンプル5】文字を左から表示

【実装コード5】文字を左から表示

HTML
Copy
  1. <div class="item_box -text-from-left">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample5</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -text-from-left */
  48. .item_box.-text-from-left .item_mask {
  49.   transition: opacity 0.5s ease;
  50. }
  51. .item_box.-text-from-left .item_mask-text {
  52.   left: -100%;
  53.   transition: left 0.5s ease;
  54. }
  55. .item_box.-text-from-left .item_link:hover .item_mask-text {
  56.   left: 0;
  57.   transform: translateY(-50%);
  58. }

【サンプル6】文字を右から表示

【実装コード6】文字を右から表示

HTML
Copy
  1. <div class="item_box -text-from-right">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample6</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -text-from-right */
  48. .item_box.-text-from-right .item_mask {
  49.   transition: opacity 0.5s ease;
  50. }
  51. .item_box.-text-from-right .item_mask-text {
  52.   left: 100%;
  53.   transition: left 0.5s ease;
  54. }
  55. .item_box.-text-from-right .item_link:hover .item_mask-text {
  56.   left: 0;
  57.   transform: translateY(-50%);
  58. }

【サンプル7】文字とマスクを上から表示

【実装コード7】文字とマスクを上から表示

HTML
Copy
  1. <div class="item_box -mask-from-top">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample7</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -mask-from-top */
  48. .item_box.-mask-from-top .item_mask {
  49.   top: -100%;
  50.   transition: top 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-mask-from-top .item_link:hover .item_mask {
  53.   top: 0;
  54. }

【サンプル8】文字とマスクを下から表示

【実装コード8】文字とマスクを下から表示

HTML
Copy
  1. <div class="item_box -mask-from-bottom">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample8</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -mask-from-bottom */
  48. .item_box.-mask-from-bottom .item_mask {
  49.   top: 100%;
  50.   transition: top 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-mask-from-bottom .item_link:hover .item_mask {
  53.   top: 0;
  54. }

【サンプル9】文字とマスクを左から表示

【実装コード9】文字とマスクを左から表示

HTML
Copy
  1. <div class="item_box -mask-from-left">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample9</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -mask-from-left */
  48. .item_box.-mask-from-left .item_mask {
  49.   left: -100%;
  50.   transition: left 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-mask-from-left .item_link:hover .item_mask {
  53.   left: 0;
  54. }

【サンプル10】文字とマスクを右から表示

【実装コード10】文字とマスクを右から表示

HTML
Copy
  1. <div class="item_box -mask-from-right">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample10</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -mask-from-right */
  48. .item_box.-mask-from-right .item_mask {
  49.   left: 100%;
  50.   transition: left 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-mask-from-right .item_link:hover .item_mask {
  53.   left: 0;
  54. }

【サンプル11】文字とマスクを中央から拡大しながら表示

【実装コード11】文字とマスクを中央から拡大しながら表示

HTML
Copy
  1. <div class="item_box -fade-in-from-center">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample11</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -fade-in-from-center */
  48. .item_box.-fade-in-from-center .item_mask {
  49.   transform: scale(0);
  50.   transition: transform 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-fade-in-from-center .item_link:hover .item_mask {
  53.   transform: scale(1);
  54. }

【サンプル12】文字とマスクを縦に180度回転しながら表示

【実装コード12】文字とマスクを縦に180度回転しながら表示

HTML
Copy
  1. <div class="item_box -rotate-180degrees-vertically">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample12</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -rotate-180degrees-vertically */
  48. .item_box.-rotate-180degrees-vertically .item_mask {
  49.   transform: rotateX(-180deg);
  50.   transition: transform 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-rotate-180degrees-vertically .item_link:hover .item_mask {
  53.   transform: rotateX(0deg);
  54. }

【サンプル13】文字とマスクを横に180度回転しながら表示

【実装コード13】文字とマスクを横に180度回転しながら表示

HTML
Copy
  1. <div class="item_box -rotate-180degrees-horizontally">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample13</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -rotate-180degrees-horizontally */
  48. .item_box.-rotate-180degrees-horizontally .item_mask {
  49.   transform: rotateY(-180deg);
  50.   transition: transform 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-rotate-180degrees-horizontally .item_link:hover .item_mask {
  53.   transform: rotateY(0deg);
  54. }

【サンプル14】文字とマスクを360度回転しながら表示

【実装コード14】文字とマスクを360度回転しながら表示

HTML
Copy
  1. <div class="item_box -rotate-360degrees">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample14</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -rotate-360degrees */
  48. .item_box.-rotate-360degrees .item_mask {
  49.   transition: transform 0.5s ease, opacity 0.5s ease;
  50. }
  51. .item_box.-rotate-360degrees .item_link:hover .item_mask {
  52.   transform: rotate(360deg);
  53. }

【サンプル15】文字とマスクを中央から360度回転しながら拡大表示

【実装コード15】文字とマスクを中央から360度回転しながら拡大表示

HTML
Copy
  1. <div class="item_box -rotate-360degrees-from-center">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample15</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -rotate-360degrees-from-center */
  48. .item_box.-rotate-360degrees-from-center .item_mask {
  49.   transform: scale(0);
  50.   transition: transform 0.5s ease, opacity 0.5s ease;
  51. }
  52. .item_box.-rotate-360degrees-from-center .item_link:hover .item_mask {
  53.   transform: scale(1) rotate(360deg);
  54. }

【サンプル16】画像を右にスライドしながらマスクと文字を左から表示

【実装コード16】画像を右にスライドしながらマスクと文字を左から表示

HTML
Copy
  1. <div class="item_box -slide-to-the-right">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample16</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -slide-to-the-right */
  48. .item_box.-slide-to-the-right .item_mask {
  49.   width: 50%;
  50.   left: -50%;
  51.   transition: left 0.5s ease, opacity 0.5s ease;
  52. }
  53. .item_box.-slide-to-the-right .item_link:hover .item_mask {
  54.   left: 0;
  55. }
  56. .item_box.-slide-to-the-right .item_image img {
  57.   transition: margin-left 0.5s ease
  58. }
  59. .item_box.-slide-to-the-right .item_link:hover .item_image img {
  60.   margin-left: 50%;
  61. }

【サンプル17】左右からマスクで閉じながら文字を表示

【実装コード17】左右からマスクで閉じながら文字を表示

HTML
Copy
  1. <div class="item_box -close-from-left-and-right">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask-left"></div>
  8.       <div class="item_mask-right"></div>
  9.       <div class="item_mask-text">sample17</div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -close-from-left-and-right */
  48. .item_box.-close-from-left-and-right .item_mask-left {
  49.   width: 50%;
  50.   height: 100%;
  51.   background-color: rgba(0, 0, 0, 0.8);;
  52.   position: absolute;
  53.   top: 0;
  54.   left: -50%;
  55.   opacity: 0;
  56.   transition: left 0.5s ease, opacity 0.5s ease;
  57. }
  58. .item_box.-close-from-left-and-right .item_link:hover .item_mask-left {
  59.   left: 0;
  60.   opacity: 1;
  61. }
  62. .item_box.-close-from-left-and-right .item_mask-right {
  63.   width: 50%;
  64.   height: 100%;
  65.   background-color: rgba(0, 0, 0, 0.8);
  66.   position: absolute;
  67.   top: 0;
  68.   left: 100%;
  69.   opacity: 0;
  70.   transition: left 0.5s ease, opacity 0.5s ease;
  71.   opacity: 1;
  72. }
  73. .item_box.-close-from-left-and-right .item_link:hover .item_mask-right {
  74.   left: 50%;
  75. }
  76. .item_box.-close-from-left-and-right .item_mask-text {
  77.   opacity: 0;
  78. }
  79. .item_box.-close-from-left-and-right .item_link:hover .item_mask-text {
  80.   transition: opacity 0.6s step-end;
  81.   opacity: 1;
  82. }

【サンプル18】ドアを閉めるようにマスクと文字を表示

【実装コード18】ドアを閉めるようにマスクと文字を表示

HTML
Copy
  1. <div class="item_box -close-the-door">
  2.   <a class="item_link" href="#">
  3.     <div class="item_content">
  4.       <div class="item_image">
  5.         <img src="image URL" alt="サンプル">
  6.       </div>
  7.       <div class="item_mask">
  8.         <div class="item_mask-text">sample18</div>
  9.       </div>
  10.     </div>
  11.   </a>
  12. </div>
CSS
Copy
  1. .item_box * {
  2.   box-sizing: border-box;
  3. }
  4. .item_box {
  5.   width: 100%;
  6.   max-width: 250px; /* 幅調整 */
  7. }
  8. .item_link {
  9.   display: block;
  10. }
  11. .item_content {
  12.   position: relative;
  13.   overflow: hidden;
  14. }
  15. .item_image img {
  16.   width: 100%;
  17.   height: auto;
  18.   vertical-align: top;
  19. }
  20. .item_mask {
  21.   width: 100%;
  22.   height: 100%;
  23.   position: absolute;
  24.   top: 0;
  25.   left: 0;
  26.   background-color: rgba(0, 0, 0, 0.8);
  27.   opacity: 0;
  28. }
  29. .item_mask-text {
  30.   width: 100%;
  31.   padding: 0.5em;
  32.   font-size: 0.8em;
  33.   color: #fff;
  34.   text-align: center;
  35.   position: absolute;
  36.   top: 50%;
  37.   left: 0;
  38.   transform: translateY(-50%);
  39. }
  40. .item_text {
  41.   margin-top: 10px;
  42.   text-align: center;
  43. }
  44. .item_box .item_link:hover .item_mask {
  45.   opacity: 1;
  46. }
  47. /* -close-the-door */
  48. .item_box.-close-the-door .item_content {
  49.   perspective: 1000px;
  50.   perspective-origin: 0 50%;
  51.   overflow: visible;
  52. }
  53. .item_box.-close-the-door .item_mask {
  54.   transform: rotateY(-90deg);
  55.   transform-origin: 0;
  56.   transition: transform 0.5s ease, opacity 0.5s ease;
  57. }
  58. .item_box.-close-the-door .item_link:hover .item_mask {
  59.   transform: rotateY(0deg);
  60. }

HTML・CSS入門におすすめの1冊

アイコン画像

もみじ

Web製作未経験でも読みやすい構成で、初学者でも安心して学習することができます。

実践的な内容を学ぶことができ解説も丁寧で分かりやすく、基礎的な内容はこの1冊で学ぶことができます。

-Webデザイン
-,