border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

開発中に、非常に単純なテキストバブル効果に遭遇しました。これは、おおよそ次のようになります。

うーん、簡単そうですね。実装のアイデアは次のとおりです

  • 本体は div なので、グラデーション、境界線、丸い角を追加するだけです。
  • インゴットは左側の画像を切り取り、::before を使用して左側に配置します。
  • マウスは画像の右側を切り取り、::after を使用して右側に配置します。

基本的には難しくなく、数分で完了します。それまで...

製品: ちなみに、このバブル チャートは後でバックグラウンドで設定できるようになります。その後、ユーザーの個人署名として扱われる画像をアップロードするだけで済みます。 私:! ! ! (╯‵□′)╯︵┻━┻

これはちょっと恥ずかしいですね。商品のBefore写真とAfter写真を用意して、その間に自分でグラデーションを書くことはできません。もうすぐ殺されてしまうだろう。

仕事を始めて間もない頃、Android の同僚が .9png というものについて話しているのを聞いたので、フロントエンドで同様の効果を実現できるかどうかをオンラインで検索しました。案の定、見つけました。

.9png

.9pngとは何ですか? .9png は Android 上の画像形式で、特にバブル効果に使用されます。写真を9分割し、四隅の領域が引き伸ばされないのが特徴です。真ん中の部分だけが伸びます。

この方法では、コンテンツ領域が拡大しても、コーナーに保持された要素は変形されません。

フロントエンド実装

賢い学生はここをクリックして直接効果を見ることができます https://codepen.io/gong12339/pen/PowxmzL

フロントエンドに .9png を実装するには、次の属性が必要です。

公式に推奨されている .9png 画像の解像度は 81 * 81 なので、9 つのカット領域はそれぞれ幅と高さが 27 * 27 になります。私の作品は長方形なので、スライスの位置を自分で測定する必要があります。そして私の写真は明らかに垂直方向の伸縮をサポートしていません

。国境 {
  境界線の幅: 18px 44px 25px 28px;
  境界線のスタイル: solid;
  境界線画像のソース:url(https://raw.githubusercontent.com/gong12339/vic-blog/master/static/img/border.9.png);
  境界線画像スライス:25 44 25 28 塗りつぶし;
  画像の境界線の幅:25px 44px 25px 28px;
}
  • border-width: 27px; 境界線の幅を設定する
  • border-style: solid; 境界線の種類を設定する
  • 境界線画像のソース: url('a.png')
  • 画像アドレスを設定するだけで、何も言うことはありません
  • 画像スライスの境界線: 27 27 27 27;
  • スライスの位置(上、右、下、左)を設定します。すべて同じ場合は、1 つだけ記述できます。
  • 画像の境界線の幅: 27px 27px 27px 27px;
  • 境界線の幅(上、右、下、左)を設定します。すべて同じ場合は、1つだけ記述します。

ここでは、画像の上、右、下、左から対応する距離に線を描き、画像を 9 つの領域に分割する (単位を含めることはできないことに注意してください) border-image-slice -slice に焦点を当てます。

この時点で、基本的に設定は完了しました

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

<<:  MySQLカバーインデックスの利点

>>:  Zabbix 5.0 ディスク自動検出と読み取り/書き込み監視の問題を分析する

推薦する

Vue ルーティングフォールバックに最適なソリューション (vue-route-manager)

目次ルーティングマネージャー背景はじめる問題を解決する方法要約するルーティングマネージャー各ジャンプ...

Linux でユーザーにルート権限を追加する方法の概要

1. ユーザーを追加します。まず、adduser コマンドを使用して共通ユーザーを追加します。コマン...

Nginx の負荷分散と動的および静的分離の原理と構成

目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...

自作の Windows サーバーに egg アプリケーションを展開する方法 (画像とテキスト付き)

1. IEブラウザを使用してVPNにログインする 2. リモートログイン 3. サーバーに最新のn...

Ubuntu 16.04 に Docker と nvidia-docker をインストールするための詳細なチュートリアル

目次DockerのインストールNvidia-docker のインストールDockerのインストール1...

Vue で PC 解像度の適応を実装するためのサンプルコード

目次プラン依存関係をインストールする依存関係の導入pxをremに変換するFlexible.jsを変更...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

HTMLのテーブルタグの基本学習チュートリアル

表ラベルの構成HTML 内の表は <table> タグで構成されており、ブラウザはタグを...

Linux で MySQL のルート パスワードを変更する方法

序文このサービスは数か月前からMySQLに導入されています。私の仕事は基本的にターミナルで行われるた...

html.cssオーバーフローの包括的な理解

html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...

Linux でメモリ使用量を確認する方法

システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...

CSS 属性セレクタを使用して HTML DNA を接合する方法

CSS 属性セレクターは素晴らしいです。大量のクラス名を追加することを回避し、コード内の問題を指摘す...

Linux コマンドラインターミナルで画面を分割するための 2 つのツール

ターミナル分割画面ツールは2つあります: screen と tmux 1. 画面分割を使用する(上下...

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

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