ホームページ ウェブフロントエンド CSSチュートリアル CSS3で複数の枠線を実装する方法を詳しく解説

CSS3で複数の枠線を実装する方法を詳しく解説

Mar 09, 2017 pm 05:36 PM

CSS3 の box-shadow は、複数の境界線を作成するのに非常に強力です。これは、CSS3 の複数の境界線を実装する方法の詳細な説明の焦点でもあります。その前に、互換性の高い従来の方法を見てみましょう。方法 1: p ネストを使用して複数の境界線を実現します。

レンダリング:


htmlコードCSS3で複数の枠線を実装する方法を詳しく解説

<p id="outer">
    <p id="inner">p嵌套实现多重边框</p>
</p>
ログイン後にコピー


cssコード

#outer {   
    width: 100px;   
    height: 100px;   
    background-color: bisque;   
    border: 10px solid brown;   
    position: relative;   
}   

#inner {   
    width: 84px;   
    height: 84px;   
    border: 8px solid blue;   
}   
/*#outer,
#inner {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}*/
ログイン後にコピー


欠点: 構造を変更できない場合や、HTML構造の変更コストが高い場合があります。複数の PS が角が丸くなるように設定されており、フレームが完全にフィットしません。丸みを帯びた複数の境界線のレンダリング:


CSS3で複数の枠線を実装する方法を詳しく解説方法 2: 複数の境界線を実現するには、outline+outline-offset を使用します。

2 つのレイヤーの境界線を描画するだけの場合は、アウトラインを使用することもできます。アウトラインはボーダーの外側のレイヤーであり、ボーダーの原則と同じです。アウトラインスタイルを設定すると、枠線の外側にもう一つ枠線のレイヤーを設定できます。 ただし、outline 属性で設定した枠線は、内部要素の枠線スタイルを変更しても変更されないことに注意してください。つまり、要素の境界線の角が丸くなっている場合でも、アウトラインで描かれた最も外側の境界線は長方形のままです。これはアウトライン描画枠の欠点です。
レンダリング:



html codeCSS3で複数の枠線を実装する方法を詳しく解説

<p id="outline">outlie实现多重边框</p>
ログイン後にコピー

css code

#outline {   
    width: 84px;   
    height: 84px;   
    border: 8px solid blue;   
    /*-webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;*/
    outline: 10px solid brown;   
    outline-offset: 0px;   
    /*border和outline之间的距离*/
    margin: 20px;   
    /*因为outline不影响布局,使用margin给边框腾位置*/
}
ログイン後にコピー

利点: 境界線に似ており、点線や実線など、さまざまな線種を設定できます。

短所: アウトラインはレイアウトに影響を与えないため、境界線用のスペースを確保するためにマージンを使用する必要があります。他の要素で覆われないようにするためです。コンテナ自体の角が丸い場合、ストロークは角の丸い部分に完全に適合できません。レンダリングは次のようになります。


CSS3で複数の枠線を実装する方法を詳しく解説 方法 3: ボックスシャドウの外側投影を使用して複数の境界線を実現します。

box-shadow 属性はボックスモデルの影を設定できます。しかし実際には、境界線を設定する機能もあります。 box-shadow は 5 つのパラメータを渡すことができます。最初の 2 つのパラメータは投影のオフセットを表し、3 番目のパラメータは投影のぼかし度を表し、4 番目のパラメータは投影の拡大を表し、最後のパラメータは投影の色を表します。投影。ただし、4 番目のパラメーターを使用することはほとんどありません。ここで 4 番目のパラメーターを使用すると、より適切な値を設定することで、境界線の効果をシミュレートできます。
同様に、box-shadow 属性は、「,」で区切られた複数のシャドウのリストを渡すことができます。したがって、シャドウ リストを定義し、その拡張パラメータの値を段階的に増加させれば、複数の境界線の効果を描画できます。
レンダリング:



html コード CSS3で複数の枠線を実装する方法を詳しく解説

<p id="boxShadow">boxshadow实现多重边框(外投影)</p>
ログイン後にコピー

css コード

#boxShadow {   
    margin: 40px;   
    /*因为box-shadow不影响布局,使用margin给边框腾出位置*/
    width: 84px;   
    height: 84px;   
    border: 8px solid blue;   
    -webkit-border-radius: 5px;   
    -moz-border-radius: 5px;   
    border-radius: 5px;   
    -webkit-box-shadow: 0 0 0 10px brown;   
    box-shadow: 0 0 0 10px brown;   
    /*参数分别为:水平偏移量、垂直偏移量、模糊距离、向外扩展距离和投影颜色*/
}
ログイン後にコピー

利点: 複数の丸い角が同時に完全に位置合わせされ、リストを受け取って複数の投影を設定することもできます。一度に(つまり、境界)。その拡張効果は、要素自体の形状に基づいています。要素が長方形の場合は、より大きな長方形に拡張され、要素の角が丸い場合は、角が丸い形状に拡張されます。

欠点: CSS3 プロパティは互換性が低く、box-shadow はレイアウトに影響しません。この要素と他の要素の相対的な位置が重要な場合は、外側のマージンなどを使用して余分な「境界線」のためのスペースを確保する必要があります。他の要素で覆われないように位置をずらしてください。

注: インライン シャドウ (つまり、box-shadow 追加パラメーターがインセットされており、設定されていない場合のデフォルトは外側のシャドウ) を使用する方が良い選択のようです。インライン ドロップ シャドウを使用すると要素内にドロップ シャドウを表示できるため、パディングを設定して要素内に複数の境界線を配置できるスペースを確保する方が簡単です。

方法 4: ボックスシャドウ内部投影を使用して複数の境界線を実現します。 (推奨)

レンダリング:


html コードCSS3で複数の枠線を実装する方法を詳しく解説

<p id="moreboxShadow">boxshadow实现多重边框(内投影)</p>
ログイン後にコピー

css コード

/*使用box-shadow一次性设置多个边框,并且使用内嵌投影*/
#moreboxShadow {   
    width: 120px;   
    height: 120px;   
    border: 8px solid blue;   
    /*注意:向外扩张的距离要每次累加;内嵌投影即添加参数为inset,该参数可选,当不设置时即为外投影*/
    -webkit-box-shadow: inset 0 0 0 10px brown, inset 0 0 0 20px yellow, inset 0 0 0 30px green;   
    box-shadow: inset 0 0 0 10px brown, inset 0 0 0 20px yellow, inset 0 0 0 30px green;   
    padding: 30px;   
    /*设置内边距,为box-shadow添加的添加的边框疼位置,这样就不会影响元素之间的位置*/
}
ログイン後にコピー

利点: インライン投影により、要素内に影を表示でき、要素内にパディングを設定できます。複数の国境に対応できるため、対処が容易になります。

欠点: CSS3 プロパティ、互換性の低さ

以上がCSS3で複数の枠線を実装する方法を詳しく解説の詳細内容です。詳細については、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)

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

最初のカスタムSvelteトランジションを作成します 最初のカスタムSvelteトランジションを作成します Mar 15, 2025 am 11:08 AM

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

ショー、Don&#039; t Tell ショー、Don&#039; t Tell Mar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

NPMコマンドは何ですか? NPMコマンドは何ですか? Mar 15, 2025 am 11:36 AM

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

CSSを使用して、テキストシャドウやグラデーションなどのテキスト効果を作成しますか? CSSを使用して、テキストシャドウやグラデーションなどのテキスト効果を作成しますか? Mar 14, 2025 am 11:10 AM

この記事では、影やグラデーションなどのテキスト効果にCSSを使用し、パフォーマンスのために最適化し、ユーザーエクスペリエンスの向上について説明します。また、初心者向けのリソースもリストしています。(159文字)

Eleventyで独自のBragdocを作成します Eleventyで独自のBragdocを作成します Mar 18, 2025 am 11:23 AM

開発者としての段階に関係なく、私たちが完了したタスクは、大小を問わず、個人的および専門的な成長に大きな影響を与えます。

特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) 特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) Mar 24, 2025 am 10:37 AM

先日、エリック・マイヤーとおしゃべりをしていたので、形成期のエリック・マイヤーの話を思い出しました。 CSS特異性に関するブログ投稿を書きました

See all articles