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

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

序文

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 エディターの統合に関する詳細なチュートリアル

推薦する

CentOS8 で Docker を使用してオープンソース プロジェクト Tcloud をデプロイするチュートリアル

1. Dockerをインストールする1. 仮想マシンに Centos7 をインストールしました。Li...

CSSスタイルのカスケーディングルールの詳細な説明

CSS スタイル ルール構文スタイルは、CSS の基本単位です。各スタイル ルールは、セレクターと宣...

MySQL のスロークエリの方法と例

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

CSS3 は反転可能なホバー効果を実現します

CSS3 は反転可能なホバー効果を実装します。具体的なコードは次のとおりです。 1.css /*基本...

JavaScriptでカレンダー効果を素早く実装

この記事では、カレンダー効果を素早く実現するためのJavaScriptの具体的なコードを例として紹介...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

Linux でマウントされたファイルシステムの種類を表示する方法

序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...

XHTML 入門チュートリアル: よく使われる XHTML タグ

<br />記事と同様に、Web ページにも明確な段落と重要度の異なるタイトルが必要です...

見落としがちなMySQLのCOLLATIONの例の詳細な説明

序文MySQL データベースの文字列型は、CHAR、VARCHAR、BINARY、BLOB、TEXT...

HTMLの基礎: HTMLの基本構造

HTML ハイパーテキスト ドキュメントの基本構造は、ドキュメント ヘッダーとドキュメント本体の 2...

Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

目次コンテナデータボリュームとはコンテナ データ ボリュームが必要なのはなぜですか?使用データボリュ...

MySQL 永続統計の詳細な説明

1. 永続的な統計情報の重要性:統計は、MySQL が実行プランを生成するためのガイドとして使用され...

JavaScript における型の必須および暗黙的な変換の詳細な説明

目次1. 暗黙的な変換二重等号での変換ブール型変換「+」と「-」 2. 強制型変換' ...

VUEのデータプロキシとイベントの詳細な説明

目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...