CSS でコンテンツが長すぎる問題を解決する方法の詳細な説明

CSS でコンテンツが長すぎる問題を解決する方法の詳細な説明

CSS を記述するときに、デザインに存在する重要なケースを忘れてしまうことがあります。たとえば、コンテンツの長さが予想を超え、その可能性を考慮できない場合、ページのデザインが崩れる可能性があります。 CSS が常に期待どおりに動作することを保証することはできませんが、少なくともさまざまな種類のコンテンツでテストして、このような事態が発生する可能性を減らすことができます。

この記事では、実際の Web サイトのさまざまな UI の問題を調査し、これらの Web サイトが壊れる可能性がある理由を説明します。準備はできたか?かかって来い!

右側/左側に小さなアイコンがあるボタン

これはアコーディオンのオン/オフボタンです。ボタンの右側には、クリック可能であることを強調する小さなアイコンがあります。ただし、ボタン領域の長さが十分でない場合は、ボタン上のテキストがアイコンを覆ってしまいます。これは、長いコンテンツを考慮していない場合に発生する可能性があります。

解決策の 1 つは、アイコンのサイズに合わせて右側に十分なパディングを追加することです。

。ボタン {
  右パディング: 50px;
}

アイコンが表示される安全な領域を作成するためにパディングを増やした点に注目してください。これで、ボタンのレイアウトが乱れることがなくなります。

入力プレースホルダー

フォーラムでフローティング コールアウト モードを使用する場合、特にボタンが右側にある場合は、プレースホルダーが長すぎることによる問題を回避するために十分なテストを実施する必要があります。

1 つの解決策は、ボタンに対して position: relative を追加することです。これにより、ボタンがプレースホルダーを覆うようになります。

長い名前

このデザインでは、画像が左側に浮かび、著者の名前が右側に表示されます。右側の情報が長すぎる場合はどうなりますか?レイアウトが崩れることは間違いありません。

ここでの問題は、画像を左にフロートしただけで、著者名が画像の隣に移動することですが、これは著者名が短い場合にのみうまく機能します。

ページレイアウトをより適応性の高いものにするには、両方の要素の幅を広げる必要があります。より推奨されるアプローチは、このような小さなコンポーネントに適した flexbox を使用することです。

記事に長いリンクや単語が含まれている

記事には非常に長いハイパーリンクや単語が含まれている場合があり、ビューポートが広いと問題が発生しないことがあります。しかし、携帯電話やタブレットなどの小型デバイスでは、煩わしい水平スクロール バーが表示される可能性があります。

この問題には 2 つの解決策があります。

1) CSSの単語区切りを使用する

.記事本文 p {
  単語区切り: 全区切り;
}

word-break プロパティはブラウザによって動作が異なるため、使用時には十分にテストする必要があります。

2) 外側の要素にオーバーフローとテキストオーバーフローを追加する

.記事本文 p {
  オーバーフロー: 非表示;
  テキストオーバーフロー: 省略記号;
}

このソリューションは、長いリンクに適しています。長い単語の場合は、word-break を使用することをお勧めします。

記事タグが長すぎる

カードに記事ラベルを配置する場合、パディングを設定するだけでサイズを決めるのが理想的です。ラベルの内容が長すぎる場合、高さと幅をハードコーディングするとレイアウトが崩れる可能性があります。

ラベルの最小幅を設定することもできます。パディングで囲まれたラベル コンテンツ要素に min-width 属性を使用すると、幅が動的に変更され、問題が解決されます。

パーマリンク付きのセクションヘッダー

この例では、段落見出しの右側に「詳細を表示」リンクがあります。 CSS を記述する方法はいくつかありますが、その 1 つはリンクに絶対位置を使用することです。

タイトルが長すぎると、問題が発生する可能性があります。より良い解決策は、十分なスペースがない場合にリンクを自動的に次の行に圧縮するフレックスボックス レイアウトを使用することです。

.ヘッダー-2 {
  ディスプレイ: フレックス;
  flex-wrap: ラップ;
  コンテンツの両端揃え: スペースの間;
  アイテムの位置を中央揃えにします。
}

上記の技術は「整列モバイルパーセル」と呼ばれます。

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

<<:  ウェブサイト構築経験概要

>>:  Vueがsweetalert2プロンプトコンポーネントを統合する際の問題についてお話ししましょう

推薦する

Nginxの現在の制限設定の詳細な説明

この記事では、最も単純なものから最も複雑なものまで、Nginx の現在の制限構成を例を使って説明しま...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

ReactのPropsの簡単な比較

目次クラスコンポーネントのプロパティ比較浅い同等の浅い比較機能コンポーネントの簡単な比較先週面接に行...

VueRouterルーティングの詳細な説明

目次vueルーター1. ルーティングの概念を理解する1.1 ルーティングとは何ですか? 1.2. バ...

Webpack パッケージング CSS 背景画像パスの問題に対する完璧なソリューション

vue コンポーネントのスタイル タグ内には、背景画像を使用する次の CSS コードがあります。 背...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

Nginx の add_header ディレクティブに注意する必要があるのはなぜですか?

序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...

JS ネイティブ 2048 ゲーム ソース コード共有 (インターネットの最新情報)

最近、アルゴリズムについて学んでいて、アルゴリズムで動く小さなゲームに出会いました。そのコードは次の...

JavaScriptでシンプルなスクロールウィンドウを実装する

この記事では、スクロールウィンドウを実装するためのJavaScriptの具体的なコードを参考までに紹...

位置固定オフセット問題を解決する方法の詳細な説明

質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...

vue フロントエンド HbuliderEslint リアルタイム検証 自動修復設定

目次HBuilderX での ESLint プラグインのインストールカスタム eslint-js ル...