検索
ホームページウェブフロントエンドhtmlチュートリアル『決定版CSSガイド』基礎復習+漏れチェック_html/css_WEB-ITnose

数日前、友人から CSS についていくつか質問されました。私は 1 年生の時から CSS に触れてきて、約 3 年半になります。 CSSに詳しい方。しかし、まだいくつかの質問に「混乱」していました...そこで、新しい会社に入社したばかりで、あまりやることがなかったので、「基礎学習」+「確認と確認」のために「CSS権威ガイド」を手に取りました。この記事では主に、CSS で注目すべきと思われるいくつかの知識点をまとめています (この記事の知識点は本書の範囲に限定されています。CSS のすべてのスタイルについて話したい場合は、ゆっくり行くことにします〜)。

Selector

ここで説明したいのは、クラスセレクターの入れ子選択とマルチクラスセレクターの違いです ちなみに、第1レベルのサブ要素の選択も含まれます

基本的な書き方クラスセレクター:

.your-class{/*...*/}

クラスセレクターのネストされた選択記述方法:

.first-class .second-class{/*...*/}

マルチクラスセレクターの基本的な記述方法:

.first-class.second-class{/*...*/}

第一レベルの子要素の選択記述方法:

.first-class > .second-class{/*...*/}

コードとの違い:

rrree

結論:

· クラス セレクターのネストされた選択では、(レベルに関係なく) 2 番目のスタイル クラスを含む最初のスタイル クラスの下のすべてのサブ要素が選択されます。サブ要素)

· 1 第 1 レベルの子要素の選択には、第 1 スタイルの下にある第 1 レベルの子要素はカウントされません。最初のスタイルと 2 番目のスタイルのクラスの組み合わせ

スタイルの優先度

スタイルの優先度は、セレクター自体のコンポーネントによって決まります。優先度の値は、次のような 4 つの部分で表されます。注

: 前半部分の優先度は後半部分の優先度よりも大きいため、値の間の大きさは無視してください。たとえば、0.0.1.0 は 0.0.0.12 より大きいなどです。

セレクターの具体的な優先順位は次のとおりです:

· セレクターで指定された各 ID 属性値に対して 0.1.0.0 を追加します。

· セレクターで指定された各クラス属性値、属性選択、または疑似クラスに対して、 add 0.0.1.0;

· セレクターで指定された各要素と擬似要素に対して、add 0.0.0.1;

· コンバイナーとワイルドカードの選択は優先順位に何も影響しません。

コードを使用して優先度を説明します:

<style>    .first-style.second-style{ color: blueviolet}    .first-style .third-style{ font-style: italic}    .first-style > .fourth-style{ font-weight: bold}</style>    <div class="first-style second-style">HELLO</div><div class="first-style third-style">hello</div><div class="first-style"><div class="second-style">HELLO</div></div><div class="first-style"><div class="third-style">hello</div></div><div class="first-style"><div><div class="third-style">Hello World</div></div></div><div class="first-style"><div class="fourth-style">Hello World</div></div><div class="first-style"><div><div class="fourth-style">Hello World</div></div></div>

すると、0.0.0.0 の 4 つの部分のうち、最初の部分が決して使用されていないことに気づくでしょう。どのように使用されますか?

一般に、最初の 0 は、他の宣言よりも具体的なインライン スタイル宣言用に予約されています。

例:

rrree

このセクションには「!重要」の問題もあります

「!重要」はスタイル宣言の後、つまりセミコロンの前に配置されます。また、特別な優先順位の値はありません。では、その優先順位にどう対処すればよいのでしょうか?次のコードを見てください:

rrree

結論:

"! important" 宣言の重要性は、他のすべての宣言を上回ります。

CSS の通常のフローと要素

通常のフロー

これは、左から右、上から下に表示される西洋言語のテキストを指します。これは、私たちがよく知っている従来の HTML ドキュメントのテキスト レイアウトでもあります。要素を通常のフローから外す唯一の方法は、要素を浮動/配置要素にすることです。

非置換要素

文書内に要素内容が含まれる場合、それを非置換要素と呼びます。例:

置換要素

は、他のコンテンツのプレースホルダーとして使用される要素を指します。例: 『決定版CSSガイド』基礎復習+漏れチェック_html/css_WEB-ITnose

ブロックレベル要素

通常のフローでは、「display:block」を宣言することで「改行」がボックスの前後に生成されます。この要素はブロックレベルのボックスを生成します。

インライン要素

これらの要素は、その前後に「行区切り文字」を生成しません。これらの要素は、「display:inline」を通じて、インラインボックスを生成できます。

margin マージン

1. マージンは垂直方向に結合されます

垂直方向に隣接するマージンが結合されます。 2 つのマージンのうち小さい方が、大きい方とマージされます (「重なる」と考えることもできます)。

特定の効果については例を参照してください:

div{ color: black} /* 0.0.0.1 */div p{ color:black} /* 0.0.0.2 */.my-div{ color:black} /* 0.0.1.0 */div.my-div{ color: black} /* 0.0.1.1 */.my-div .my-p{ color: black} /* 0.0.2.0 */.my-div p.my-p{ color: black} /* 0.0.2.1 */div.my-div p.my-p{ color: black} /* 0.0.2.2 *//*... 以此类推*/#div-id{ color: black} /*0.1.0.0 *//*... 继续类推*/

2.margin スタイルの順序

<div style="/*...*/"></div> <!--1.0.0.0 - ->

順序は次のように記録できます: 12 時から時計回りに 1 周します。

省略規則:

・左マージンの値が欠落している場合は、右マージンの値が使用されます

・下マージンの値が欠落している場合は、上マージンの値が使用されます

・右マージンの値が欠落している場合は、上マージンの値を使用します

缩写代码:

.first-margin{ margin: 50px;} /* 50px 50px 50px 50px */.second-margin{ margin: 50px 20px ;} /* 50px 20px 50px 20px */.third-margin{ margin: 50px 30px 10px;} /* 50px 30px 10px 30px */

3.margin应用于行内元素的效果

当margin应用于行内元素,则对水平面有影响,对垂直面无任何影响。

效果代码:

<style>  .mar-strong{ margin:20px 0}</style><div><strong class="mar-strong">hello world</strong> 

既然这里提到margin与行内元素之间的关系,我们也顺便看下padding与行内元素的关系吧。

当padding应用于行内元素,则对水平面有影响,对垂直面无影响(在没有设置background的情况下)。

看例子:

<style>  .mar-strong{ padding:20px 0px; background: red}</style><p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<strong class="mar-strong">hello world</strong>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>

以上例子可以去掉padding或者background看看布局上有什么影响来验证。请慎重处理这三者之间的关系哦。

background-attachment

这里稍微提下这个属性。

background: scroll || fixed || inherit

初始值:scroll

看效果代码:

<style>  .div-bg{ width: 100%; height: 3000px;}  .bg-attachment{ background-image: url(img/1.jpg); background-attachment: fixed; background-repeat: no-repeat; background-position: center}</style><div class="div-bg bg-attachment"></div>

从上面例子可以看到,当滚动页面的时候,背景图始终居中跟随滚动。

浮动与清除

元素浮动

· CSS允许所有元素浮动

· 浮动元素周围外边距不会合并

<style>    .div-float{float: left;margin: 50px}</style><div class="div-float">HELLO WORLD</div><div  class="div-float">hello world</div>

· 浮动元素会生成一个块级框,不论这个元素本身是什么。

<style>    .span{ margin: 50px}    .span-float{ float: left;}    </style><span class="span span-float">HELLO WORLD</span><span class="span span-float">hello world</span>

清除浮动

清除浮动可由clear属性完成。

clear: left || right || both || none || inherit

初始值: none

这里我们主要说明下left、right和both。分别是清除左边浮动元素(左边不让你浮动)、清除右边浮动元素(右边不让你浮动)和清除左右两边的浮动(两边都不让存在浮动元素)。

<style>    .div-mar{ width: 100px;padding: 50px}    .div-red{ background: red}    .div-yellow{ background: yellow}    .div-float-left{ float: left}    .div-float-right{ float: right}    .div-clear-both{ clear: both}    .div-clear-left{ clear: left}    .div-clear-right{ clear: right}</style><div class="div-mar div-red div-float-left">HELLO WORLD</div><div class="div-mar div-yellow div-float-left div-clear-right">Hello World</div>

可以对以上[class*="div-red"]元素进行左右浮动,再用[class*="div-yellow"]元素进行清除浮动。

元素定位

元素的定位可以通过使用position属性。

positon: static || relative || absolute || fixed || inherit

初始值: static

static(静态/正常定位)

正常生成元素框。

relative(相对定位)

元素偏移某个距离,元素仍保持其未定位之前的形状。

absolute(绝对定位)

元素从文档流完全删除,并相对其包含块定位。

fixed(固定定位)

元素框的表现类似于absolute,不过其包含块是视窗本身。

元素relative/absolute/fixed定位的同时,会为其后代元素建立一个包含块。

什么是包含块?

在HTML中,根元素就是html元素。

· "根元素"的包含块由用户代理建立

· 对于一个非根元素,如果其position值为relative或static,则包含块由最近的块级框、表单元格或行内块祖先框的内容边界构成

· 对于一个非根元素,如果其position值为absolute,包含块设置为最近的position值不是static的祖先元素

"visibility:hidden"与"display:none"的区别

当我们设置一个元素visibility为hidden的时候,元素处于不可见状态,但元素仍然会影响到文档的布局(元素仍存在,只是看不见)。

当我们设置一个元素display为none的时候,元素不显示,并从文档流中删除(元素不存在,可用于渲染优化)。 

"content" 生成内容

使用content属性插入内容或属性值。

<style>    .div-content:before{ content: "[ "attr(value)" ] "}    .div-content:after{content:" hello world"}</style><div class="div-content" value="H">ello World</div>

附上在写的时候突然想到的一个问题

在不同元素内的子元素使用z-index的时候受不受父(祖先)元素之间关系的影响?

<style>    .div-out{width: 400px; height: 200px; background: black;border-bottom: 1px solid white; position: relative;}    .div-index-1{ width: 200px; height: 100px; background: red; position: absolute; bottom: -50px; z-index: 1}    .div-index-2{ width: 200px; height: 100px; background: yellow; position: absolute; top: -50px; left: 20px; z-index: 1}</style>        <div class="div-out">    <div class="div-index-1"></div>    </div>    <div class="div-out">    <div class="div-index-2"></div></div>

得出结论:不受影响。

新手文章,有问题可交流讨论,不喜勿喷~~~ 觉得本文还行的就小手点个赞给个鼓励吧~

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
自己閉鎖タグとは何ですか?例を挙げてください。自己閉鎖タグとは何ですか?例を挙げてください。Apr 27, 2025 am 12:04 AM

セルフクロージングのlandxmlareTagstatemtatemsem onedinedingsingaseparateclosingtag、SimmarifiedMarkupStructureanddendingCodingInefciency.1)areEssentionalinforementswithoutcontent、2)

HTMLを超えて:Web開発のための重要なテクノロジーHTMLを超えて:Web開発のための重要なテクノロジーApr 26, 2025 am 12:04 AM

強力な機能と優れたユーザーエクスペリエンスを備えたWebサイトを構築するには、HTMLだけでは十分ではありません。次のテクノロジーも必要です。JavaScriptは、Webページに動的とインタラクティブ性を与え、リアルタイムの変更がDOMを操作することで達成されます。 CSSは、美学とユーザーエクスペリエンスを向上させるために、Webページのスタイルとレイアウトを担当しています。 React、Vue.JS、Angularなどの最新のフレームワークとライブラリは、開発効率とコード組織構造を改善します。

HTMLのブール属性とは何ですか?いくつかの例を挙げてください。HTMLのブール属性とは何ですか?いくつかの例を挙げてください。Apr 25, 2025 am 12:01 AM

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

HTMLコードをどのように検証できますか?HTMLコードをどのように検証できますか?Apr 24, 2025 am 12:04 AM

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

HTML対CSSおよびJavaScript:Webテクノロジーの比較HTML対CSSおよびJavaScript:Webテクノロジーの比較Apr 23, 2025 am 12:05 AM

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

マークアップ言語としてのHTML:その機能と目的マークアップ言語としてのHTML:その機能と目的Apr 22, 2025 am 12:02 AM

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

HTML、CSS、およびJavaScriptの未来:Web開発動向HTML、CSS、およびJavaScriptの未来:Web開発動向Apr 19, 2025 am 12:02 AM

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

HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

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

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。