ホームページ  >  記事  >  ウェブフロントエンド  >  CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

青灯夜游
青灯夜游オリジナル
2018-09-17 16:21:376139ブラウズ

この章では、CSS のクリップ属性とは何なのかについて説明します。 Clip:rect() は、円形のプログレス バー アニメーション (コード例) を作成し、clip 属性とは何か、clip:rec() の使用法を紹介し、最後に例を使用して、clip:rect() をより直感的に理解できるようにします。 。困っている友人は参考にしていただければ幸いです。

1. CSS のクリップ属性とは何ですか?

clip プロパティは、絶対的に配置された要素をクリップします。クリップ属性を使用すると、要素の表示サイズを定義できます。画像が含まれる要素のサイズよりも大きい場合、画像は切り取られ、要素によって定義された形状として表示されます。

1. 文法

img {
position:absolute;
clip:rect(0px,60px,200px,0px);
}

コード例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			.demo{
				width: 200px;
				height: 500px;
				margin: 50px auto;
			}
			img{
				border: 1px solid #000;
			}
			.img {
				position:absolute;
				clip:rect(0px,165px,200px,34px);
			}
		</style>
	</head>
	<body>
		<div class="demo">
			<h4>原图:</h4>
			<img  src="css.jpg"    style="max-width:90%"  style="max-width:90%" / alt="CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)" >
			<h4>裁剪后</h4>
			<img  class="img" src="css.jpg"    style="max-width:90%"  style="max-width:90%" / alt="CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)" >
		</div>
	</body>
</html>

レンダリング:

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

0px Clip:rect(0px, 165px, 200px, 34px) の 、165px、200px、および 34px は、それぞれ画像の上、右、下、左の方向に対応します。clip:rect() は、position 属性とともに使用する必要があります。画像を調整する カットをします。

注:

  • 要素が最初に「overflow:visible」で定義されている場合、clip 属性は機能しません。

  • #CSS の clip:rect() は、固定属性を持つ要素を含む絶対位置の要素に対してのみ使用できます。これは、fixed も絶対位置とみなされますからです。

2. ユーザビリティの非表示

上記の右上下左の説明によると、左>=右または下

2. css3 を使用して円形のプログレス バー アニメーションを作成します (css3 アニメーションは、clip:rect() と組み合わせて使用​​されます)

では、最初にローディング効果を見てください。 画像:

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

コード例:

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>css3制作圆形进度条动画</title>
<style>
* {
margin: 0;
padding: 0;
}

body {
overflow-x: hidden;
overflow-y: scroll;
font-family: MuseoSans, Georgia, "Times New Roman", Times, serif;
font-size: 13px;
color: #444;
border-top: 3px solid #444;
background-color: #E4E6E5;
overflow-x: hidden;
}

section .demo {
width: 530px;
margin: 15em auto;
overflow: hidden;
}

ul.notes {
clear: both;
}

ul.notes li {
float: left;
margin-right: 3em;
display: inline;
}

ul.notes li:last-child {
margin: 0;
}

ul.notes li span.skill {
display: block;
text-align: center;
padding: 10px 0;
text-shadow: 1px 0 0 #FFFFFF;
}

.notesite {
display: inline-block;
position: relative;
width: 1em;
height: 1em;
font-size: 5.4em;
cursor: default;
}

.notesite>.percent {
position: absolute;
top: 20px;
left: 0;
width: 100%;
font-size: 25px;
text-align: center;
z-index: 2;
}

.notesite>.percent .dec {
font-size: 15px;
}

.notesite>#slice {
position: absolute;
width: 1em;
height: 1em;
clip: rect(0px, 1em, 1em, 0.5em);
}

.notesite>#slice.gt50 {
clip: rect(auto, auto, auto, auto);
}

.notesite>#slice>.pie {
position: absolute;
border: 0.1em solid #444;
width: 0.8em;
height: 0.8em;
-moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em;
border-radius: 0.5em;
-webkit-animation: craw 2s linear;
-webkit-animation-iteration-count: 1;
}

@-webkit-keyframes craw {
0% {
clip: rect(0em, 1em, 0em, 0.5em);
}
50% {
clip: rect(0em, 1em, 1em, 0.5em);
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
clip: rect(0em, 1em, 1em, 0em);
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
}

li.html .notesite>#slice>.pie {
border-color: #DF6C4F;
}

.notesite.fill>.percent {
display: none;
}

li.html .notesite:before {
background: #DF6C4F;
}
</style>
</head>

<body class="home">
	<div class="wrapper">
		<section>
			<div class="demo">
				<ul class="notes">
					<li class="html">
						<div class="notesite" id="note_0" dir="100">
							<div class="percent"></div>
							<div id="slice" class="gt50">
								<div class="pie fill">
								</div>
							</div>
						</div><span class="skill">HTML</span>
					</li>
				</ul>
			</div>
		</section>
	</div>

</body>

</html>

アイデア:

1. まず正方形の境界線を描画します

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

2. border-radius 属性を使用して円にします (互換性を考慮して)

-moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em;
border-radius: 0.5em;

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

3。アニメーション効果を設定します。クリッピング位置を変更する(位置決めと組み合わせて)と、円がゆっくりと表示されます

@-webkit-keyframes craw {
0% {
clip: rect(0em, 1em, 0em, 0.5em);
}
50% {
clip: rect(0em, 1em, 1em, 0.5em);
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
clip: rect(0em, 1em, 1em, 0em);
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
}

CSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)

以上がCSSのクリップ属性とは何ですか? Clip:rect() は円形のプログレス バー アニメーションを作成します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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