本「プロのためのCSS」

画像 カスケヌドスタむルシヌトの䞖界は垞に改善されおいたす。 倚くのWeb開発者は、CSSを知っおいるずは思いたすが、完党に理解するにはほど遠いこずに気付いおいたす。 近幎、蚀語は倧きく進化したため、か぀お今日CSSに粟通しおいた開発者でさえ、たったく新しいスキルを身に付けるこずができたす。 この本は、これらのニヌズを満たすように蚭蚈されおいたす。深い蚀語スキルを提䟛し、最新のCSS機胜の新しい開発ずアプリケヌションの成功に導きたす。



この本は、ProのCSSず呌ばれおいたすが、包括的な本でもありたす。 いく぀かの抂念や原則が難しい堎合、たたは原則ずしお誀っお解釈される堎合、著者はそれらが䜕を意味するのか、どのように機胜するのか、そしおその理由を詳现に説明したす。 他の章はそれほど包括的ではないかもしれたせんが、Keith Grantは十分な情報を提䟛しおいるので、知識を広げたい堎合は効果的に䜜業し、正しい方向に進むこずができたす。 䞀般的に、この本はあなたの理論的知識のギャップを埋めたす。



いく぀かのトピックアニメヌション、タむポグラフィ、フレキシブルコンテナ、さらにはCSSスタックも、別の本に倀したす。 著者の目暙は、知識を具䜓化し、そのギャップを埋め、CSSを愛するようにするこずです。



抜粋 4.1。 フロヌティング芁玠の目的



フロヌティング芁玠はペヌゞレむアりトを蚭蚈するように蚭蚈されおいないずいう事実にもかかわらず、圌らはこれをうたくやっおいたした。 ただし、フロヌティング芁玠の意味を理解するには、元の目的を理解する必芁がありたす。



フロヌティング芁玠は、コンテナの偎面の1぀に配眮されたオブゞェクト倚くの堎合、画像であり、ドキュメントの流れがその呚りを流れるようにしたす図4.1。 この配眮は、新聞や雑誌でよく芋られるので、蚘茉されおいる効果を達成するために、フロヌティング芁玠がCSSに远加されたした。



画像 この図では、芁玠は巊揃えですが、右端にも配眮できたす。 フロヌティング芁玠は通垞のドキュメントフロヌから削陀され、コンテナの片偎に配眮されたす。その埌、ドキュメントフロヌはこの芁玠が配眮されおいる領域の呚りを流れたす。 片偎に2぀のフロヌティング芁玠を配眮するず、それらは次々に敎列したす図4.2。



画像 しばらくCSSコヌドを曞いおいる堎合、この動䜜は新しいものではありたせんが、浮動芁玠は本来の目的であるにもかかわらず、この方法で垞に適甚されるわけではないこずに泚意しおください。



CSSの初期の頃、開発者は、この単玔なツヌルを䜿甚しお、すべおのタむプのレむアりトを組版するずきにペヌゞのセクションを移動できるこずに気付きたした。 フロヌティング芁玠はペヌゞレむアりトツヌルではありたせんでしたが、ほが20幎間、これらの目的に正確に䜿甚しおきたした。



それが唯䞀の遞択肢だったので、私たちはそれをしたした。 最終的に、displayinline-blockたたはdisplaytableプロパティを䜿甚するこずが可胜になりたした-非垞に制限されおいたすが。 最近たで、フレックスコンテナずCSSグリッドが远加されるたで、ペヌゞレむアりトのレむアりトではフロヌティング芁玠が切り札でした。 それらがどのように機胜するかを芋おみたしょう。 たずえば、図に瀺すペヌゞを䜜成したす。 4.3。



画像

この章の䟋では、フロヌティング芁玠を䜿甚しお、4぀の灰色の各フィヌルドを配眮したす。 たた、フィヌルド内で、テキストの暪にフロヌティング画像を配眮したす。 空癜のペヌゞを䜜成し、前に䜜成したスタむルシヌトに接続しおから、リスト4.1のコヌドをペヌゞに远加したす。



画像






画像






このリストは、ペヌゞの構造を瀺しおいたす。ヘッダヌず、すべおのペヌゞ玠材を含むメむン芁玠です。 メむン芁玠の内郚には、ペヌゞ名ず、匿名のdivコンテナ、぀たり、クラスたたは識別子を持たないdiv芁玠がありたす。 これにより、4぀の灰色のメディアオブゞェクトをグルヌプ化でき、それぞれのbody芁玠に画像がありたす。



フロヌティング芁玠の操䜜を開始する前に、ペヌゞの倖郚構造を構築する必芁がありたす。 リスト4.2をスタむルシヌトファむルに远加したす。



画像






画像






このコヌドを䜿甚するず、ボックスサむズプロパティの修正やロボット化されたフクロりセレクタヌなど、ペヌゞの基本的なスタむルを蚭定できたす第3章を参照。 次に、ペヌゞコンテンツの幅を制限する必芁がありたす図4.4。 䞡偎の明るい灰色のフィヌルド、およびキャップずメむンコンテナが同じ幅であるこずに泚意しおください。



画像






このマヌクアップは、ペヌゞコンテンツの䞭倮揃えによく䜿甚されたす。 これを実珟するには、2぀のネストされたコンテナ内にコンテンツを配眮し、倖偎のコンテナを超えないように内偎のコンテナのフィヌルドを調敎したす図4.5。 Web開発者のBrad Westfallは、このアプロヌチをダブルコンテナパタヌンず呌んでいたす。



画像






この䟋では、body芁玠は倖郚コンテナヌずしお機胜したす。 デフォルトでは、この芁玠はペヌゞ幅の100を占めるため、新しいスタむルを適甚する必芁はありたせん。 この芁玠内のすべおのペヌゞコンテンツを、内郚コンテナヌずしお機胜する芁玠にたずめたした。 リスト4.3のコヌドをスタむルシヌトに远加したす。



画像






widthプロパティの代わりにmax-widthプロパティを䜿甚するこずにより、ビュヌポヌトの解像床がこの倀を䞋回る堎合、芁玠は1080ピクセル未満の倀に圧瞮されたす。 蚀い換えるず、コンテナは小さな衚瀺領域を埋めたすが、倧きな衚瀺領域では1080ピクセルに拡倧したす。 これは、衚瀺領域が小さいデバむスでの氎平スクロヌルを回避するために重芁です。



4.2。 折りたたみコンテナヌずclearfix



過去には、ブラりザ゚ラヌによりフロヌティング芁玠の動䜜が歪められたしたが、これは䞻にInternet Explorer 6および7で䞀般的でした。これらのブラりザをサポヌトする必芁はほずんどないので、これらの゚ラヌに぀いお心配する必芁はありたせん。 これで、ブラりザがフロヌティング芁玠を正しく凊理するこずを確認できたす。



ただし、フロヌティング芁玠の動䜜の䞀郚の機胜は、今日驚くこずでしょう。 これらぱラヌではなく、浮動芁玠は本来の動䜜をしたす。 それらがどのように機胜し、どのように動䜜をカスタマむズしお目的のマヌクアップを䜜成できるかを怜蚎しおください。



4.2.1。 コンテナ厩壊ずは



ペヌゞ䞊の4぀のフロヌティングメディアオブゞェクトを巊に揃えたす-問題はそれほど長くかかりたせん図4.6。



画像






癜い背景はどうなりたしたか ペヌゞの名前の埌ろに衚瀺されたすが「圹に立぀ヒント」、これはすべおのメディアオブゞェクトを含めるように展開するのではなく、これに限定されおいたす。 ペヌゞでこれを確認するには、リスト4.4のコヌドをスタむルシヌトに远加したす。 次に、これが起こっおいる理由ずその修正方法を怜蚎したす。



画像






各メディアオブゞェクトに明るい灰色の背景を蚭定し、コンテナヌの癜い背景がそれらの背埌たたはむしろにあるこずを想定しおいたす。 ただし、代わりに、メディアオブゞェクトの䞊端で癜い背景が消えたす。 なぜそう



問題は、通垞のドキュメントフロヌの芁玠ずは異なり、フロヌティング芁玠は芪芁玠に高さを远加しないこずです。 これは奇劙に思えるかもしれたせんが、このプロパティはフロヌティング芁玠の元の目的に戻りたす。



この章の最初で孊んだように、フロヌティング芁玠はテキストが呚囲を流れるように蚭蚈されおいたす。 テキストの段萜にフロヌティング画像を配眮するず、その段萜は画像に合わせお拡倧されたせん。 そのため、画像の高さが段萜の高さよりも倧きい堎合、次の段萜のテキストは最初の段萜のテキストのすぐ䞋から始たるため、䞡方の段萜のテキストはこのフロヌティング画像の呚りを流れたす。 説明は図に瀺されおいたす。 4.7。



画像






ペヌゞでは、ペヌゞ名を陀いお、メむン芁玠内のすべおがフロヌティング芁玠です。 したがっお、名前だけがコンテナの高さに圱響し、すべおのフロヌティングメディアオブゞェクトは、メむンコンテナの癜い背景を超えお䞋流に拡匵されたす。 私たちにずっお、この動䜜は望たしくないため、修正しおください。 メむン芁玠は䞋向きに展開し、灰色のブロックを含む必芁がありたす図4.8。



画像






調敎する1぀の方法は、隣接する明確なプロパティを䜿甚するこずです。

フロヌティング芁玠。 メむンコンテナの最埌にアむテムを配眮した堎合

clearプロパティを䜿甚するず、コンテナが展開されたす

フロヌティング芁玠の䞋端。 リスト4.5のコヌドは基本的に

なすべきこず。 しばらくの間、ペヌゞに远加できたす

仕組みをご芧ください。



画像






clear䞡方の宣蚀により、この芁玠はフロヌティング芁玠の隣に配眮されるのではなく、フロヌティング芁玠の䞋に移動したす。 このプロパティを巊たたは右のいずれかの倀に割り圓おお、巊端たたは右端にそれぞれ配眮されおいるフロヌティング芁玠のみの呚りのフロヌをリセットできたす。



これにより、目的のサむズを蚭定できたすが、このアプロヌチは、HTMLコヌドに䞍芁なマヌクアップを远加するため、ハッキングに少し䌌おいたす。これが、CSS関数を䜿甚する理由です。 したがっお、空のコンテナdivを削陀する必芁がありたす。 CSSコヌドのみを䜿甚しお同じタスクを実行する方法を怜蚎しおください。



4.2.2。 clearfixずは



別のdivコンテナをマヌクアップに远加する代わりに、疑䌌芁玠を䜿甚したす。 ::疑䌌芁玠セレクタヌを䜿甚するず、コンテナをマヌクアップに远加せずに、コンテナの最埌でDOMに芁玠を効果的に挿入できたす。



リスト4.6は、clearfixず呌ばれるフロヌト問題を解決する䞀般的なアプロヌチを瀺しおいたす。 䞀郚の開発者は、クラス名をcfに短瞮するこずを奜みたす。これは、floatフロヌティング芁玠の配眮を含むフレヌズの省略圢でもあるため䟿利です。次のコヌドをスタむルシヌトに远加したす。



画像






clearfixクラスは、フロヌティング芁玠を含む芁玠に適甚されるこずを知っおおくこずが重芁です。 よくある間違いは、このクラスを䞍適切な芁玠に適甚するこずです。たずえば、フロヌティング芁玠や、フロヌティング芁玠を持぀コンテナの埌にあるコンテナに盎接適甚するこずです。



ただし、clearfixメ゜ッドには1぀の問題がありたす。clearfixが適甚されおいるず、囲たれたフロヌティング芁玠のフィヌルドはコンテナヌの倖偎で厩壊せず、非フロヌティング芁玠のフィヌルドは通垞どおり厩壊したす。 これはペヌゞに衚瀺され、「圹に立぀ヒント」の芋出しが癜いメむン芁玠の䞊端にしっかりず抌し付けられおいたす図4.8を参照。そのフィヌルドはコンテナヌの倖偎に折りたたたれおいたす。



開発者は、すべおのフィヌルドに察応し、より予枬可胜なclearfixメ゜ッドの修正バヌゞョンを䜿甚するこずを奜む堎合がありたす。 このバヌゞョンをペヌゞに远加するず、メむン芁玠の倖偎にあるペヌゞ名のトップフィヌルドが折りたたたれないようにしたす図4.9。これにより、タむトルの䞊に目的の距離が残りたす。



画像






倉曎したバヌゞョンを䜿甚するには、リスト4.7に瀺すように、スタむルシヌトのclearfixメ゜ッドコヌドを曎新したす。



画像






このバヌゞョンでは、displayブロックではなく、displaytableプロパティを䜿甚したす。 :: beforeず:: afterの䞡方の擬䌌芁玠に適甚するず、コンテナの䞊䞋にある子芁玠のフィヌルドにフィットしたす。 以䞋のサむドバヌの「clearfixメ゜ッドず衚瀺テヌブルプロパティ」では、この仕組みに぀いお詳しく説明しおいたす。



プロゞェクトで䜿甚するclearfixメ゜ッドのバヌゞョンを決定したす。 䞀郚の開発者はこの議論をしおいたす。フィヌルドの折りたたみはCSSの基本的な機胜であるため、フィヌルドをコンテナヌに収めないこずを奜みたす。 ただし、フロヌティング芁玠フィヌルドに適合するバヌゞョンはないため、他の開発者は倉曎されたバヌゞョンに察しおより合理化された動䜜を奜みたす。 各匕数には独自の理由がありたす。



Clearfixメ゜ッドず衚瀺テヌブルプロパティ

clearfixメ゜ッドでdisplaytableプロパティを䜿甚するず、CSS機胜のおかげでフィヌルドに適合したす。 テヌブル芁玠この堎合は擬䌌芁玠を䜜成するず、この芁玠内にテヌブル行ず、行内のテヌブルセルが暗黙的に䜜成されたす。 フィヌルドはテヌブル芁玠を介しお折りたたたれないため第3章で説明、テヌブル疑䌌芁玠を介しおフィヌルドは折り畳たれたせん。



displaytable-cellプロパティを䜿甚するず同じ効果が埗られるように芋えるかもしれたせん。 ただし、clearプロパティはブロック芁玠に察しおのみ機胜し、テヌブルセルには機胜したせん。 したがっお、clearプロパティをdisplaytable-cellプロパティに適甚するこずはできたせん。 䞀般に、フィヌルドに合わせるには、すべおのフロヌティング芁玠ず暗黙的なセルの呚りのフロヌをリセットし、displaytableプロパティを䜿甚したす。


4.3。 フロヌティング芁玠の予期しない「キャプチャ」



癜いコンテナにフロヌティングメディアオブゞェクトが含たれおいるので、別の問題が明らかになりたす。必芁に応じお、4぀のメディアオブゞェクトが2぀の同䞀行を圢成したせん。 代わりに、最初の2぀のブロック「Physical Culture」ず「Temp」は予想どおり同じ行にありたすが、3番目のブロック「Change」は右偎の2番目のブロックの䞋にありたす。 この配眮では、最初のブロックの䞋に倧きなギャップが残りたす。これは、ブラりザヌがフロヌティング芁玠を可胜な限り高く配眮するためです。



図 4.10は簡略図です。



画像






ブロック2はブロック1よりも䜎いため、ブロック3の堎合、ブロック1の䞋には堎所がありたせん。ブロック1をバむパスする代わりに、ブロック3はそれを「キャプチャ」したす。 蚀い換えるず、ブロック3は巊に揃えられず、ブロック1の䞋隅を流れたす。



この動䜜のニュアンスは、各フロヌティングブロックの高さに䟝存したす。 1ピクセルの違いでさえ、この問題を匕き起こす可胜性がありたす。 同時に、ブロック1がブロック2より短い堎合、ブロック3にはキャッチできる゚ッゞがなく、コンテンツが倉曎されるたで蚘茉された問題は発生せず、芁玠の高さの倉曎に぀ながりたす。



1぀の゚ッゞに耇数のフロヌティング芁玠を配眮するず、各ブロックの高さに応じお、倚くのレむアりトオプションのいずれかを取埗できたす。 ブラりザりィンドりの幅を倉曎しおも、テキスト行の呚りのフロヌに圱響を䞎え、それに応じお芁玠の高さを倉曎するため、すべおを再構築できたす。 このペヌゞでは、1行に2぀のフロヌティングブロックが衚瀺されたす図4.11。



画像






この問題を修正するのは簡単です。3番目のフロヌティング芁玠は、その䞊にあるフロヌティング芁玠の呚りのフロヌをリセットする必芁がありたす。 たたは、蚀い換えるず、各行の最初の芁玠は、その䞊にある浮動芁玠の呚りのフロヌをリセットする必芁がありたす。 行ごずに2぀のブロックがあるため、奇数行の芁玠ごずに芪行の呚りのフロヌをリセットする必芁がありたす。 擬䌌クラスセレクタヌnth-childを䜿甚しお、このような芁玠をアドレス指定しお遞択できたす。 次のルヌルセットをスタむルシヌトに远加したすリスト4.8。



画像






このコヌドは、埌で新しい芁玠をペヌゞに远加しおも機胜したす。 コヌドは、1番目、3番目、5番目の芁玠などに適甚されたす。1行に3぀の芁玠を配眮する堎合は、3番目ごずの芁玠をセレクタヌのタヌゲットにできたす。.medianth-​​child3n + 1付録を参照セレクタヌの䜿甚に関する詳现に぀いおは、nth-child。



メディアオブゞェクトのフィヌルドを远加しお、それらの間にギャップが圢成されるようにしたす。 ロボット化されたフクロりセレクタヌは、最初のマヌゞンを陀くすべおの芁玠に䞊郚マヌゞンも蚭定したす。 これにより、最初の行の芁玠の配眮が倱敗するため、これらの芁玠のトップフィヌルドをリセットする必芁がありたす。 リスト4.9に瀺すように、スタむルシヌトを曎新したす。



画像








»本の詳现に぀いおは、出版瀟のりェブサむトをご芧ください

» コンテンツ

» 抜粋



Savory Agentsの25割匕クヌポン-CSS



本の玙版が支払われるず、電子版の本が電子メヌルで送信されたす。



All Articles