ホバー生成の境界線によって生じる要素の移動を解決する方法

ホバー生成の境界線によって生じる要素の移動を解決する方法

序文

hover疑似クラスが要素に境界線を追加すると、要素内のコンテンツがずれることがあります。box box-sizing: border-boxを設定し、要素の幅と高さを指定しても、コンテンツは境界線によって圧迫されたままです。たとえば、次のような状況です。

<スタイル タイプ="text/css" メディア="screen">
    。テスト {
        高さ: 30vmin;
        幅: 30vmin;
        背景: 水色;
        ボックスのサイズ: 境界線ボックス;
    }
    .test:hover {
        境界線: 5px 黒一色;
    }
</スタイル>
<div class="test">
    これはdivです。
</div> 

理由は明らかです。要素のサイズは変更されていません(要素の幅と高さが設定されていないか、 box-sizing: border-boxが使用されている場合、要素のサイズは変更されます)。box box-sizing: border-box効果的ですが、突然追加された境界線により、要素内のコンテンツが押し出されています。ボックスモデルは、外側から内側へのmarginborderpadding 、およびcontentであるため、新しく追加されたborderにより、必然的にcontentが小さく圧縮され、 contentの境界座標も変更され、視覚的なコンテンツが移動します。したがって、問題の解決策は、境界線の追加がcontentの位置に影響を与えないようにすることです。

要素に境界線を追加する

境界線が突然現れると、元のレイアウトが変わり、コンテンツが移動します。この場合、境界線を以前のレイアウトにそのまま残しておくことができます。

。テスト {
    高さ: 30vmin;
    幅: 30vmin;
    背景: 水色;
    境界線: 5px 透明実線;
    ボックスのサイズ: 境界線ボックス;
}
.test:hover {
    境界線: 5px 黒一色;
}

ボックスシャドウの使用

ボックス モデルのスペースを占有しないbox-shadowまたはoutlineを使用することもできます。

.test:hover {
    /* 境界線: 5px 黒一色; */
    ボックスシャドウ: 0 0 0 5px 黒;
    アウトライン: 5px 黒
}

パディングを使用する

paddingサイズを変更することで、 border用のスペースを確保できます。

。テスト {
    高さ: 30vmin;
    幅: 30vmin;
    背景: 水色;
    ボックスのサイズ: 境界線ボックス;
    パディング: 5px;
}
.test:hover {
    パディング: 0;
    境界線: 5px 黒一色;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  ブートストラップ学習体験のまとめ - CSS スタイル デザイン共有

>>:  Apache Tomcat と IDEA エディターの統合に関する詳細なチュートリアル

推薦する

nginx-ingress-controller ログ永続化ソリューションのソリューション

最近、nginx-ingress-controller のアプリケーションについて説明した公開アカウ...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

MYSQLパターンマッチングREGEXPの使用に関する一般的な話など

のようにLIKE ではデータ全体が一致する必要がありますが、REGEXP では部分的な一致のみが必要...

vue3 学習ノートにおける axios の使用の変更の概要

目次1. axioの基本的な使い方2. クロスドメインの問題を解決するには? 3. パッケージ4. ...

要素の属性を削除する JS removeAttribute() メソッド

JavaScript では、要素の removeAttribute() メソッドを使用して、指定され...

Windows 10 でカスタムドメイン名をバインドするように Hexo と GitHub を構成する方法

Hexo は Windows 10 でカスタムドメイン名を GitHub にバインドしますまずドメイ...

SQL文のパフォーマンスを分析するための標準的な要約

この記事では、explain を使用して SQL ステートメントを分析する方法を紹介します。実際、イ...

MySQL 集計統計データの低速クエリの最適化

前面に書かれた注文テーブル、アクセス記録テーブル、商品テーブルなど、日常生活でデータベースを操作する...

MySQL のタイムスタンプと日付時刻のタイムゾーンの問題によって生じる DTS の落とし穴の詳細な説明

目次MySQL で現在の時刻を表現するにはどうすればよいでしょうか?結論は確認するピットMySQL ...

MySQLの手順を完全に削除する

目次1. まずMySQLサーバーを停止する2. MySQLサーバーをアンインストールする3. MyS...

シンプルなタブバー切り替えケースを実現するJavaScript

この記事では、タブバーの切り替え効果を簡単に実現するためのJavaScriptの具体的なコードを参考...

ES6拡張演算子の理解と使用シナリオ

目次1. 適用メソッドを置き換え、関数を呼び出すときにパラメータを処理する2. 残りパラメータ(残り...

マウスで画像を動かすJavaScript

この記事では、マウスの動きに追従する画像を実現するためのJavaScriptの具体的なコードを参考ま...

Docker共通コマンドの詳しい解説 Study03

目次1. ヘルプコマンド2. ミラーコマンド3. コンテナコマンド1. ヘルプコマンド1. 現在のD...

Vueのウェブページスクリーンショット機能の詳しい説明

最近、プロジェクトで写真をアップロードする要件があるのですが、顧客がアップロードする写真のサイズがま...