検索
ホームページウェブフロントエンドCSSチュートリアルCSS でさまざまな長さのテキストを処理するためのいくつかのヒント

CSS でさまざまな長さのテキストを処理するためのいくつかのヒント

[推奨チュートリアル: CSS ビデオ チュートリアル ]

CSS を使用してレイアウトを構築するときは、長いテキストと短いテキストを考慮することが重要ですテキストの長さが変更されたときに何をする必要があるかを正確に把握しておけば、多くの不要な問題を回避できます。

多くの場合、単語を追加または削除すると UI の外観が変化したり、最悪の場合、元のデザインが壊れてアクセスできなくなる可能性があります。 CSS を学び始めたばかりの頃、私は単語の追加や削除の力を過小評価していました。この記事では、CSS でさまざまな長さのテキストを処理するためにすぐに使用できるいくつかのテクニックを紹介します。

質問

テキスト コンテンツを処理する手法について説明する前に、まず問題を説明しましょう。垂直ナビゲーションがあると仮定します。

#特に多言語 Web サイトで作業している場合、名前の長さは変わる可能性があります。上の例では、名前が長くなるにつれて、2 行目に折り返されます。ここにいくつかの質問があります。

  • このテキストは切り詰めるべきでしょうか。

  • 複数行に置き換えるべきですか?その場合、最大何行まで折り返すことができますか?

このケースには予想より多くの単語が含まれていますが、単語が長すぎるとどうなりますか? デフォルトでは、単語はコンテナーからオーバーフローします。

#プロのフロントエンド開発者として、この状況で何をすべきかを決定することが重要です。幸いなことに、この問題を解決するために特別に設計された CSS プロパティがいくつかあります。

さらに、問題は長いコンテンツだけではなく、短いコンテンツも UI を壊すか、少なくとも見た目が奇妙になる可能性があります。以下の例のように、

ok テキストを含むボタンの幅は非常に狭いです。これが致命的な問題であるとは言いませんが、ボタンが弱く見えたり、ボタンが見えにくくなったりする可能性があります。

この状況ではどうすればよいでしょうか?ボタンに min-width を設定してみてはいかがでしょうか?コンテンツの長さに関係なく、安全な幅を提供します。

長いコンテンツ

問題を理解したところで、長いコンテンツを処理するための解決策を提供できる CSS テクニックを詳しく掘り下げてみましょう。

overflow-wrap

CSS プロパティ overflow-wrap は、分割できない文字列が長すぎて折り返しボックスに収まらない場合に、その文字列が重なり合うのを防ぐために使用されます。オーバーフローの場合、ブラウザはそのような単語の改行を許可しますか。

Hyphens

CSS プロパティ hyphens は、折り返すときに単語を接続するためにハイフンを使用する方法をブラウザーに指示します。ハイフンの使用を完全に禁止したり、ブラウザがハイフンを使用するタイミングを制御したり、ハイフンを使用するタイミングをブラウザに決定させることもできます。

.element {
  hyphens: auto;
}

テキスト切り詰め処理

切り詰めとは、テキスト コンテンツがさらにあることを示すために文の末尾にドットを追加することを指します。

text-truncation 属性などはありませんが、機能する CSS プロパティがいくつか組み込まれています。

.element {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

複数行テキストの切り詰め処理

複数行を切り詰めたい場合は、line-clamp 属性を使用できます。

.element {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

これを機能させるには、display: -webkit-box を使用する必要があります。 -webkit-line-clamp切り捨て作業の最大行数を指定します。

この手法の欠点は、要素に padding を追加する場合に失敗しやすいことです。 padding を追加すると、次の行の一部が表示されるため、切り詰める必要があります。以下の画像を参照してください:

水平スクロール

単語の切り捨てや連結が常に可能であるとは限りません。たとえば、長い単語が新しい行に置き換えられると、JavaScript コードが読みにくくなることがあります。この場合、横スクロールすると読みやすくなります。

Padding

場合によっては、視覚的な問題に気づくまで padding を追加するのを忘れる可能性があります。次の質問について考えてみましょう:

这里有一个复选框列表,其中有一个非常接近它的兄弟项。发生这种情况的原因是网格上没有间距。这是来自Techcrunch网站的一个真实的例子。

短内容

这对大家来说并不常见,但在设计和构建UI时,也是一个要重要考虑的事项。

设置一个最小宽度

回到本文开头向大家展示的一个示例。 我们要如何增强它并使按钮看起来更好?

我们可以通过在按钮上添加min-width来解决此问题,这样一来,它就不会低于该宽度。

现在大家已经对问题及其解决方案有了一定的了解,我们来探索web上的一些用例和示例。

用例和示例

个人资料卡

这是长内容的常见示例。 很难预测名称的长度。 我们应该如何应对呢?

/* 方案1 */
.card__title {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

/* 方案2 */
.card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

导航项

在处理多语言布局时,内容长度会发生变化。考虑以下示例

LTR(从左到右)的导航项About比RTL(从右到左)的导航项大。在RTL中,项目看起来太小了。可点击区域太小不利于用户体验。我们能做什么?在这种情况下,最好为导航项设置最小宽度。

.nav__item {
  min-width: 50px;
}

文章内容

一个长词或一个链接是很常见的,尤其是在手机上。考虑以下

上面有一个很长的单词,它会上容器溢出导致水平滚动。我们可以通过使用overflow-wraphyphens来解决这个问题。

.article-content p {
  overflow-wrap: break-word;
}

购物车

产品名可以从一个单词到多行不等。在本例中,由于没有在它们之间添加足够的间距,产品名称太接近删除按钮。

这个解决方案可以通过添加paddingmargin来实现,这取决于你们的上下文,为了简单起见,这里使用margin解决方案。

.product__name {
  margin-right: 1rem;
}

Flexbox和长内容

flexbox

和长内容会发生某种行为,从而导致元素溢出其父元素。 考虑以下示例:

html

<div>
  <div>
    <h3 id="Ahmad-Shadeed">Ahmad Shadeed</h3>
  </div>
  <button>Follow</button>
</div>

css

.user {
  display: flex;
  align-items: flex-start;
}

.user__name {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

然而,当内容很长时,这就不起作用了。文本将溢出它的父文件。

原因是 flex 项不会收缩到其最小内容大小以下。为了解决这个问题,我们需要在flex项目.user__meta上设置min-width: 0

.user__meta {
  /* other styles */
  min-width: 0;
}

总结

我希望智米们已经学会了处理CSS中短内容和长内容的不同技巧。我很喜欢这篇文章,因为它帮助我记住了一些小细节,这对未来的项目会很有帮助。

原文地址:https://isheed.com/article/css-short-long-connt/

作者:shadeed

译文地址:https://segmentfault.com/a/1190000038665888

更多编程相关知识,请访问:编程视频!!

以上がCSS でさまざまな長さのテキストを処理するためのいくつかのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
非常に多くの色のリンク非常に多くの色のリンクApr 13, 2025 am 11:36 AM

最近の色に関するツール、記事、リソースの実行がありました。あなたの楽しみのためにここにそれらを丸くすることで、私がいくつかのタブを閉じてもらいましょう。

FlexBoxでの自動マージンの仕組みFlexBoxでの自動マージンの仕組みApr 13, 2025 am 11:35 AM

ロビンは以前にこれをカバーしたことがありますが、私は過去数週間でそれについての混乱を聞いて、他の人がそれを説明することに刺されたのを見ました、そして私は望んでいました

動く虹色の下線動く虹色の下線Apr 13, 2025 am 11:27 AM

サンドイッチサイトのデザインが大好きです。多くの美しい特徴の中には、これらの見出しがあり、レインボーの下線が下線を描いて、スクロールするときに動きます。そうではありません

新年、新しい仕事?グリッド駆動の履歴書を作成しましょう!新年、新しい仕事?グリッド駆動の履歴書を作成しましょう!Apr 13, 2025 am 11:26 AM

多くの人気のある履歴書設計は、グリッド形状にセクションを配置することにより、利用可能なページスペースを最大限に活用しています。 CSSグリッドを使用して、レイアウトを作成しましょう

リロードしすぎるという習慣からユーザーを分解する1つの方法リロードしすぎるという習慣からユーザーを分解する1つの方法Apr 13, 2025 am 11:25 AM

ページのリロードは何かです。ページが反応しないと思われるとき、または新しいコンテンツが利用可能であると信じるときにページを更新することもあります。時々私たちはただ怒っています

Reactを使用したドメイン駆動型のデザインReactを使用したドメイン駆動型のデザインApr 13, 2025 am 11:22 AM

Reactの世界でフロントエンドアプリケーションを整理する方法に関するガイダンスはほとんどありません。 (「正しいと感じる」までファイルを移動するだけです笑)。真実

非アクティブユーザーの検出非アクティブユーザーの検出Apr 13, 2025 am 11:08 AM

ほとんどの場合、ユーザーがアプリケーションに積極的に関与しているのか、一時的に非アクティブであるかを本当に気にしません。非アクティブ、意味、おそらく彼ら

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufooは常に統合に優れています。キャンペーンモニター、MailChimp、TypeKitなどの特定のアプリと統合されていますが、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。