ホームページ > ウェブフロントエンド > CSSチュートリアル > CSSフォントの作成(および潜在的な利点)

CSSフォントの作成(および潜在的な利点)

Christopher Nolan
リリース: 2025-03-25 09:15:16
オリジナル
318 人が閲覧しました

CSSフォントの作成(および潜在的な利点)

少なくとも典型的なものではありません。各文字は、CSSで構築されたHTML要素です。真のウェブフォント!

詳しく説明してください。これは、フォントをまったく使用せずにテキストをレンダリングする方法です。ランダムなテキストは、PHPとともに単語と文字に分割され、クラスを持つHTML要素としてレンダリングされます。すべての要素には、文字を作成するためのCSSでスタイルが付けられています。これは、CSSで制御された「Just」HTMLですが、それでもソフトウェアであり、メッセージを通過します。従来のフォントが行うすべてのプロパティがあるため、フォントと呼びます。フォーマットのないフォント。

免責事項:私はHTML、CSS、またはPHPの専門家ではありません。ここでやったことを達成するためのショートカットや簡単な解決策があると確信していますが、結果に満足しているので、プロセスと経験を紹介します。プレゼンテーションはチュートリアルではありません。それは私の限られたスキルに基づいた実験であり、そのように扱われるべきです。

アイデア

このプロジェクトは5か月間持続することを意図したものではありませんでしたが、それが必要なことです!それはすべて、CSSアイコンでプレイすることから始まり、擬似要素を使用して形を作ることから始まりました。最初のSレターが完成すると、残りは比較的簡単でした。他の同様のプロジェクトがあるかどうかを確認しましたが、あまり見つかりませんでした。

当初、CSSで制御されたSVGフォントは良い考えのように思えました。このタスクをはるかに簡単にし(SVGは描画用に作成されます)、設計固有の効果に焦点を当てることができますが、生のHTML要素の柔軟性はありません。コンテキストに応じてSVGを変更することはできず、プロセスはすべての文字が固定された形状とコードがある従来のフォント設計に戻ります。

それがどのように機能するか

これは、WebおよびFontデザインのハイブリッドです。各文字は、任意のWeb要素のように構築され、インラインで使用されてフォントのように動作します。メトリック、重み、Opentype機能、その他すべてのフォントプロパティは、CSSファイルでのみ制御されます。

フォント設計は、要素の境界幅に基づいているため、非常に用途が広いためです。スクリプトフォントの免除により、同じ形状を使用して、境界のバリエーションだけからいくつかのスタイルと重みが生じる可能性があります。より複雑な文字では、クリップパスと背景を使用して、カットアウト効果を作成します。

ネストされた要素は、::前の::擬似要素の後にキャラクターを形成するのに十分ではないときに生成されます。幅、高さ、境界の幅にEM値を使用すると、後でフォントサイズを制御するのに役立ちます。これは黄金のルールの1つです。

文字(左)は、CSSアイコン(右)のように構築されます。大きな違いはありません。時々、文字は、サークルや線に基づいて、スティックマンのように構築しやすいことがあります。しかし、ここでは、国境とラジウスの財産の役割を本当に理解できるときです。個人的には、私は丸い境界線のファンではありませんでしたが、この経験は私の心を変えました。基本的に、半径ができることに制限はありません。

以下は、この記事のCSSフォントの2つの「実際の」例です。残りの例の図は、ブログ投稿で簡単に表示できるようにSVGに変換されます。

Serifプレビューはより複雑な状況を示しますが、いつものように、SANSフォントは対処する要素が少なくなり、ファイルが小さくなり、ロードが速くなります。これは実際には問題ではなく、論理的なだけです。CSSは、 @font-faceルールに埋め込まれたフォントの前に読み取られます。

挑戦

最も難しい部分は、ピクセル比を打ち負かすか、擬似要素をベース形状に合わせることです。屋のサイズが変更されたときに、精巧な数式が失敗しました。ブラウザは各要素を個別に扱い、最も近い整数値にシフトします。

これに対する解決策は、可能な限り多くの擬似要素を作成し(余分な要素を含む)、メイン形状とは関係していない:: ::後のペアの1つの参照を使用することでした。この場合、ブラウザは要素をほぼ同じ位置にレンダリングします。

参照点のない文字を以下のSレターで示します。文字の上部と下部は、2つの擬似要素であり、頼るベース形状(上記のセリフの灰色の領域またはここの桁2の灰色の領域)はありません。

数百文字を作成した後、キャラクターはインライン変換(すなわちskew()、rotate()など)をサポートできないことに気付きます。これは、テキストの選択で視覚的に明白になります。そのため、擬似要素は完全に理にかなっています。私は本質的に言うだろう:2番目の黄金律。

CSSカスタムプロパティ

FontソフトウェアよりもCSSでスタイルを作成する方が簡単に思えます。複数の文字の形状とサイズを一度に制御するオプションがあります。 CSSでは、同じルールセットでより多くの文字がグループ化されています。

CSSカスタムプロパティは、特に境界、幅、および位置を制御するために、この状況で非常に便利です。異なる重みは、変数の変化の結果であり、その後調整されます。キャラクターの形状とサイズが境界線の幅を考慮し、特に非対称の形状で異なる境界に比例して表示されない可能性があるため、微調整は避けられません。

カットアウト効果は、オーバーレイ要素に同じ背景色を追加し、ミックスブレンドモードを使用して色とエフェクトの組み合わせを使用して作成されます。

CSSでは、親の色に従うネストされた要素のカットアウト効果を作成するために、グローバルカラー変数が必要です(背景と一致する要素のオーバーレイ要素)。

バックグラウンドイメージのプロパティは、境界でのみ構築された文字では機能せず、要素にサイズまたは位置変換(スケール、回転、またはその他)がある場合、背景は変更されます。

背景を使用できない場合、ソリューションはMix-Blend-Mode:Lightenです。暗い背景とミックスブレンドモード:暗くなっています。軽い背景について。

副作用

マイナス面は、一部の効果が、可変特性を持つ要素に対して予期しない結果または反対の結果をもたらす可能性があることです。通常、フィルターは要素を完全なオブジェクトとして読み取ります。競合を防ぐために、境界と変換効果はフォント設計のために予約されています。

テキストへのフォント

フォントはテキストを作成しません。そもそもアイデアは、依存関係なしにCSSと一緒にロードするテキストを作成することでした。そのためには、最良の選択肢はPHPです(私の新人の意見)。インライン関数を使用してHTMLをレンダリングすることに加えて、それは想像できるほとんどすべてのタスク次第です。 PHPがなければ、このプロジェクトは不可能です。

当然のことながら、PHPの最初のタスクは、ランダムなテキストを分割し、余分なスペースを削除し、それぞれが独自のクラスを持つすべての単語と文字の一致するグループを作成することでした。ここまでは順調ですね。私はスムーズに進んだ部分を主張しません。それは基本的な機能であり、スプリット、爆発、およびビデオゲームから借りた他のすべての言葉を使用しています。

それでも、私はこれまでこれに取り組んだことがないので、私は難しい方法を学ばなければなりませんでした。 PHPが「0」(ゼロ)をヌルと見なしていると誰も私に言ったので、一日はありません。ゼロが表示されない理由がわかりませんでした。

この問題を抱えている人にとっては、それは役に立つかもしれません。空の()関数を使用する代わりに、以下の関数を使用しました。

関数is_blank($ value){  
  return empty($ value)&&!is_numeric($ value);
}
ログイン後にコピー

もう1つの主要な問題は、キャラクターの範囲でした。 HTML、.htaccessファイル、および特殊文字を認識するためだけにサーバー自体に設定が多すぎるようです。この解決策は、ThePHPドキュメントで数日後に発見され、Qeremy [atta] Gmail [dotta] comによって投稿されました。

 function str_split_unicode($ str、$ length = 1){
  $ tmp = preg_split( '~~ u'、$ str、-1、preg_split_no_empty);
  if($ length> 1){
    $ chunks = array_chunk($ tmp、$ length);
    foreach($ chunks as $ i => $ chunk){
        $ chunks [$ i] = join( ''、(array)$ chunk);
    }
    $ tmp = $ chunks;
  }
  $ tmpを返します。
}
ログイン後にコピー

あなたが私に尋ねると、多くのチャンクがありますが、それは魅力のように機能し、すべての問題を解決します。この関数は基本的に言語設定を見落とし、標準以外の文字の設定でも読み取ります。 PHP関数にその文字が含まれている場合、Unicodeテーブルに深く埋まっている文字が認識されます。

この関数は、HTMLエンティティを必要とせずに、各文字を入力されたとおりに生成する可能性のみを作成します。このオプションは、HTML形式でのテキストの使用を制限しませんが、インラインコードを回避するか、代替案に置き換える必要があります。たとえば、非壊れたスペース( )を使用する代わりに、要素をタグにラップできます。

構造

これが解決された場合、次のステップは、各文字に特定の構造を作成することです。 HTML要素のクラスとネストされた要素の位置は、1つ以上のクラスに対応する文字の長いリストに依存します。最も基本的な文字の一部は、このリストから除外されていません(たとえば、小さな「A」文字にはフィニアルが必要であり、それは追加の要素/クラスを意味します)。

基本構造は、このようなものになります。

 '”' => 'cacute c actute'
ログイン後にコピー

…これは、親のケーチ、C文字、急性アクセントの3つの要素をレンダリングします。結果は以下になり、赤い正方形は他の2つのプリセット要素を含む親要素を表します。

この手法は、ペアリングに基づいて、ディクリティクス(時には結晶)がフォントソフトウェアで構築される方法と非常に似ています。コンポーネント要素が変更されると、他のすべてが調整されます。

任意の要素には複数のアプリケーションがあるため、IDは回避され、クラスのみが使用されます。

Opentype機能

PHP関数は、コンテキストに応じて異なる動作をするように設定されています。キャラクター認識は、CSSテキストをレンダリングする際にペアリングを置き換え、ライガチュアを作成するように設定されています。

CSSテキストのコンテキスト順序は、スタンドアロン文字ではなく、特定のクラスがありません。従来のOpentype機能とは異なり、文字は置き換えられていません。相互作用は、2番目の要素をスタイリングすることによりCSSで制御され、新しいキャラクターをマージまたは形成します。

特徴は、親コンテナに特定のクラスを追加してアクティブになります。キャラクターが登録されているかどうかに関係なく、すべてのブラウザで、フォント機能サポートの有無にかかわらず、どんな状況でも代替はレンダリングされます。

HTML構文

HTML要素には、フォントの重量の横に.CSSクラスがある長い間、CSSフォントを含めることができます。重みを選択するには、.thin、.light、。remulal、または.boldクラスが使用されます。

テキストにはHTML形式を持つことができます。プレーンテキストは必須ではありません。

PHPは、閉鎖特派員がいる場合、ブラケット(

また、レイアウトの好みに応じて、などの特定のタグを、ネイティブの外観と動作をエミュレートおよびカスタマイズするオブジェクトとして扱うことができます。

設定

CSSテキストは、境界を持つオブジェクトのグループであり、サイズとカラートリートメントのために開かれています。色を境界線と逆に考えてください。 :代わりに初代:ファーストレッター。

フォントサイズは、ビューポート、パーセンテージ、ピクセル、EM、またはREMユニットを使用して、他のフォントと同じCSSファイルに設定されています。ピクセルで設定された値は、小数値で動作します。

テキストアライグとテキストインデントのプロパティは、デフォルトで機能します。テキストは、テキストコンテンツがなくても、任意のセットアップに合わせます。

テキスト内に配置されたブロックレベルの要素(eg

    )は、通常のようにラインブレイクを引き起こします。
    タグは、予想どおりに機能します。

    テキストに正しい効果を持つために新しいルールが必要になるために新しいルールが必要になるテキストのフォーマット要素(

    -

    など)を除き、ほとんどのセマンティック要素(eg
    1. )はカスタム設定で動作します。

      フォント

      ダイナミックコンテンツのフォントをテストするために、PHP関数の一部をJavaScriptで再現し、ペースト、マウスイベント、カレットの位置、およびテキスト選択を備えています。単一のキーストロークは、今ではすべて価値があります。

      CSSフォントと補完的なアイコン。これが実際にすべてを始めたものです!

      レビュー!プラス()対マイナス( - )

      インスタント負荷

      実際のテキストがない場合、ブラウザはフォントとスクリプトがページをレンダリングするのを待っていません。 HTML要素とともにCSSファイルはキャッシュされているため、荷重が速くなります。

      ユニバーサル

      すべてのブラウザとサーバーはCSSを認識します。すべてのブラウザで同じように機能する適切な形式を見つけるのは心配が少なくなります。サーバーは、アクセスを許可する特定の形式をチェックしません。

      依存関係はありません

      CSSフォントは、テキストを表示するために代替またはシステムフォントを必要としません。ページをスタイルするのと同じCSSには、フォントを含めることができます。ブラウザは、ページの読み込みの前でも後にもデフォルトのフォントを表示しません。フォントは第三者やスクリプトに依存せず、デザインは無効なスクリプトを持つブラウザで違いはありません。

      埋め込みはありません

      CSSフォントはWebページに完全に統合されており、ロード上の他の要素を交換することなくレイアウトに適応します。すべてのページプロパティはテキストに対して自動的に有効であり、これは、アフターエフェクトや機能的な問題なしに、意図された方法で表示されます。

      選択的使用

      フォントは、限られた数の文字に還元できます。たとえば、レイアウトに単一の単語またはシンボルがある場合、フルバージョンは必要ありません。

      完全なセキュリティ

      実際のテキストはページに存在していません。つまり、スパムやフィッシングを恐れずに敏感な情報を簡単に表示できます。

      SEOフレンドリー

      Alt属性が画像に対して機能するのと同じ方法で、重要な情報をタグプロパティを使用して含めることができます。

      カスタマイズ可能

      複雑な文字または関数を構築するために、Fontは任意のHTML要素に対して開いています。すべての単語と文字に独自のエンティティがあり、個別にスタイリングできるため、特定の詳細を取得するためのスクリプトは必要ありません。

      コンテキスト

      フォントのデザインは事前定義された文字に限定されないため、新しい文字を作成することなく、コンテキストに応じてスタイルが変わる可能性があります。

      一貫性のある

      Fontソフトウェア、CSSで見つかった自動化の不足を補うために、設計は一度にいくつかの要素を制御できます。 Fontソフトウェアは既存のコンテンツで動作し、CSSはプロパティで動作し、既存または将来の要素ごとにテンプレートを作成するため、この引数は有効です。

      公共

      誰でも独自のフォントを作成できます。短いテキストは手動でレンダリングでき、PHP関数は要件ではありません。

      基本

      デザインは、あらゆるテキストエディターまたは開発者ツールでアクセスできます。境界線幅、境界半径、形状、サイズを使用した基本的なスキルは、あらゆるキャラクターを再設計するのに十分です。

      ライブ

      すべての調整結果は瞬時です。フォントをアクティブにするための変換、エクスポート、アップロード、またはその他の手順はプロセスから削除されます。

      中程度の使用

      拡張されたテキスト用にCSSフォントが生成された場合、ページの速度が低下する場合があります。この手法は、そのため、見出し、タイトル、抜粋、短い段落にのみ推奨されます。

      一般

      CSSフォントは、ブラウザにとって、これは単なる別のHTML要素であるため、特別な治療の恩恵を受けることはありません。その結果、最適化やカーニングサポートはありません。ピクセルは細い線を共有するのに苦労し、小さなサイズではフォントが不適切に表示される場合があります。

      ハードコード化

      通常のフォント設定はデフォルトでは利用できず、スタイリングタグ(など)は効果がありません。関数はCSSファイルで設定し、フォントの代わりにHTML要素を使用して作業する別のアプローチが必要です。

      エクスクルーシブ

      これはWebFontなので、CSSで制御されたデジタルメディアに限定されています。一部のビットマップ効果を除き、フォントは、ドキュメントをPDFとして印刷することにより、オフライン用にのみ翻訳できます。これにより、CSSをベクトル形式に変換します。

      抽象的な

      スタンドアロンファイルがなければ、フォントを識別、テスト、または転送するのは困難です。 HTMLの色のように機能します。生成されるまで見えません。

      選択できません

      追加のスクリプトがなければ、テキストを入力やテキストリーアで選択したり使用したりすることはできません。動的なコンテンツの場合、機能はPHPで見つかった文字認識全体を必要とします。

      インタラクティブではありません

      ソートやフィルターなどの最も一般的なディスプレイ関数は、テキストコンテンツではなくクラスで動作する必要があります。

      印刷できません

      オンライン印刷は、基本的なCSSルールのみをサポートし、テキストを支持するグラフィックを無視することもあります。印刷品質は、ブラウザの機能に厳密に依存します。

      アクセシビリティはありません

      CSSフォントはページズームに調整されますが、フォントサイズと言語はブラウザを介して変更することはできません。
      カスタムブラウザ関数(例:FIND、READER)はないため、テキストコンテンツにアクセスできません。

      限られたデザイン

      選択するスタイルの幅広い選択はなく、デザインはCSSの機能に限定されています。 CSSルールは、さまざまなブラウザに異なる意味を持つ可能性があり、矛盾を引き起こします。 CSSフォントは描画されていないために書かれているため、「手作り」の概念は完全に排除されます。

      マルチタスク

      フォントで調整するには、CSSを知る必要があります。その逆も同様です。設計プロセスは自動化されておらず、マシンによって生成されたものの一部を手動で設定する必要があります。

      保護なし

      設計コードは、誰でもアクセスでき、オンライン要素と同じです。デザインは、不正なコピーや使用法から実際に保護することはできません。

      読んでくれてありがとう!これがフォントのホームページです。

以上がCSSフォントの作成(および潜在的な利点)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート