ホームページ ウェブフロントエンド CSSチュートリアル 優れた CSS コードを書くための 13 のヒント

優れた CSS コードを書くための 13 のヒント

Apr 05, 2017 pm 05:11 PM

CSS を学ぶのは難しくありませんが、大規模なプロジェクトでは、特に各人が CSS の書き方が少しずつ異なる場合、チーム内でのコミュニケーションがさらに難しくなります。そのための方法をいくつかまとめました。効率的でクリーンな CSS コーディングの原則を実現します:

1. リセットは使用しますが、グローバル リセットは使用しません

ブラウザー要素のデフォルト属性は異なります。ブラウザーの互換性を確保するには、リセットを使用してブラウザー要素の一部のデフォルト属性をリセットします。ただし、グローバル リセットは使用しないでください:

*{ margin:0; padding:0; }
ログイン後にコピー

これは遅くて非効率であるだけでなく、不要な要素のマージンとパディングもリセットされてしまいます。 YUI Reset と Eric Meyer の実践を参照することをお勧めします。私も Eric Meyer と同じ意見です。ブラウザの互換性と操作の利便性を実現するには、プロジェクトのさまざまなニーズに応じて適切な変更を行う必要があります。私が使用するリセットは次のとおりです:

/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p, 
blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */
th, td, /* table elements 表格元素 */
img/* img elements 图片元素 */{ 
  border:medium none; 
  margin: 0; 
  padding: 0; 
} 
/** 设置默认字体 **/
body,button, input, select, textarea { 
  font: 12px/1.5 '宋体',tahoma, Srial, helvetica, sans-serif; 
} 
h1, h2, h3, h4, h5, h6 { font-size: 100%; } 
em{font-style:normal;} 
/** 重置列表元素 **/
ul, ol { list-style: none; } 
/** 重置超链接元素 **/
a { text-decoration: none; color:#333;} 
a:hover { text-decoration: underline; color:#F40; } 
/** 重置图片元素 **/
img{ border:0px;} 
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
ログイン後にコピー

2. 良いネーミング習慣

乱雑なコードや意味論的に間違った名前のコードは、誰でも気が狂うのは間違いありません。次のようなコード:

.aaabb{margin:2px;color:red;}
ログイン後にコピー

実際のプロジェクトでは初心者でもこのようなクラス名を付けることはないと思いますが、このようなコードにも非常に問題があると考えたことはありますか:

<h1>My name is <span class="red blod">Wiky</span></h1>
ログイン後にコピー

問題は、元の赤いフォントをすべて青に変更する必要がある場合、スタイルが次のようになることです。

.red{color:bule;}
ログイン後にコピー

このような名前を付けると非常にわかりにくくなり、.leftBar という名前のサイドバーを右側のサイドバーに変更する必要がある場合にも非常に面倒になります。したがって、要素の特性 (色、位置、サイズなど) をクラスや ID の名前に使用しないでください。#navigation{...}、.sidebar{... などの意味のある名前を選択できます。 }、.postwrap{ ...}

このように、これらのクラスまたは ID を定義するスタイルをどのように変更しても、それらと HTML 要素の間の接続は影響を受けません。

一部の固定スタイルは定義後に変更できないという別の状況もあります。その場合、

.alignleft{float:left;margin-right:20px;} 
.alignright{float:right;text-align:right;margin-left:20px;} 
.clear{clear:both;text-indent:-9999px;}
ログイン後にコピー

など、名前を付けるときに前述した状況を心配する必要はありません。 それでは、そのような段落について

<p class="alignleft">我是一个段落!</p>
ログイン後にコピー

この段落を元の左揃えから右揃えに変更する必要がある場合は、その className を alignright に変更するだけで済みます。

3. コードの略語

CSS コードの省略形を使用すると、コードの記述速度が向上し、コードの量が簡素化されます。 CSS では、マージン、パディング、境界線、フォント、背景、色の値など、省略できる属性が多数あります。コードの省略方法を学習すると、元のコードは次のようになります:

li{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size: 1.2em; 
    line-height: 1.4em; 
    padding-top:5px; 
    padding-bottom:10px; 
    padding-left:5px; 
}
ログイン後にコピー

次のように省略できます:

li{ 
    font: 1.2em/1.4em Arial, Helvetica, sans-serif; 
    padding:5px 0 10px 5px; 
}
ログイン後にコピー

これらの属性を省略する方法について詳しく知りたい場合は、「一般的な CSS 省略構文の概要」を参照するか、CSS-Shorthand-Cheat-Sheet.pdf をダウンロードしてください。

4. CSS 継承を使用する

ページ上の親要素の複数の子要素が同じスタイルを使用する場合、親要素に同じスタイルを定義し、それらの CSS スタイルを継承させることが最善です。こうすることで、コードを適切に保守し、コードの量を減らすことができます。元のコードは次のようになります:

#container li{ font-family:Georgia, serif; } 
#container p{ font-family:Georgia, serif; } 
#container h1{font-family:Georgia, serif; }
ログイン後にコピー

次のように省略できます:

#container{ font-family:Georgia, serif; }
ログイン後にコピー

5. マルチセレクターを使用します

共通のスタイルがある場合は、複数の CSS セレクターを 1 つに結合できます。そうすることで、コードが簡潔に保たれるだけでなく、時間とスペースも節約されます。例:

rreee

h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } 
h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } 
h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
ログイン後にコピー

にマージ可能 6. 適切なコードコメント

コード コメントを使用すると、他の人がコードを理解しやすくなり、コード コメントを合理的に編成すると構造がより明確になります。スタイルシートの先頭にディレクトリを追加することを選択できます:

h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
ログイン後にコピー

こうすることで、コードの構造が一目瞭然になり、コードを簡単に見つけて変更することができます。

コードの主要なコンテンツも適切に分割し、必要に応じてコードにコメントを追加する必要があります。これはチーム開発にも役立ちます:

/*------------------------------------ 
    1. Reset 
    2. Header 
    3. Content 
    4. SideBar 
    5. Footer 
  ----------------------------------- */
ログイン後にコピー

7. CSS コードを注文します

コード内のプロパティをアルファベット順に並べ替えることができる場合、検索と変更がより速くなります:

/***    Header  ***/ 
#header{ height:145px; position:relative; } 
#header h1{ width:324px; margin:45px 0 0 20px; float:left;  height:72px;} 
  
/***    Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;} 
#content h1{color:#F00}/* 设置字体颜色 */
#content .posts{ overflow:hidden; } 
#content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; } 
  
/***    Footer  ***/
#footer{ clear:both; padding:50px 5px 0; overflow:hidden;} 
#footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }
ログイン後にコピー

8. CSS を読みやすい状態に保つ

読みやすい CSS を作成すると、スタイルの検索と変更が容易になります。次の 2 つのケースのどちらが読みやすいかは自明だと思います。

りー

スタイル属性の少ないセレクターを扱う場合は、次の行を書きます:

/*** 样式属性按字母排序 ***/
p{ 
    background-color:#3399cc; 
    color:#666; 
    font:1.2em/1.4em Arial, Helvetica, sans-serif; 
    height:300px; 
    margin:10px 5px; 
    padding:5px 0 10px 5px; 
    width:30%; 
    z-index:10; 
}
ログイン後にコピー

このルールは難しいものではありませんが、どの方法で記述しても、コードの一貫性を常に保つことをお勧めします。属性が多い場合は、複数の行に分けて記述します。属性が 3 つ未満の場合は、1 行で記述できます。

9. より適切なスタイル属性値を選択します

CSS の一部の属性は異なる属性値を使用しますが、効果は似ていますが、

などのパフォーマンスに違いがあります。

  区别在于border:0把border设为0px,虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。

  而border:none把border设为“none”即没有,浏览器解析“none”时将不作出渲染动作,即不会消耗内存值。所以建议使用border:none;

  同样的,display:none隐藏对象浏览器不作渲染,不占用内存。而visibility:hidden则会。

  10. 使用代替@import

  首先,@import不属于XHTML标签,也不是Web标准的一部分,它对于较早期的浏览器兼容也不高,并且对于网站的性能有某些负面的影响。具体可以参考《高性能网站设计:不要使用@import》。所以,请避免使用@import

  11. 使用外部样式表

  这个原则始终是一个很好的设计实践。不单可以更易于维护修改,更重要的是使用外部文件可以提高页面速度,因为CSS文件都能在浏览器中产生缓存。内置在HTML文档中的CSS则会在每次请求中随HTML文档重新下载。所以,在实际应用中,没有必要把CSS代码内置在HTML文档中:

<style type="text/css" > 
    #container{ .. } 
    #sidebar{ .. } 
</style>
ログイン後にコピー

<li style="font-family:Arial, helvetica, sans-serif; color:#666; " >
ログイン後にコピー

  而是使用导入外部样式表:

<link rel="stylesheet" type="text/css" href="css/styles.css" />
ログイン後にコピー

  12. 避免使用CSS表达式(Expression)

  CSS表达式是动态设置CSS属性的强大(但危险)方法。Internet Explorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式可以实现隔一个小时切换一次背景颜色:

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
ログイン後にコピー

  如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。

  表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。

  如果必须使用CSS表达式,一定要记住它们要计算成千上万次并且可能会对你页面的性能产生影响。所以,在非不得已,请避免使用CSS表达式。

  13. 代码压缩

   当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。压缩您的代码,可以采用一些工具,如YUI Compressor

  利用它可精简CSS代码,减少文件大小,以获得更高的加载速度。

  14. 总结

  在本文中,我力图更详尽的总结书写更高效的CSS代码的原则,但鉴于本人见识和精力有限,我还是希望这些原则能帮助您更好的书写和管理您的CSS代码,不知您又是如何书写CSS的,是否也有一些想要分享的技巧?给我留言吧谢谢~

以上が優れた CSS コードを書くための 13 のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C# を使用してブルーム フィルター アルゴリズムを作成する方法 C# を使用してブルーム フィルター アルゴリズムを作成する方法 Sep 21, 2023 am 10:24 AM

C# を使用してブルーム フィルター アルゴリズムを作成する方法 ブルーム フィルター (BloomFilter) は、要素がセットに属しているかどうかを判断するために使用できる、非常にスペース効率の高いデータ構造です。その基本的な考え方は、複数の独立したハッシュ関数を通じて要素をビット配列にマッピングし、対応するビット配列のビットを 1 としてマークすることです。要素が集合に属するかどうかを判断するには、対応するビット配列のビットがすべて 1 であるかどうかを判断するだけで済みます。いずれかのビットが 0 であれば、その要素は集合に含まれていないと判断できます。ブルームフィルターには高速なクエリがあり、

C言語でべき乗関数を計算するメソッドを書く C言語でべき乗関数を計算するメソッドを書く Feb 19, 2024 pm 01:00 PM

C言語でのべき乗関数の書き方 べき乗(べき乗)とは数学でよく使われる演算で、数値を複数回掛けることを意味します。 C 言語では、べき乗関数を記述することでこの関数を実装できます。 C言語でのべき乗関数の書き方と具体的なコード例を詳しく紹介します。関数の入力と出力を決定する 通常、べき乗関数の入力には基数と指数の 2 つのパラメーターが含まれ、出力は計算結果になります。したがって、私たちは

C++ を使用して簡単なホテル予約システムを作成するにはどうすればよいですか? C++ を使用して簡単なホテル予約システムを作成するにはどうすればよいですか? Nov 03, 2023 am 11:54 AM

ホテル予約システムは、ホテルの経営効率化とサービス向上を実現する重要な情報管理システムです。 C++ を使用して簡単なホテル予約システムを作成する方法を学びたい場合は、この記事で基本的なフレームワークと詳細な実装手順を説明します。ホテル予約システムの機能要件 ホテル予約システムを開発する前に、その実装のための機能要件を決定する必要があります。基本的なホテル予約システムには、少なくとも次の機能が実装されている必要があります。 (1) 部屋情報管理: 部屋タイプ、部屋番号、部屋など

C# を使用して動的プログラミング アルゴリズムを作成する方法 C# を使用して動的プログラミング アルゴリズムを作成する方法 Sep 20, 2023 pm 04:03 PM

C# を使用して動的プログラミング アルゴリズムを作成する方法 概要: 動的プログラミングは、最適化問題を解決するための一般的なアルゴリズムであり、さまざまなシナリオに適しています。この記事では、C# を使用して動的プログラミング アルゴリズムを作成する方法を紹介し、具体的なコード例を示します。 1. 動的プログラミング アルゴリズムとは何ですか? 動的プログラミング (DP) は、重複する部分問題と最適な部分構造特性を持つ問題を解決するために使用されるアルゴリズムのアイデアです。動的プログラミングでは、問題を解決するためのいくつかのサブ問題に分解し、各サブ問題の解決策を記録します。

C++ を使用して簡単な学生コース選択システムを作成するにはどうすればよいですか? C++ を使用して簡単な学生コース選択システムを作成するにはどうすればよいですか? Nov 02, 2023 am 10:54 AM

C++ を使用して簡単な学生コース選択システムを作成するにはどうすればよいですか?テクノロジーの継続的な発展に伴い、コンピュータープログラミングは必須のスキルとなっています。プログラミングを学習する過程で、シンプルな学生コース選択システムは、プログラミング言語をより深く理解し、応用するのに役立ちます。この記事では、C++ を使用して簡単な学生コース選択システムを作成する方法を紹介します。まず、この履修選択制度の機能と要件を明確にする必要があります。基本的な学生コース選択システムには通常、学生情報管理、コース情報管理、選択の部分が含まれます。

C++ で簡単なマインスイーパー ゲームを作成するにはどうすればよいですか? C++ で簡単なマインスイーパー ゲームを作成するにはどうすればよいですか? Nov 02, 2023 am 11:24 AM

C++ で簡単なマインスイーパー ゲームを作成するにはどうすればよいですか?マインスイーパは古典的なパズル ゲームで、プレイヤーは地雷を踏まずに既知の地雷原のレイアウトに従ってすべてのブロックを明らかにする必要があります。この記事では、C++を使った簡単なマインスイーパゲームの書き方を紹介します。まず、マインスイーパ ゲームのマップを表す 2 次元配列を定義する必要があります。配列内の各要素は、ブロックが公開されているかどうか、地雷があるかどうかなど、ブロックのステータスを保存するために使用される構造体にすることができます。さらに、次も定義する必要があります。

Python で KNN アルゴリズムを記述するにはどうすればよいですか? Python で KNN アルゴリズムを記述するにはどうすればよいですか? Sep 19, 2023 pm 01:18 PM

Python で KNN アルゴリズムを記述するにはどうすればよいですか? KNN (K-NearestNeighbors、K 最近傍アルゴリズム) は、シンプルで一般的に使用される分類アルゴリズムです。このアイデアは、異なるサンプル間の距離を測定することによって、テスト サンプルを最も近い K 個の近傍に分類することです。この記事では、Python を使用して KNN アルゴリズムを作成および実装する方法を紹介し、具体的なコード例を示します。まず、いくつかのデータを準備する必要があります。 2 次元のデータセットがあり、各サンプルに 2 つの特徴があるとします。データセットを次のように分割します。

C# を使用して二分探索アルゴリズムを作成する方法 C# を使用して二分探索アルゴリズムを作成する方法 Sep 19, 2023 pm 12:42 PM

C# を使用してバイナリ検索アルゴリズムを作成する方法。バイナリ検索アルゴリズムは効率的な検索アルゴリズムです。時間計算量 O(logN) で順序付けられた配列内の特定の要素の位置を見つけます。 C# では、次の手順で二分探索アルゴリズムを作成できます。ステップ 1: データを準備する まず、検索対象のデータとしてソートされた配列を準備する必要があります。配列内の特定の要素の位置を見つけたいとします。 int[]data={1,3,5,7,9,11,13

See all articles