ホームページ >ウェブフロントエンド >CSSチュートリアル >太字時のホバー時のインライン要素の水平方向のシフトを防ぐ方法は?

太字時のホバー時のインライン要素の水平方向のシフトを防ぐ方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-04 04:33:41275ブラウズ

How to Prevent Inline Element Horizontal Shift on Hover When Bolding?

ホバー時にインライン要素が太くなった後のオフセットの問題を解決します

HTML リストと CSS を使用して水平メニューを作成する場合、ユーザーはリンクを太く設定すると、サスペンド時にメニュー リンクがオフセットしてしまいます。

この問題を解決するには、次の解決策を採用できます:

幅を事前設定

同じ内容とスタイルを持つ非表示の疑似要素を使用する親ホバースタイルとして。データ属性 (タイトルなど) をコンテンツのソースとして使用します。

li {
  display: inline-block;
  font-size: 0;
}

li a {
  display: inline-block;
  text-align: center;
  font: normal 16px Arial;
  text-transform: uppercase;
}

a:hover {
  font-weight: bold;
}

/* SOLUTION */
/* The pseudo element has the same content and hover style, so it pre-sets the width of the element and visibility: hidden hides the pseudo element from actual view. */
a::before {
  display: block;
  content: attr(title);
  font-weight: bold;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}
<ul>
  <li><a href="#" title="height">height</a></li>
  <li><a href="#" title="icon">icon</a></li>
  <li><a href="#" title="left">left</a></li>
  <li><a href="#" title="letter-spacing">letter-spacing</a></li>
  <li><a href="#" title="line-height">line-height</a></li>
</ul>

以上が太字時のホバー時のインライン要素の水平方向のシフトを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。