CSSとSASS精度の物語
レイアウトのパーセンテージの課題:ブラウザの違いと浮動点精度の問題
ブラウザの矛盾と浮動点精度の仕様の欠如により、レイアウトの割合は非常に困難です。
SASSの利点:精度とコードの読みやすさを向上させます
SASSは、複雑な計算を処理し、StyleSheetを読みやすくしやすくすることで精度を向上させる前処理器スクリプト言語です。ただし、SASSのデフォルト精度オプションは5ですが、場合によっては低すぎる場合があります。
関数:ブラウザの計算と丸め
calc()
calc(..)
説明全体を開始する前に、私たちのケースに非常に関連する小さなコードに取り組みます。
問題は何ですか?
<code>.list-item { float: left; width: 33%; }</code>
ただし、33%33%は99%に等しく、100%ではありません。ほとんどの場合、これは違いをもたらさないかもしれませんが、直線のアライメントを扱う場合、1%が大きな影響を与える可能性があります。幅14ピクセルの容器の1%は14ピクセルです。これはかなりの距離です。
小数点をより正確にするために小数点を移動する(または追加する)だけではないのですか?ギャップを1.4ピクセルまたは0.14ピクセルに減らすことができますが、これはもはやトラブルの価値がないと思います。次に、ここから始めます。
うまく機能しますが、それでも完璧ではありません。ジョン・アルビン・ウィルキンスは、この問題でこの問題を広範囲に議論しています。まだ読んでいない場合は、読んでください。
ブラウザはこれを処理できませんか?
<code>.list-item { float: left; width: 33.33%; }</code>
上記の記事の次の例:
[…]列あたり100%の幅の6列グリッド÷6 = 16.666667%を使用します。幅1000ピクセルのビューポートで(数学を簡単にするために便利に選択しました)、各列は166.66667ピクセルに計算されます。仕様はガイドラインを提供していないため、ブラウザメーカーは独自のルールを自由に策定できます。ブラウザが最も近いピクセルに丸くなると、この例では167ピクセルが得られます。しかし、167 x 6 = 1002ピクセル以降、私たちのビューポートの6つの列すべてを収容する余地はもうありません。または、ブラウザが列あたり166ピクセルまで丸められた場合、すべての列をビューポートに完全に入れるよりも4ピクセルが少なくなります。 - ジョン・アルビン・ウィルキンス
これが起こったことです。インターネットエクスプローラーの古いバージョン(主に6および7)が最も近い整数に丸みを帯びており、レイアウトの中断を引き起こしました。 WebKitブラウザは締めくくります。これにより、壊滅的なレイアウトの結果が防止されますが、余分なスペースが残ります。 Opera(少なくとも古いレンダリングエンジンでは)は、私が説明するのが面倒だという奇妙なことをしています。しかし、仕様にはこの動作に関するルールはありませんので、誰を責める必要がありますか?もちろん、サブピクセルレンダリングを使用するブラウザではありません。最終的にこれが最良の結果を生み出す方法だからです。
とにかく、これは単に混乱であり、この記事の結論でこの問題について再び議論します。
sassはどうですか?
SASSは数学的操作をサポートしています。これは新しいものではありません。実際、SASSが最初に使用したいくつかのことの1つです(数学ベースのグリッドシステムの構築に)。容器の幅を3つの等しい部分に分割したいとSASSに伝えることができます。
<code>.list-item { float: left; width: 33%; }</code>
同じ結果を取得するためにパーセンテージ(..)関数を使用することもできます。
RubyとLibsassでは、SASSの精度オプションは5です。これは、非常に低いため、実際には問題です。<code>.list-item { float: left; width: 33.33%; }</code>
このコードは、次のCSSを生成します:
これはブラウザの問題を解決するものではありませんが、執筆スタイルシートを簡単にします。計算や精度に対処する必要がないだけでなく、計算を実際に表示することで、コードを読みやすく更新しやすくします。
<code>.list-item { float: left; width: (100% / 3); }</code>
これは良いことだと思います。
両方の世界の最高の
これまでのところ、SASSが値をハードコードするのではなく、計算を処理させる方が良いことを学びました。さて、最良の方法は、ブラウザにこれをできる限り最良の方法で処理させることです。これを行うには、
css関数を使用できます。
calc(..)
<code>.list-item { float: left; width: percentage(1 / 3); }</code>
calc(..)
式(主にInternet Explorer 8およびOpera Mini)をサポートしていないブラウザの場合、SASS操作として表される静的値をその前に配置できます。このようにして、私たちは両方の世界で最高のものを持つことができます。
<code>.list-item { float: left; width: 33%; }</code>
結論
すぐにレビューしましょう。第一に、ブラウザの矛盾と浮動小数点精度の仕様の欠如により、レイアウトの割合を処理するのは困難です。
次に、複雑な計算によって生成されたハードコード値は通常、良い考えではありません。 SASSに近似値(5小数点)を計算できます。
さらに良いことに、ブラウザに近似値を計算できます。理想的な世界では、ブラウザが数学とレンダリングを担当するとき、それを最大限に活用できるはずです。この方向に移動するには、calc(..)
関数に依存します。
これはほぼ現在の状況です。新しいものは何もありませんが、簡単なレビューが役立つと思います!
CSSおよびSASS精度(FAQ)に関するFAQ
CSSとSASSの違いは何ですか?CSS(Cascading Style Sheet)は、HTMLで書かれたドキュメントの外観とフォーマットを説明するために使用されるStyleSheet言語です。 SASS(SyntaxのSmart StyleSheets)は、CSSに解釈またはコンパイルされたプリプロセッサスクリプト言語です。 2つの主要な違いは、SASSには、変数、ネスト、ミックス、継承など、CSSには存在しない機能があることです。これらの機能により、SASSはCSSよりも強力で柔軟になります。
CSSとSASSでの精度はどのように機能しますか?
CSSおよびSASSの精度とは、スタイルレンダリングの詳細と精度を指します。 CSSでは、変数や関数が不足しているため、精度はしばしば制限されています。一方、SASSは、高度な機能のおかげでより高い精度を可能にします。たとえば、特定の色またはサイズの変数を定義し、スタイルシート全体で一貫して使用して、設計の正確性と一貫性を確保できます。
どんなWebプロジェクトでもSASSを使用できますか?
はい、あらゆるWebプロジェクトでSASSを使用できます。 SASSは、CSSのすべてのバージョンと互換性があります。したがって、CSSから始めて、必要に応じてSASS機能を追加できます。ただし、SASSにはプリプロセッサがブラウザが解釈できるCSSに変換する必要があることを忘れないでください。
CSSでSASSを使用することの利点は何ですか?
SASSは、CSSよりもいくつかの利点を提供します。これにより、変数、ネスト、ミックスイン、継承を使用することで、スタイルシートがより整理され、再利用可能で、メンテナンスが容易になります。 SASSは数学操作もサポートしており、スタイルシートで寸法と色を直接計算できるようにします。
CSSまたはSASSコードの精度を改善する方法は?
変数を使用して一貫した値を取得し、数学操作を使用して正確な計算を実行し、関数とミキシンを使用して再利用可能なスタイルを取得することにより、CSSまたはSASSコードの精度を改善できます。さらに、CSSリセットを使用すると、異なるブラウザー間の一貫性を確保できます。
CSSプリプロセッサとは何ですか?なぜSASSはそれを必要とするのですか?
CSSプリプロセッサは、CSSのデフォルト機能を拡張するスクリプト言語です。 StyleSheetsで変数、ネストされたルール、ミックス、機能、数学操作を使用できます。 SASSはCSSプリプロセッサです。ブラウザはCSSのみを解釈できるため、必要です。したがって、SASSコードは、Webプロジェクトで使用される前にCSSにコンパイルする必要があります。
SASSは、ドライの書き込み(自分自身を繰り返さないでください)コードをどのように役立ちますか?
SASSは、変数、Mixin、継承などの機能をサポートしています。これは、ドライコードの書き込みに役立ちます。変数を使用すると、一度に値を定義し、複数の場所で使用できます。 Mixinを使用すると、他のルールに含めることができる再利用可能なスタイルを作成できます。継承を使用すると、あるセレクターから別のセレクターにCSSプロパティのセットを共有できます。
SASSを使用する潜在的な落とし穴は何ですか?
SASSには多くの利点がありますが、潜在的な落とし穴もあります。前処理者の必要性は、開発プロセスの複雑さを高める可能性があります。さらに、ネストや混合物などの一部のSASS機能により、不適切に使用するとCSS出力が膨満し、非効率性が発生する可能性があります。
学習とSASSの使用を開始する方法は?
オンラインでSASSを学ぶために利用できるリソースがたくさんあります。公式SASS Webサイトは、開始するための包括的なガイドを提供しています。 Web開発Webサイトやオンライン学習プラットフォームでチュートリアルを見つけることもできます。 SASSを始めるには、開発環境にSASSプリプロセッサをセットアップする必要があります。
既存のCSSコードをSASSに変換できますか?
はい、既存のCSSコードをSASSに変換できます。 SASSはCSSのスーパーセットであるため、有効なCSSは有効なSASSです。まず、.cssファイルを.scss(sassy css)に変更してから、コードでsass機能の使用を徐々に開始できます。
以上がCSSとSASS精度の物語の詳細内容です。詳細については、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の動きのための新しい属性を導入します

この2部構成のシリーズの最初の部分では、2つの親指スライダーを取得する方法を詳しく説明しました。今、私たちは&#039; llが一般的なマルチサンプスのケースを見ていますが、別のものと

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

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です
