2026.06.25(木) / 04:08

CSSのバグ修正

ID
38399
Published
2026-06-25 04:08
Modified
2026-06-25 04:08
Author
khiro
Categories
デフォルト

chromeで上手く行っているが、

safariで崩れている。

「崩れている」というよりも、二本線が上にずれている。

これを修正していこう。

AIではなく、他人ではなく、自分の頭で考える。

それが確かな未来を作る。

自分の感覚を信じ切るしかない。

これまでもそうやってやってきた。

ボタンのHTML

button要素の中に線が二つとMenuというテキストが一つある。

<button class="site-menu-toggle" type="button" aria-controls="site-menu-panel" aria-expanded="false">
        <span class="site-menu-toggle__line"></span>
        <span class="site-menu-toggle__line"></span>
        <span class="site-menu-toggle__text">Menu</span>
      </button>

ボタンのCSS

button要素

.design-refresh .site-menu-toggle {
    display: inline-grid;
    grid-template-columns: 20px auto;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

一つ目の線

.design-refresh .site-menu-toggle__line {
    grid-column: 1;
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    transition: transform 0.2s ease;
}

二つ目の線

.design-refresh .site-menu-toggle__line + .site-menu-toggle__line {
    margin-top: -10px;
}

AIは有効活用する

車がある時代に馬車を使わないのと同じように、AIがある時代に自分の頭を使わないという方針も大事になってくる。

AI × 自分の頭

これで、加速しよう

原因はここっぽい

二つ目の線

.design-refresh .site-menu-toggle__line + .site-menu-toggle__line {
    margin-top: -10px;
}

margin-top: -10px; の部分はブラウザによって解釈差があるらしい

試しにchromeとsafariで、この指定を外してみたら、

同じ見た目になった。

修正する

修正箇所は、header.phpの52行目

      <button class="site-menu-toggle" type="button" aria-controls="site-menu-panel" aria-expanded="false">
        <span class="site-menu-toggle__line"></span>
        <span class="site-menu-toggle__line"></span>
        <span class="site-menu-toggle__text">Menu</span>
      </button>

これを以下に修正する。

<button class="site-menu-toggle" type="button" aria-controls="site-menu-panel" aria-expanded="false">
  <span class="site-menu-toggle__icon" aria-hidden="true">
    <span class="site-menu-toggle__line"></span>
    <span class="site-menu-toggle__line"></span>
  </span>
  <span class="site-menu-toggle__text">Menu</span>
</button>

二つの線を専用の箱に入れた。

design-refresh.cssの1861行目で定義されているbutton要素のCSSは、

.design-refresh .site-menu-toggle {
 display: inline-grid;
 grid-template-columns: 20px auto;
 align-items: center;
 gap: 10px; 
 min-height: 42px;
 padding: 0 14px;
 border-radius: 999px;
 font-size: 12px;
 font-weight: 700;
}

以下に修正する。

.design-refresh .site-menu-toggle {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 min-height: 42px;
 padding: 0 14px;
 border-radius: 999px;
 font-size: 12px;
 font-weight: 700;
}

以下の専用の箱のCSSを追記した。

.design-refresh .site-menu-toggle__icon {
 display: flex;
 flex-direction: column;
 justify-content: center;
 gap: 8px;
 width: 20px;
}

design-refresh.cssの1873行目で定義されている線のCSSは、

.design-refresh .site-menu-toggle__line {
 grid-column: 1;
 display: block;
 width: 18px;
 height: 2px;
 background: currentColor;
 transition: transform 0.2s ease;
}

以下のように変更する

.design-refresh .site-menu-toggle__line {
 display: block;
 width: 18px;
 height: 2px;
 background: currentColor;
 transition: transform 0.2s ease;
}

以下の記述は削除する

.design-refresh .site-menu-toggle__line + .site-menu-toggle__line {
  margin-top: -10px;
}

修正完了

safari

chrome

safariとchromeで、差異が発生している

chromeの本番環境を見ていた

これは実務でよくある

先ほどの画像は、本番環境(https://ki-hi-ro.com/

MAMPのローカル環境(http://localhost:8888/)では、差異は発生していなかった

safariもchromeも以下のようになっていた