ホームページ  >  記事  >  ウェブフロントエンド  >  複数の背景シミュレーションの動的境界線を実装する

複数の背景シミュレーションの動的境界線を実装する

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-22 15:53:232019ブラウズ

今回は、マルチ背景のシミュレートされたダイナミックボーダーの実装についてお届けします。マルチ背景のシミュレートされたダイナミックボーダーを実現するための注意点は何ですか?実際のケースを見てみましょう。

まずは実現するレンダリングを見てみましょう

実装方法は以下の通りです

最初に思いついたのはborder属性でしたが、border属性長さの設定はできません。ボーダーを使用して実装した場合、それをシミュレートするために他の要素を使用する必要があり、さらに面倒です。そこでふと、ネット上で CSS3 の複数背景を使って境界線をシミュレートしている人を見たことを思い出し、試してみました。

css3 背景

CSS3 は背景にいくつかの変更を加えました。最も明白なのは、4 つの新しい属性を追加するだけでなく、現在の属性を調整および強化することです。

1. 複数の背景画像

CSS3では、1つのラベル要素に複数の背景画像を適用できます。コードは css2.0 バージョンと似ていますが、参照される画像は「,」カンマで区切る必要があります。最初の画像は要素の上部に配置された背景であり、次のように、後続の背景画像がその下に順番に表示されます:

background-image: url(top-image.jpg), url(middle-image.jpg), url(bottom-image.jpg);

2. 新しい属性: 背景クリップ

この議論は、私たちを元の状態に戻します。記事冒頭で述べた背景が枠線で塞がれてしまう問題について。背景クリップを追加すると、背景表示の位置を完全に制御できるようになります。

属性値は次のとおりです:

background-clip:border;背景はborderボーダーの下ではなくpaddingの下に表示され始めます

背景クリップ: コンテンツ; 背景は、境界線やパディングの下で​​はなく、コンテンツ領域の下に表示されます。

background-clip: no-clip; デフォルトの属性値は、background-clip: border;

3 と似ています。新しい属性: 背景の原点

この属性は、background-position

と組み合わせて使用​​する必要があります。 。背景位置を使用して、境界線、パディング、またはコンテンツ ボックスのコンテンツ領域から位置を計算できます。 (background-clip と同様)

background-origin

: 境界線の位置から始まる

背景の位置から始まるパディング

コンテンツボックスから始まるコンテンツ領域の位置

背景クリップと背景原点の違いは、Web サイト www.CSS3.info で詳しく分析および説明されています。

4. 新しい属性: 背景サイズ

背景サイズ属性は、背景画像をリセットするために使用されます。

いくつかの属性値があります:

背景画像を含む; ラベル要素に合わせて背景画像を縮小します (主にピクセル比)

背景画像を拡大してラベル全体に拡張します。要素のサイズ (主にピクセルの比率)

background-size: 100px 100px 背景画像のスケーリングのサイズを示します

background-size: 50% 100%; パーセンテージはコンテンツタグ要素のサイズに基づいています。画像のサイズを拡大縮小します

CSS 3 仕様サイトにアクセスして、簡単なケースの説明を確認できます。

5. 新しい属性: 背景ブレーク CSS3 では、ラベル要素を異なる領域に分割することができ (インライン要素を複数行にまたがることを許可するなど)、background-break 属性で異なる領域に表示される背景を制御できます。 。

属性値: Background-break:Continuous; この属性は、領域間のギャップを無視するデフォルト値です (領域に画像を適用することは、それらを 1 つの領域として扱うことと同じです)

Background-break:bounding-box ;地域間

     Background-break: each-box; 对每一个独立的标签区域进行背景的重新划分。

6、背景颜色的调整

     background-color属性在css3版本里面稍微做了增强,除了指定background color背景颜色之外,还可以对不使用的标签元素背景图片进行去色处理。

     background-color: green / blue;此例子里,这背景颜色可能是绿色,然而,如果底部背景图片无效的话,蓝色将代替绿色来显示。如果你没有指定某个颜色的话,它将其视为透明。

7、背景重复的调整

css2里当设置背景的时候,它经常被标签元素截取而显示不全,css3介绍了2个新属性来修复此问题。 space:图片以相同的间距平铺且填充整个标签元素 round:图片自动缩放直到适应且填充整个标签元素

CSS 3 specifications网站对background-repeat: space的使用就是一个现成的例子。

8、Background Attachment 的调整

Background Attachment有了一个新属性值:local,当标签元素滚动时它才有效(如设置overflow:scroll;),当background-attachment设置为scroll时,背景图片是不随内容滚条滚动的。现在,有了background-attachment:local,就可以做到让背景随元素内容滚动而滚动了。

css3 多背景模拟元素边框

我们这里主要使用了background-img、background-size 和 background-position 三个属性。

background-image: [background-image], [background-image], [background-image]; 
background-position: [background-position], [background-position], [background-position]; 
background-repeat: [background-repeat], [background-repeat], [background-repeat];

简写形式如下:

background: [background-image] [background-position] [background-repeat], 
[background-image] [background-position] [background-repeat], 
[background-image] [background-position] [background-repeat];

现在我们用多背景来模拟一个元素的边框

/*CSS*/
.exammple {
    background: linear-gradient(0, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-90deg, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-180deg, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-270deg, #108b96 2px, #108b96 2px) no-repeat;
    background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%;
    background-position: left top, right top, right bottom, left bottom;
}
<p class="exammple"></p>

我们用四个渐变的背景来模拟四个边框(为什么我们要用渐变而不是直接的Color呢?这是由于Css的多背景只能是background-image, background-color不支持多个值,所有即便是纯色的边框,我们也只能使用渐变)。

接下来我们让边框动起来

/*CSS*/
.exammple {
    transition: ease-in .3s;
    background: linear-gradient(0, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-90deg, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-180deg, #108b96 2px, #108b96 2px) no-repeat, 
                linear-gradient(-270deg, #108b96 2px, #108b96 2px) no-repeat;
    background-size: 0 2px, 2px 0, 0 2px, 2px 0;
    background-position: left top, right top, right bottom, left bottom;
}
.exammple:hover {
    background-size: 100% 2px,  2px 100%, 100% 2px, 2px 100%;
}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

设置滚动条样式

CSS的居中布局总结

Css3的之形状总结

三种绝对定位元素的水平垂直居中的办法

以上が複数の背景シミュレーションの動的境界線を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。