revision:
- defines a visible portion of an element. The clip property applies only to absolutely positioned elements — that is, elements with "position:absolute" or "position:fixed".
The "clip" property let you specify a rectangle that is specified as four coordinates, all from the top-left corner of the element to be clipped.
The "clip" property does not work if "overflow:visible".
It is deprecated and will be replaced by the "clip-path property" in the future.
Property values:
auto : no clipping will be applied. This is default
shape : clips an element. The only valid value is: rect (top, right, bottom, left)
initial : sets this property to its default value.
inherit : inherits this property from its parent element.
example: clip property
<div>
<img id="clip-1" src="../../pics/smiley.png" width="150" height="150">
</div>
<style>
#clip-1 {position: absolute;clip: rect(0vw,10vw,10vw,0vw);}
</style>
- let you clip an element to a basic shape or to an SVG source. The property creates a clipping region that sets what part of an element should be shown. Parts that are inside the region are shown, while those outside are hidden.
The "clip-path" property will replace the deprecated "clip" property.
Property values:
clip-source : defines a URL to an SVG <clipPath> element. The clipping part is taken from another HTML element.
basic-shape : include some shapes - like circle, rectangle, ellipse, polygon or inset - that clips the given image
margin-box : uses the margin box as the reference box.
border-box : uses the border box as the reference box.
padding-box : uses the padding box as the reference box.
content-box : uses the content box as the reference box.
fill-box : uses the object bounding box as the reference box.
stroke-box : uses the stroke bounding box as the reference box.
view-box : uses the SVG viewport as the reference box.
none : no clipping is done. This is default.
initial : sets this property to its default value.
inherit : inherits this property from its parent element
example: clip-path property
Code:
<img id="one" src="../../pics/2.jpg" width="200" height="auto">
<style>
#one {margin-top: 2vw; position: relative; clip: rect(1vw,26vw,36vw,0vw);}
</style>
example: clip-path property
Code:
<img id="two" src="../../pics/2.jpg" width="200" height="240">
<style>
#two {clip-path: circle(50%);}
</style>
example: clip-path property




Code:
<section>
<div class="one"><img src="../../pics/2.jpg" width="200" height="200" alt="holidays"></div>
<div class="two"><img src="../../pics/2.jpg" width="200" height="200" alt="holidays"></div>
<div class="three"><img src="../../pics/2.jpg" width="200" height="200" alt="holidays"></div>
<div class="four"><img src="../../pics/2.jpg" width="200" height="200" alt="holidays"></div>
</section>
<Style>
section{display: flex; flex-flow: row wrap;}
.one img {clip-path: circle(50%);}
.two img {clip-path: ellipse(60% 50%);}
.three img {clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);}
.four img {clip-path: path("M150 0 L50 100 L300 200 Z");}
</Style>
example: clip-path property
Without clipping
With clipping
Code:
<div>
<div class="no-clip">
<p>Without clipping</p>
<img id="imgA" height="200" width="200" src="../../pics/5.jpg">
</div>
<div class="clip">
<p>With clipping</p>
<img id="img" height="200" width="200" src="../../pics/5.jpg">
<img id="img1" height="200" width="200" src="../../pics/5.jpg">
<img id="img2" height="200" width="200" src="../../pics/5.jpg">
<img id="img3" height="200" width="200" src="../../pics/5.jpg">
</div>
</div>
<style>
#img {margin-bottom: 2vw;clip-path: circle(40%);}
#img1 {margin-bottom: 2vw;clip-path: ellipse(115px 55px at 50% 40%);}
#img2 {margin-bottom: 2vw;clip-path: polygon(50% 20%, 90% 80%, 10% 80%);}
#img3 {margin-bottom: 2vw;clip-path: inset(22% 12% 15px 35px);}
</style>
example: clip-path property
original shape
circle
quadrant
Circle 2
code:
<section>
<div class="square"><p>original shape</p></div>
<div class="circle"><p>circle</p></div>
<div class="quadrant"><p>quadrant</p></div>
<div class="circle2"><p>Circle 2</p></div>
</section>
<style>
section{display: flex; flex-flow: row wrap;}
.square{ display: inline; background-color: dodgerblue; width: 20vw; height: 15vw; border:
0.2vw solid black; margin-bottom: 1vw;}
.circle{ background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: circle(8vw at 50% 50%); text-align: center;}
.quadrant{ background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: circle(8vw at 0 0); text-align: left;}
.circle2{ background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: circle(8vw at 8vw 8vw); text-align: center;}
</style>
example: clip-path property
original shape
inset
tweaking the inset
rounded inset
rounded inset - 2
code:
<section>
<div class="square"><p>original shape</p></div>
<div class="inset"><p>inset</p></div>
<div class="inset2"><p>tweaking the inset</p></div>
<div class="inset-round"><p>rounded inset</p></div>
<div class="inset-round-2"><p>rounded inset - 2</p></div>
</section>
<style>
section{display: flex; flex-flow: row wrap;}
.square{ display: inline; background-color: dodgerblue; width: 20vw; height: 15vw; border:
0.2vw solid black; margin-bottom: 1vw;}
.inset{background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: inset(2vw); text-align: center; padding-top: 0.3vw;}
.inset2{background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: inset(2vw 2vw 5vw 2vw); text-align: center; padding-top: 0.3vw;}
.inset-round{background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: inset(2vw 2vw 5vw round 1vw); text-align: center;padding-top: 0.3vw;}
.inset-round-2{background-color: dodgerblue; width: 20vw; height: 15vw; border: 0.2vw solid black;
clip-path: inset(2vw 2vw 5vw round 1vw 0); text-align: center;padding-top: 0.3vw;}
</style>
example: clip-path property
original shape
circle
ellipse
polygon
code:
<section>
<div class="square"><p>original shape</p></div>
<div class="circle3"><p>circle</p></div>
<div class="ellipse"><p>ellipse</p></div>
<div class="polygon"><p>polygon</p></div>
</section>
<style>
section{display: flex; flex-flow: row wrap;}
.square{ display: inline; background-color: dodgerblue; width: 20vw;
height: 15vw; border: 0.2vw solid black; margin-bottom: 1vw;}
.circle3{background-color: dodgerblue; width: 20vw; height: 15vw;
border: 0.2vw solid black; clip-path: circle(8vw at 50% 50%);
text-align: center;padding-top: 0.3vw;}
.ellipse{background-color: dodgerblue; width: 20vw; height: 15vw;
border: 0.2vw solid black; clip-path: ellipse(10vw 8vw at center);
text-align: center;padding-top: 0.3vw;}
.polygon{background-color: dodgerblue; width: 20vw; height: 15vw;
border: 0.2vw solid black; clip-path: polygon(0% 0%, 100% 0%, 100% 80%,
0% 100%); text-align: center;padding-top: 0.3vw;}
</style>
example: clip-path property
code:
<section>
<div class="triangle"></div>
<div class="X"><p></div>
<div class="star"><p></p></div>
<div class="container"><img src="../../pics/5.jpg" alt="holidays"> </div>
</section>
<style>
section{display: flex; flex-flow: row wrap;}
.triangle{background-color: dodgerblue; width: 15vw; height: 10vw;
border: 0.2vw solid black; -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
clip-path: polygon(50% 0%, 0% 100%,
100% 100%); text-align: center;}
.X {background-color: dodgerblue; width: 15vw; height: 10vw; border: 0.2vw solid
black;-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%,
50% 70%,80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);clip-path:
polygon(20% 0%,0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100%
80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);}
.star{background-color: dodgerblue; width: 15vw; height: 10vw; border: 0.2vw solid black;
-webkit-clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%,
21% 91%, 32% 57%, 2% 35%, 39% 35%); clip-path: polygon(50% 0%, 61% 35%, 98%
35%, 68% 57%,79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);}
img {-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0%
25%); clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0%
25%); width: 20vw; height: 15vw;}
</style>