丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

Google Gmail ページから撮った次のスクリーンショットをご覧ください (同じ場所からスクリーンショットを撮ったのは今回が 2 回目です)。
gmail上使用字符的截圖
写真の赤い円の中にある小さな下向きの三角形は、使用されている文字であり、非主流の文字です。実は、Google キャラクターは小さなアプリケーションに過ぎず、その真の潜在力はまだ発揮されていません。この記事では、画像でしか実現できないと思われる鋭角効果や、主に画像で実現されている丸角効果を、画像ではなく文字を使用して実現する方法を先駆的に探ります。キャラクターの飛行については、まだ深く研究していないので、結論や方法の一部は最適ではありません。将来的にはより完璧な方法が登場する可能性があるため、この記事のタイトルにはテスト中であることを示すために「ベータ」という単語が追加されています。この記事で紹介した方法のいくつかは、実際のプロジェクトでは実用的ではないかもしれません。重要なのは、同僚の思考を広げ、Web 開発におけるキャラクターの可能性を示すことです。
注: この記事で「文字」とは、主にキーボードで直接入力できない特殊な形状の文字を指します。英語のABCも文字とみなされますが、この記事で言う「文字」にはそのような一般的な文字は含まれません。以下も同様で、詳細は割愛します。

1. キャラクターの特徴を理解する

1. 真実を見る<br />文字については、ページ上の漢字や英語の文字などと同じものだと理解しています。まず、文字パターンはディスプレイ上で同じ色のピクセルで構成されているため、ギザギザのエッジで困ることはありません。Photoshop で小さな三角形の画像を作ると、嫌な白いエッジが出ることがありますが、文字ではこの問題が発生することはありません。第二に、文字は本質的にテキストであり、テキストに影響を与えるフォント サイズや色などの CSS プロパティの対象となります。

2. 絵ではなく文字を使うメリット: ① 絵を描いたり切り取ったりする必要がないので、手間が省けます!ページ エンジニアにとっては、作業負荷が大幅に軽減されます。ご存知のように、10 ピクセル未満の小さな画像の処理には、非常に時間と労力がかかります。
②ノイズエッジの問題を心配する必要はありません。文字はすべて単色ピクセルなので、ノイズエッジが発生しにくいです。
③操作が簡単!文字パターンを大きくしたい場合は、フォントサイズを大きくしてください。色を変えたい場合は、color を使用してください。そのため、キャラクターは非常に行儀がよく、制御しやすいです。写真の場合は、色を変えてみてください。あなたは劉倩でもハリー・ビットでもないので、それはできません。
④ページの読み込みサイズが小さくなりました。コンピューターを勉強する人なら誰でも、英語の 1 文字は 1 バイト、中国語の 1 文字は 2 バイトであることを知っているはずです。各種の文字が愛国心を表すのか、外国人へのおべっかなのかは分かりませんが、いずれにしてもせいぜい2バイト(単位b)です。絵であれば、検証はしていませんが、経験上、文字よりも多くのスペースを占めるはずです。
⑤理論上、ページリンクリクエストが少なくなります。なぜ理論的と呼ばれるのか?それは、実際には画像が 1 つの画像 (css スプライト) に統合されているため、小さな画像が 1 つ欠けていても、ページ全体が画像を要求する回数は変わらないためです。しかし、この小さな写真が独立したものだったらどうなるでしょうか? そうすると、写真のリクエストが 1 つ減るのではないでしょうか?そうすればサーバーは幸せになります!

3. 文字の欠陥① 異なるブラウザでのパフォーマンス。
ここで、IE ブラウザが中国を表し、Firefox ブラウザが韓国を表していると仮定します。中国人女性(♀)が韓国に行って、見た目が全く変わってしまいました。用語は次のとおりです: 一部の文字はブラウザによって動作が異なります。このような矛盾は2つの種類に分けられます。1つは整形手術によるもので、顔が変わります。これには望みがありません。過去に戻るのは、リン・チーリンに背中のマッサージをしてもらうよりも難しいです。もう1つは美容トリートメントによるものです。たとえば、シャネルやエスティローダーの化粧品を1か月ほど使用すると、芙蓉姉さんから美しいアヒルの子に大きく変わります。これにはまだ望みがあります。彼女に2か月間プログラマーとして働かせれば、過去に戻ることが保証されます。プログラマーであることは単なる冗談です。実際には、フォント (font-family) を設定することで表現の一貫性が実現されます。これについては、この記事の後半で説明します。
②大きさや位置のコントロールが難しい。
文字は本質的に画像とは異なり、明確な高さや幅がありません。ページ上のテキストの特性をよく理解していないと、正確で互換性のある配置を実現することは困難です。また、ページ上で文字がエンコードされる方法や、どのフォントが敏感であるかという問題もあります。たとえば、一部の文字は、gb3212 中国語エンコードでは適切に表示されますが、utf-8 エンコードでは単なる四角いボックス (文字化けした文字) として表示されます。また、Songti では適切に表示されますが、他のフォントでは異なって見えます。
③グラデーション効果が得られない。

2. 文字とフォントの関係の例

デモ ページの最初の部分では、この記事の本文で使用される可能性のあるいくつかの文字と、それらが一般的なフォントでどのように表示されるかを示します。下の図は、代表的な文字の違いを示しています。違いは、フォントとブラウザの違いによって発生します。幸いなことに、異なるフォントを試すことで互換性を確保できます。

字符在不同字體以及不同瀏覽器下的差異

異なるフォントやブラウザでの文字の違い

3. 文字を使って丸みのある長方形と鋭角な角を実現する

文字を使用して丸い角や鋭い角を実現するには、次の文字を使用できます。
左右方向の鋭角「<>」、上下方向の鋭角「∧∨」、実線の鋭角「► ◄ ▲▼」、実線の円「 」、白抜きの円「 」、四分の一白抜きの円「╰ ╯╭ ╮」、正角柱「◆」。 1. フォントと文字表示の関係

左側と右側の鋭角部分は Songti フォントで表示されます: <>
フォントの影響を受けない:<>

ここでは、左と右の鋭角な角は Arial フォントで表示されます: <>
フォントの影響を受けない:<>

左側と右側の鋭角な角は Lucida Sans Unicode で表されます: <>
フォントの影響を受けない:<>

ここで、左と右の鋭角な角は Times New Roman フォントで表示されます: <>
フォントの影響を受けない:<>

左側と右側の鋭角部分は Verdana フォントで表示されます: <>
フォントの影響を受けない:<>

ここでは、上下方向の鋭角は、小さな鋭角のソンティフォントで表されています: ˇ^
フォントの影響を受けない: ∧∨

ここでは、上下方向の鋭角は Arial フォントで、小さな鋭角の角があります: ˇ^
フォントの影響を受けない: ∧∨

上方向と下方向の鋭角は Lucida Sans Unicode フォントで、小さな鋭角: ˇ^
フォントの影響を受けない: ∧∨

上と下の鋭角部分は Times New Roman フォントで、小さな鋭角部分があります: ˇ^
フォントの影響を受けない: ∧∨

ここでは、上下方向の鋭角は Verdana フォントで、小さな鋭角の角があります: ˇ^
フォントの影響を受けない: ∧∨

こちらは45度の角度、フォントはSongtiです:

これはArialフォントで書かれた45度の鋭角の立体です:

以下は Lucida Sans Unicodeでの 45 度の角度です。

45度の角度をTimes New Romanフォントで表すと次のようになります:

45度の角度をVerdanaフォントで表すと次のようになります:

これはしっかりした鋭角の角です。フォントは Songti です: ► ◄ ▲▼

これは、しっかりした鋭角の角です。フォントは Arial です: ► ◄ ▲▼

こちらは実線の角です。フォントは Lucida Sans Unicode です: ► ◄ ▲▼

こちらは角がしっかりしていて、フォントはTimes New Romanです: ► ◄ ▲▼

これはしっかりした鋭角の角です。フォントは Verdana です: ► ◄ ▲▼

これは実線の円です。サイズが限られているため、六角形の実線のように動作します。フォントは Songti です:

これは実線の円です。サイズが限られているため、六角形の実線のように動作します。フォントは Arial です。

これは実線の円です。サイズが限られているため、六角形の実線のように動作します。フォントは Lucida Sans Unicode です。

これは実線の円です。サイズが限られているため、六角形の実線のように動作します。フォントは Times New Roman です。

これは実線の円です。サイズが限られているため、六角形の実線のように動作します。フォントは Verdana です:

ここにソンティ文字のフォントで書かれた中空の円があります:

ここに Arial フォントの白抜きの円があります:

これは Lucida Sans Unicode の白抜きの円です:

これは Times New Roman フォントの白抜きの円です:

ここに Verdana フォントの白抜きの円があります:

これは四分の一弧です。フォントは Songti です: ╰ ╯╭ ╮

Arial フォントの四分の一円は次のとおりです: ╰ ╯╭ ╮

Lucida Sans Unicode の四分の一円は次のとおりです: ╰ ╯╭ ╮

これはTimes New Romanで書かれた四分の一円です: ╰ ╯╭ ╮

ヴェルダナ語で四分の一弧は次のようになります: ╰ ╯╭ ╮

4. 単色の背景に角丸四角形を実装する

背景色で丸みを帯びた角の効果を実現するには、4 つの角を 1/4 の実円で塗りつぶします。


コードをコピー
コードは次のとおりです。

<div class="sharp_square">
<span class="quarter_round round_lt"><span class="lt">●</span></span>
<span class="quarter_round round_rt"><span class="rt">●</span></span>
<span class="quarter_round round_lb"><span class="lb">●</span></span>
<span class="quarter_round round_rb"><span class="rb">●</span></span>
</div>


コードをコピー
コードは次のとおりです。

.sharp_square{width:333px; height:110px; background:#a0b3d6; position:relative; color:#a0b3d6;}/*IE6 には偶奇バグがあります。1 ピクセルのエラーを回避するには、高さと幅を偶数にする必要があります*/
.sharp_square .quarter_round{位置:absolute;}
.sharp_square .quarter_round span{background:white;}
.sharp_square .round_lt{左:-1px; 上:0px;}
.sharp_square .round_rt{右:-1px; 上:0px;}
.sharp_square .round_lb{左:-1px; 下:0px;}
.sharp_square .round_rb{右:-1px; 下:0px;}


<<:  DockerにRedisコンテナをインストールするための実装手順

>>:  MySQL の結合クエリとサブクエリの問題

推薦する

Linuxで中断されたシステムを呼び出す方法

序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...

Dockerでイメージ情報を表示する方法

この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

Nginx で同じドメイン名を持つ複数のプロジェクトを構成する方法

Nginx を使用して同じドメイン名で複数のプロジェクトを構成するには、次の 2 つの方法があります...

RGBAアルファ透明度変換計算表

IEでのRGBAとフィルター値の変換RGBA 透明度値IE フィルター値0.1 19 0.2 33 ...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

MySQL 8.0.22 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...

検索ナビゲーションバー付きの CSS サンプルコード

この記事では、CSS を使用して検索機能付きのナビゲーション バーを作成する方法を説明します。以下の...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...

Link と @import の違いを詳しく見る

ページで CSS を使用する主な方法は、スタイル属性値をインラインで追加する方法、ページ ヘッダーで...

便利で使いやすいウェブアプリケーションを設計するための 10 のヒント

より使いやすい Web アプリケーションを設計するための 10 のヒントをご紹介します。ヒント1: ...

HTML ヘッドタグの詳細な紹介

HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...

Linux カーネル デバイス ドライバーのメモリ管理に関する注意事項

/************************ * Linux メモリ管理 *********...

MySQL における between の境界と範囲の説明

境界範囲間のmysql間の範囲は両側の境界値を含む例: 3 から 7 までの id は、id >...

Mysql 文字列の傍受と指定された文字列内のデータの取得

序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...