『CSS Secrets』は、@Lea Verou による最新の本で、CSS に関する小さな秘密を説明しています。これは CSSers にとって読む価値のある本です。一定期間読んだ後、私、@全域と @彦子は、関連する読書感想文を W3cplus で公開し、皆さんと共有します。
スクロール バーは主に、現在表示されているコンテンツがすべてではなく、スクロールすることでさらに表示できることをユーザーに伝えるために使用されます。ただし、それらは扱いにくく、気が散ってしまう傾向があるため、最新のオペレーティング システムではそれらを簡素化し始めており、多くの場合、ユーザーが実際にスクロール可能な要素を操作するまでは完全に非表示になります。
現在、スクロール バーがスクロールの制御に使用されることはほとんどありませんが (ユーザーはジェスチャーを使用して画面をスライドする傾向があります)、完全には表示されていない要素にさらに多くのコンテンツがあることをユーザーに思い出させ、微妙な方法で情報を伝えることは、次のような場合にも役立ちます。ユーザーが現在操作していない要素。
このボックスの内容は実際には現在表示されているものより多く、スクロール可能です。しかし、対話しなければ、まったく気付かないでしょう。
Google が開発したリーダーである Google Reader (現在は廃止されています) の UX デザイナーは、これを促す非常にエレガントな方法を見つけました。コンテンツが増えると、サイドバーの上部または下部に微妙な影が表示されます。
- 左の画像: 上にスクロール
- 中央の画像: 上下にスクロール
- 右の画像: 下にスクロール
ただし、この効果を実現するために、Google Reader ではかなり多くのスクリプトが使用されています。これは本当に必要ですか? CSS を使用して同じ効果を実現できるでしょうか?
解決策
まず、いくつかの単純な HTML タグ、通常の順序なしリスト、およびいくつかのプレースホルダー コンテンツ (奇妙な名前 orz) から始めます。
<ul> <li>Ada Catlace</li> <li>Alan Purring</li> <li>Schrödingcat</li> <li>Tim Purrners-Lee</li> <li>WebKitty</li> <li>Json</li> <li>Void</li> <li>Neko</li> <li>NaN</li> <li>Cat5</li> <li>Vector</li></ul>次に、コンテナを小さくするための基本的なスタイルを適用します。コンテンツよりもスクロールするようにします:
overflow: auto;width: 10em;height: 8em;padding: .3em .5em;border: 1px solid silver;さて、物事は面白くなり始めます。放射状のグラデーションを使用して、上にシャドウを適用します。
background: radial-gradient(at top, rgba(0,0,0,.2),transparent 70%) no-repeat;background-size: 100% 15px;結果は下の画像で確認できます。
現在、最初にスクロールを開始した場所に停止しています。デフォルトでは、背景画像は次のように表示されます。要素がどれだけスクロールされたかに関係なく、背景画像の位置は要素に対して固定されます。これは、background-attachment:fixed を持つ画像にも機能します。それらの唯一の違いは、ページ自体がスクロールされてもその位置に留まるということです。要素の内容に合わせて背景画像をスクロールさせる方法はありますか?
数年前には、この単純なことはほとんど不可能だったでしょう。ただし、問題は明らかです。CSS3 では、background-attachment: local に新しいキーワードが追加されています。
ただし、background-attachment: local では私たちのケースはうまく解決できませんでした。これを影のグラデーションに適用すると、まったく逆の結果が得られます。上までスクロールすると影が表示されますが、下にスクロールすると影が消えます。これはほんの始まりにすぎませんが、方向性を変えていきます。
新しいトリックは 2 つの背景を使用することです。1 つは影を生成するもので、もう 1 つは基本的に影を覆いマスクとして機能する白い長方形です。影の背景には、所定の位置に留まらせたいため、デフォルトの背景添付ファイル (scroll) が付いています。次に、マスクされた背景の背景アタッチメントはローカルであるため、上にスクロールすると影が覆われ、下にスクロールするとコンテンツとともにスクロールして影が表示されます。
線形グラデーションを使用してマスク長方形を作成し、要素の背景と同じ色を保ちます (この例では、色は白です):
background: linear-gradient(white, white), radial-gradient(at top, rgba(0,0,0,.2),transparent 70%);background-repeat: no-repeat;background-size: 100% 15px;background-attachment: local, scroll;スクロールのさまざまな段階で下の画像で確認できます。効果。
期待した効果があるように見えることに気づくかもしれませんが、明らかな欠点が 1 つあります。少しスクロールしただけで影が表示される方法が非常に途切れ途切れで扱いにくいです。滑らかにする方法はありますか?
- 左の画像: 一番上までスクロールします
- 中央の画像: ゆっくり下にスクロールします
- 右の画像: 素早く下にスクロールします
background: linear-gradient(white, hsla(0,0%,100%,0)), radial-gradient(at top, rgba(0,0,0,.2),transparent 70%);
为什么是白色渐变而不是直接一个 transparent 呢?后者实际上是 rgba(0,0,0,0) 的别名,这样如果它是从不透明白色到透明黑色的过渡的话,渐变可能包含灰色阴影。如果浏览器是通过premultiplied RGBA space插入颜色,这应该不会发生。不同的插值算法是这本书范围之外的内容,但是在网上有大量的资料可以查看。
这是朝着正确方向迈出的一步~~如图所示,
它的阴影确实是逐渐显示的,和我们的期望相符。但是,它目前有一个非常严重的缺陷:当我们滚动到顶部的时候,它就不能像之前那样把阴影覆盖掉了。我们可以通过把 white 色标下移一些( 15px 是精确值,和我们阴影的高度值一致)来解决这个事情,这样在开始褪色之前我们就可以得到一块纯白色的区域,正好将阴影完全覆盖。此外,我们需要增加蒙版背景的大小,让它比阴影大,否则我们就得不到渐变。确切的高度取决于我们希望效果的平滑度是多少(比如说,当我们滚动的时候,阴影显示的快慢?)经过试验, 50px 是一个合理值。最后的代码如下所示:
background: linear-gradient(white 30%, transparent), radial-gradient(at 50% 0, rgba(0,0,0,.2),transparent 70%);background-repeat: no-repeat;background-size: 100% 50px, 100% 15px;background-attachment: local, scroll;
效果如下:
当然,为了实现原始效果,我们需要再加两个渐变用于底部阴影和它的蒙版,但是逻辑基本上是一样的,所以就留给读者做练习吧(可以在下面的示例中查看解决方案)。

ブール属性は、値なしでアクティブ化されるHTMLの特別な属性です。 1.ブール属性は、無効化された入力ボックスを無効にするなど、存在するかどうかによって、要素の動作を制御します。 2.彼らの実用的な原則は、ブラウザが異なっているときに属性の存在に応じて要素の動作を変更することです。 3.基本的な使用法は、属性を直接追加することであり、高度な使用法はJavaScriptを介して動的に制御できます。 4.一般的な間違いは、値を設定する必要があると誤って考えており、正しい執筆方法は簡潔にする必要があります。 5.ベストプラクティスは、コードを簡潔に保ち、ブールのプロパティを合理的に使用して、Webページのパフォーマンスとユーザーエクスペリエンスを最適化することです。

HTMLコードは、オンラインバリデーター、統合ツール、自動化されたプロセスを使用するとクリーンになります。 1)w3cmarkupvalidationserviceを使用して、HTMLコードをオンラインで確認します。 2)リアルタイム検証のためにVisualStudiocodeにhtmlhint拡張機能をインストールして構成します。 3)HTMLTIDYを使用して、建設プロセスでHTMLファイルを自動的に検証およびクリーニングします。

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









