SitePoint' sタイル:コンポーネント、テーマ、フレックスボックスのケーススタディ
編集者注:この記事が公開された直後、SitePointホームページが再設計されました。申し訳ありませんが、キティ!
キーポイント
- コンテンツファーストアプローチ:HTMLタグ付け、CSSスタイル、オプションのJavaScriptの強化の前に、最初にコンテンツに焦点を合わせて、アクセシビリティ、保守性、テーマ、およびSEOフレンドリーなセックスを確保する必要があります。
- コンポーネント構造: BEM(ブロック要素モディファイア)メソッドを使用してCSSクラスに名前を付けて、コードの可読性と再利用可能性を強化します。これは、大規模なCSSコードベースを維持するために重要です。
- FlexBoxの使用量:レスポンシブデザインでのFlexBoxの効果的な使用を実証します。これにより、SitePointカードなどのコンポーネントがさまざまな画面サイズでレイアウトの整合性をシームレスに適応および維持できます。
- アクセシビリティとSEO:SVGおよびARIAタグの使用を強調して、アクセス可能なアイコンを実現するだけでなく、MicrodataでSEOを改善する方法を強調します。 。
- テーマとカスタマイズ:コンポーネントのレイアウトからのテーマの分離と、配色の名前空間ベースのクラスの使用について説明し、構造CSSを変更せずにカスタマイズしてテーマにしやすくします。
コンテンツから始めてください
コンポーネントの作成は、ほとんどの場合、次の順序に従う必要があります。最初にコンテンツ、次にタグ、スタイル、そして最後にJavaScript(必要に応じて)。このルールから逸脱することはなく、コンテンツから始めます。
<code>HTML & CSS 8 条评论 CSS 和 Sass 精度的故事 作者:Kitty Giraudel 2016 年 5 月 12 日</code>
要素になります。その中には、上部のコンテナ、タイトルのコンテナ(これは完全に必要ではありません)、メタデータのフッターがあります。 <article></article>
<article class="c-article-tile"> <div class="c-article-tile__header"> HTML & CSS 8 条评论 </div> <div class="c-article-tile__body"> CSS 和 Sass 精度的故事 </div> <div class="c-article-tile__footer"> 作者:Kitty Giraudel 2016 年 5 月 12 日 </div> </article>
注:名前空間でBEMスタイルの命名規則を使用します。
次に、要素を保持するためにサブコンテナーが必要です。 1つはカテゴリ用、1つはコメント数、1つはタイトル用の適切なタイトル用、1つは著者向けで、1つは日付です。リンクも追加しましょう。
<code>HTML & CSS 8 条评论 CSS 和 Sass 精度的故事 作者:Kitty Giraudel 2016 年 5 月 12 日</code>
「コメント」という言葉を適切なアクセス可能なアイコンに置き換えましょう。詳細に説明することはありません。アクセス可能なアイコンの効果的なSVGワークフローをお気軽にお読みください。
<article class="c-article-tile"> <div class="c-article-tile__header"> HTML & CSS 8 条评论 </div> <div class="c-article-tile__body"> CSS 和 Sass 精度的故事 </div> <div class="c-article-tile__footer"> 作者:Kitty Giraudel 2016 年 5 月 12 日 </div> </article>
aria-label
属性を使用して、支援技術ユーザーがアイコンにアクセスできるようにする方法に注意してください。
最後に、検索エンジンがクロールとインデックスを簡単にできるように、コードにマイクロダタを追加できます。 schema.orgの記事リファレンスをお気軽にご覧ください。 (ここでは、マイクロデータを追加するためのコードは省略されています。これは、元のテキストと比較して、ItemProp属性にのみ追加されるため、長すぎます)
スタイルデザインを開始する前に、コンポーネントのパッケージングと適切なデザインの実装についてお話したいと思います。定義上、コンポーネントは再利用可能である必要があります。応答性の高い環境での適切な再利用のために、通常、固定サイズとコンテキスト間隔を持たず、コンテナで自然に展開する方が良いです。
これは、コンテナ自体がカプセル化コンポーネントの何らかの境界を指定することを意味します。この例では、コンテナはリスト項目にすることができます。これは、カード(またはその他のコンテンツ)を表示するために使用されるリストコンポーネントの一部です。
これが次のように見えるかもしれません:
<article class="c-article-tile"> <div class="c-article-tile__header"> <a class="c-article-tile__category" href="https://www.php.cn/link/24e6e6721e0a39950780dfb8f91e53ed"> HTML & CSS </a> <a class="c-article-tile__comment-count" href="https://www.php.cn/link/69650a619af368c12a6ee24947ad7572"> 8 条评论 </a> </div> <div class="c-article-tile__body"> <h2 class="c-article-tile__title"> <a href="https://www.php.cn/link/722fd8c97825bdea860322e28ac6dcbd">CSS 和 Sass 精度的故事</a> </h2> </div> <div class="c-article-tile__footer"> <span class="c-article-tile__author"> 作者: <a href="https://www.php.cn/link/58eaa69d86c0bb41c0f334b95b6c8cf2">Kitty Giraudel</a> </span> <time class="c-article-tile__date" datetime="2016-05-12T12:00"> 2016 年 5 月 12 日 </time> </div> </article>
いくつかのスタイルを適用します
CSSセクションの場合、すべての要素には適切なボックスモデルがあると仮定します。また、FlexBoxに大きく依存するつもりです。コンテナコンポーネントのリスト
リストコンポーネントは非常に薄いので、スタイルは何もありません。カードにグリッドのようなレイアウトを提供し、カード間の間隔を処理し、同じ行のすべてのカードが同じ高さであることを確認する必要があります。 FlexBoxのため、これは難しくないはずです。
<svg style="display: none"> <symbol id="icon-bubble" viewBox="0 0 32 32"> <path class="path1" d="M16 2c8.837 0 16 5.82 16 13s-7.163 13-16 13c-0.849 0-1.682-0.054-2.495-0.158-3.437 3.437-7.539 4.053-11.505 4.144v-0.841c2.142-1.049 4-2.961 4-5.145 0-0.305-0.024-0.604-0.068-0.897-3.619-2.383-5.932-6.024-5.932-10.103 0-7.18 7.163-13 16-13z"></path> </symbol> </svg> <a class="c-article-tile__comment-count" href="https://www.php.cn/link/69650a619af368c12a6ee24947ad7572"> 8 <svg class="icon icon-bubble" aria-label="评论"> <use xlink:href="#icon-bubble"></use> </svg> </a>
<ul class="c-tile-list"> <li class="c-tile-list__item"> <article class="c-article-tile">…</article> </li> <li class="c-tile-list__item"> <article class="c-article-tile">…</article> </li> <li class="c-tile-list__item"> <article class="c-article-tile">…</article> </li> </ul>
続けて、実際のトピック:記事カードコンポーネントについて説明しましょう。カード自体から始まるデザインスタイルを必要とする多くの要素があります。
前述のように、カードには固定サイズではなく、親コンテナにサイズを変更する必要があります。また、カードの計算された高さに関係なく、フッターを下部に整列できるように、カード自体をフレックスコンテナにします。
より深く進み、カードのサブコンテナー(タイトル、ボディ、フッター)を設計できます。それらはすべて、いくつかの水平充填の責任があり、さらに位置決めを容易にするために、各コンテナをフレックスコンテナにすることができます。 (記事が長すぎて元のテキストに非常に似ているため、CSSコードの残りはここでは省略されています)
/** * 1. 重置默认列表样式 * 2. 使用 Flexbox 为卡片创建网格状布局。 */ .c-tile-list { list-style: none; /* 1 */ margin: 0; /* 1 */ padding: 0; /* 1 */ display: flex; /* 2 */ flex-wrap: wrap; /* 2 */ }
概要
それだけです!うわー、それは長い旅でしたが、私はあなたがそれを楽しむことを願っています。この小さな例は、適切なコンポーネントパッケージ、テーマ管理、フレックスボックスの使用に非常に適していると思います。お気軽に試してみてください。改善が見つかった場合は必ず共有してください!
CodepenのSitePointのSitePoint Card Conceptの例をご覧ください。
SitePointカード(FAQ)に関するFAQ
(記事が長すぎて元のテキストに非常に似ているため、FAQパーツはここでは省略されています)要するに、この出力は、元のテキストを効果的に擬似オリジナル化し、元のテキストの一般的なアイデアと画像位置を保持し、より単純な言語と構造を使用します。 スペースの制限により、一部のコードは省略されていますが、その論理と構造は元のテキストと一致しています。
以上がSitePoint&#x27; sタイル:コンポーネント、テーマ、フレックスボックスのケーススタディの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています
