【スポンサーリンク】

[CSS]Amazonリンクをnote風に画像を大きくした

[CSS]Amazonリンクをnote風に画像を大きくした
  • Amazonリンクをnoteのデザインを参考に、画像を大きくして説明文を省略しました。
  • CSSを更新して、デスクトップとモバイル両方での表示を変更し、商品名、画像、ボタンのレイアウトを調整しました。
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. Amazonリンクのスタイルを変更

Amazonリンクのスタイルを変更しました。
今回は noteを参考にして、画像を大きくし、説明文を省略するようにしました。

Amazonリンクのスタイルを変更

Amazonリンクの例↓

2. 更新後のCSS

/** amazon リンク
 * ブログカードに寄せた * 
 * 2024-08-31 note風にした
 */

.product-item-box {
  display: flex;
  padding: 0;
  width: 100%;
  margin-top: 10px;
  border: 1px solid rgba(93, 89, 75, 0.5);
  border-radius: 4px;
}

.product-item-thumb {
  order: 2;
  width: 225px !important;
  height: 225px !important;
  padding: 16px;
  margin: 0 !important;
}

.product-item-thumb a {
  margin: 0 !important;
}

.product-item-thumb img {
  vertical-align: middle;
  width: 193px;
  height: 193px;
  object-fit: contain;
}

.product-item-thumb-l,
.product-item-thumb .switchimages {
  display: none;
}

.product-item-content {
  order: 1;
  margin: 0;
  margin-top: auto;
  margin-bottom: auto;
  padding: 16px;
  vertical-align: middle;
  -webkit-box-orient: vertical;
  width: calc(100% - 225px);
}
.product-item-title {
  margin: 0;
}
.product-item-title a {
  font-size: 20px;
  font-weight: 600;
  color: var(--cocoon-text-color);
  text-decoration-line: none;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin-bottom: 16px;
}

.product-item-buttons {
  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;
  justify-content: space-between !important;
}
.product-item-buttons > * {
  flex: 1 0 auto;
  padding-bottom: 8px !important;
}
.product-item-buttons > *:nth-of-type(1) {
  margin-left: 0 !important;
}
.product-item-buttons > *:nth-of-type(3) {
  margin-right: 0 !important;
}

.product-item-buttons a {
  margin: 0;
  padding: 4px 12px;
  font-size: 12px;
  border-radius: 3px;
}

.shoplinkamazon a {
  background: #a08010;
}
.shoplinkrakuten a,
.shoplinkyahoo a {
  background: #5d594b;
}
.shoplinkyahoo a {
  background: #7d692b;
}

.product-item-snippet {
  flex-direction: column;
  font-size: 0.8em;
}

.product-item-maker {
  font-size: 12px;
  margin-top: 4px;
  margin-bottom: 4px;
}
.product-item-price .item-price {
  font-weight: 700;
  font-size: 14px;
  color: var(--cocoon-text-color);
}

.product-item-admin {
  right: 6px;
  left: auto;
}

.product-item-description,
.product-item-review,
.product-item-error {
  display: none;
}

/** amazonリンクのモバイル表示を整理 */
@media screen and (max-width: 480px) {
  .product-item-box {
    flex-flow: column;
    width: auto;
  }
  .product-item-thumb {
    order: 1;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .product-item-content {
    order: 2;
    margin: 12px;
    width: auto;
    margin-top: 6px;
  }
  .product-item-buttons > * {
    width: auto;
  }
  .product-item-price .item-price {
    font-size: 16px;
  }
}
@media print {
  .product-item-box {
    display: none;
  }
}

2-1. 【ポイント】object-fit: contain(画像の縦横比)

商品画像の表示には、object-fit: contain; を設定しています。

width, heightを125pxに固定して、その範囲内で縦横比を維持しつつなるべく大きく表示するようにしています。

  • コンテンツの元のアスペクト比(縦横比)を保持する
  • コンテンツ全体が表示されるようにサイズを調整する

特に、異なるサイズや縦横比の画像を統一されたレイアウトで表示したい場合に有用です。

2-2. .product-item-boxのHTML構造

CocoonテーマのAmazonリンクは、以下のようなHTML構造になっています。

.product-item-box.no-icon
  • 【画像】figure.product-item-thumb
    • 【リンク】a.product-item-thumb-link.image-thumb
      • 【画像】img.product-item-thumb-image
      • div.product-item-thumb-l.image-content
      • img
    • a.swatchimages
      • [複数の div.image-thumb.swatch-image-thumb.si-thumb]
      • img
      • div.image-content
        • img
  • 【内容】div.product-item-content.cf
    • 【商品名】div.product-item-title
      • a.product-item-title-link
    • 【詳細】div.product-item-snippet
      • 【メーカー】div.product-item-maker
      • 【価格】div.product-item-price
        • span.item-price
        • span.acquired-date
      • 【説明文】div.product-item-description
      • 【レビュー】div.product-item-review.item-review
        • span.fa.fa-comments-o
        • a.product-item-review-link.item-review-link
    • 【ボタン】div.product-item-buttons
      • div.shoplinkamazon
      • div.shoplinkrakuten
      • div.shoplinkyahoo
    • div.product-item-admin
      • a.cache-delete-link
.product-item-box.no-icon
- figure.product-item-thumb
  - a.product-item-thumb-link.image-thumb
    - img.product-item-thumb-image
    - div.product-item-thumb-l.image-content
      - img
  - a.swatchimages
    - [複数の div.image-thumb.swatch-image-thumb.si-thumb]
      - img
      - div.image-content
        - img
- div.product-item-content.cf
  - div.product-item-title
    - a.product-item-title-link
  - div.product-item-snippet
    - div.product-item-maker
    - div.product-item-price
      - span.item-price
      - span.acquired-date
    - div.product-item-description
    - div.product-item-review.item-review
      - span.fa.fa-comments-o
      - a.product-item-review-link.item-review-link
  - div.product-item-buttons
    - div.shoplinkamazon
      - a
    - div.shoplinkrakuten
      - a
    - div.shoplinkyahoo
      - a
- div.product-item-admin
  - a.cache-delete-link

3. 従来のCSSを振り返る

/** amazon リンクをブログカードに寄せた * */
.product-item-box {
  padding: 1.6% 2.2% 2%;
  width: 100%;
  margin-top: 10px;
  border: 1px solid rgba(93, 89, 75, 0.5);
  border-radius: 4px;
}

.product-item-error {
  display: none;
}

.product-item-thumb {
  position: relative;
  float: right !important;
  margin-left: auto;
  margin-right: 0 !important;
}

.product-item-thumb a {
  margin: 0 !important;
}

.product-item-thumb img {
  margin-left: auto !important;
  margin-right: auto !important;
}

@media screen and (min-width: 769px) {
  .product-item-box {
    display: block !important;
  }
  .product-item-content {
    padding-left: 0;
  }
}

.product-item-content {
  display: block;
  position: relative;
  margin: 0;
}

.product-item-title a {
  margin-top: 8px;
  font-size: 18px;
  font-weight: 600;
  color: var(--cocoon-text-color);
  text-decoration-line: none;
}

@media screen and (max-width: 1023px) {
  .product-item-title a {
    font-size: 16px;
  }
}

@media screen and (max-width: 480px) {
  .product-item-content {
    text-align: left !important;
  }
}

.product-item-admin {
  right: 6px;
  left: auto;
}

.product-item-snippet {
  font-size: 14px;
}
@media screen and (max-width: 834px) {
  .product-item-box .product-item-title a {
    font-size: 15px;
    font-weight: 900;
    line-height: 18px;
  }
  .product-item-box .product-item-description {
    line-height: 16.8px;
    font-size: 14px;
  }
}
/** amazonリンクのモバイル表示を整理 */

@media screen and (max-width: 834px) {
  .booklink-link2,
  .kaerebalink-link1,
  .tomarebalink-link1,
  .product-item-buttons {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .booklink-link2 > * > a,
  .kaerebalink-link1 > * > a,
  .tomarebalink-link1 > * > a,
  .product-item-buttons > .shoplinkyahoo > a {
    font-size: 9px;
  }
  .booklink-link2 > *,
  .kaerebalink-link1 > *,
  .tomarebalink-link1 > *,
  .product-item-buttons > * {
    width: auto;
  }
}

/**amazonリンクの表示順序を変更*/

.product-item-title {
  margin-top: 4px;
}

.product-item-title a {
  font-size: 20px;
}

.product-item-snippet {
  display: flex;
  flex-direction: column;
  font-size: 0.8em;
}

@media screen and (max-width: 1023px) {
  .product-item-title a {
    font-size: 18px;
  }
  .product-item-snippet {
    font-size: 14px;
  }
}

.product-item-description {
  order: 1;
  margin-bottom: 6px;
}

.product-item-maker {
  order: 2;
  font-weight: 700;
  margin-right: 10px;
  display: none;
}

.product-item-price {
  order: 3;
}

.item-price {
  font-weight: 700;
}

.product-item-review {
  order: 4;
  margin-top: 6px;
}
/** Amazonリンクを控えめにする */
.item-price {
  color: var(--cocoon-text-color);
}
.shoplinkamazon a {
  background: #a08010;
}
.shoplinkrakuten a,
.shoplinkyahoo a {
  background: #5d594b;
}
.shoplinkyahoo a {
  background: #7d692b;
}
/** Amazonリンク(モバイル版)*/
@media screen and (max-width: 480px) {
  .entry-content > .product-item-box {
    margin-left: auto;
    margin-right: auto;
    width: calc(100vw - 24px);
  }
  .product-item-admin {
    right: 12px;
  }
  .product-item-admin .cache-delete-link {
    margin-right: 0;
  }
  .product-item-content {
    width: calc(100vw - 44px) !important;
  }
}
こちらもどうぞ。
Amazon商品紹介リンクをショートコードで入れられるようにした
Amazon商品紹介リンクをショートコードで入れられるようにした
Cocoonには商品紹介のショートコードがあります。 これまでは手動でAmazonアソシエイトツールバーでリンクを取得していたんですが、これがまぁ大変。 ショートコードを利用するとISDNなどの商品コードだけで画像や商品名を表示することできることに気づきました。 これまでのやり方は大変だった 見出しやボタンを組み合わせて、作っていました。 画像リンクやテキストリンクなどをコピーしてくるのに、かなり時間がかかります。 それを、こんなふうにしました。 見た目にもコンパクトだし、何...

ブログをnote風のデザインにしてみた(ワンカラムデザイン)
ブログをnote風のデザインにしてみた(ワンカラムデザイン)
今回はCocoonとCSSを使って、note風のシンプルなブログデザインに変更してみました。 note風デザインの記事一覧 「note(ノート)」というブログサービスをご存知ですか? ブログサービスといえば、ヤフーブログ、アメブロ、はてなブログといろいろありますが、noteの特徴は簡単にいえば、投稿されたブログにカンパしたり、有料記事として公開することができること。 でも、それ以上にnoteの特徴になっているのは、シンプルなデザインだと思います。 2カラムのアメブロと比べてみ...
QRコードを読み込むと、関連記事を確認できます。

[CSS]Amazonリンクをnote風に画像を大きくした
【スポンサーリンク】
タイトルとURLをコピーしました