Html 使用CSS实现捷径
我想“剪”一个div的左上角,就像你把一页的角折下来一样Html 使用CSS实现捷径,html,css,css-shapes,Html,Css,Css Shapes,我想“剪”一个div的左上角,就像你把一页的角折下来一样 我想用纯CSS制作,有什么方法吗?如果父元素有纯色背景,可以使用伪元素来创建效果: div{ 高度:300px; 背景:红色; 位置:相对位置; } 部门:以前{ 内容:''; 位置:绝对位置; 顶部:0;右侧:0; 边框顶部:80像素纯白; 左边框:80px实心红色; 宽度:0; } 通过对Joseph的代码进行少量编辑,元素不需要坚实的背景: div { height: 300px; background: url(
我想用纯CSS制作,有什么方法吗?如果父元素有纯色背景,可以使用伪元素来创建效果:
div{
高度:300px;
背景:红色;
位置:相对位置;
}
部门:以前{
内容:'';
位置:绝对位置;
顶部:0;右侧:0;
边框顶部:80像素纯白;
左边框:80px实心红色;
宽度:0;
}
通过对Joseph的代码进行少量编辑,元素不需要坚实的背景:
div {
height: 300px;
background: url('http://images2.layoutsparks.com/1/190037/serene-nature-scenery-blue.jpg');
position: relative;
}
div:before {
content: '';
position: absolute;
top: 0; right: 0;
border-top: 80px solid white;
border-left: 80px solid rgba(0,0,0,0);
width: 0;
}
使用“rgba(0,0,0,0)”可以使内部“角”不可见
您还可以编辑第四个参数“a”,其中0,使阴影具有更多的“折叠角”效果:
(带阴影)
注意:RGBA颜色值在IE9+、Firefox 3+、Chrome、Safari和Opera 10+中都受支持。通过对Joshep的代码进行少量修改,您可以使用此代码,它看起来像是根据您的要求折叠起来的右角
div {
height: 300px;
background: red;
position: relative;
}
div:before {
content: '';
position: absolute;
top: 0; right: 0;
border-top: 80px solid white;
border-left: 80px solid blue;
width: 0;
}
您可以使用
线性渐变
。假设父级div
有一个背景图像,您需要一个div
来坐在上面,背景为灰色,左角有一个尖角。你可以这样做:
.parent-div { background: url('/image.jpg'); }
.child-div {
background: #333;
background: linear-gradient(135deg, transparent 30px, #333 0);
}
进一步阅读:
div的背景
,并将其定位以剪切所需的角点:
正文{
背景:url(http://i.imgur.com/k8BtMvj.jpg);
背景尺寸:封面;
}
div{
位置:相对位置;
宽度:50%;
保证金:0自动;
溢出:隐藏;
填充:20px;
文本对齐:居中;
}
部门:之后{
内容:'';
位置:绝对位置;
宽度:1100%;高度:1100%;
顶部:20px;右侧:-500%;
背景:rgba(255255,8);
变换原点:54%0;
变换:旋转(45度);
z指数:-1;
}
... 内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
。。。内容…
如果需要对角边框而不是对角点,可以使用伪元素堆叠2个div:
演示
.container{
填充:100px 200px;
溢出:隐藏;
}
等分对角线{
背景:#da1d00;
颜色:#fff;
字体系列:Arial、Helvetica、无衬线字体;
宽度:300px;
高度:300px;
填充:70px;
位置:相对位置;
利润率:30像素;
浮动:左;
}
对角线2等分{
背景:#da1d00;
颜色:#fff;
字体系列:Arial、Helvetica、无衬线字体;
宽度:300px;
高度:300px;
填充:70px;
位置:相对位置;
利润率:30像素;
背景:#da1d00 url(http://www.remcokalf.nl/background.jpg)左上;
背景尺寸:封面;
浮动:左;
}
对角线3等分{
背景:#da1d00;
颜色:#da1d00;
字体系列:Arial、Helvetica、无衬线字体;
宽度:432px;
身高:432px;
填充:4px;
位置:相对位置;
利润率:30像素;
浮动:左;
}
舱内{
背景:#fff;
颜色:#da1d00;
字体系列:Arial、Helvetica、无衬线字体;
宽度:292px;
身高:292px;
填充:70px;
位置:相对位置;
}
对角线分割:之前,
第2部分对角线:之前{
内容:'';
位置:绝对位置;
排名:0;
左:0;
边框顶部:80px实心#fff;
右边框:80px实心透明;
宽度:0;
}
第3节对角线:之前{
内容:'';
位置:绝对位置;
排名:0;
左:0;
边框顶部:80px实心#da1d00;
右边框:80px实心透明;
宽度:0;
z指数:1;
}
内部分区:之前{
内容:'';
位置:绝对位置;
顶部:-4px;
左:-4px;
边框顶部:74px实心#fff;
右边框:74px实心透明;
宽度:0;
z指数:2;
}
氢{
字体大小:30px;
线高:1.3em;
边缘底部:1米;
位置:相对位置;
z指数:1000;
}
p{
字体大小:16px;
线高:1.6em;
边缘底部:1.8em;
}
#灰色的{
宽度:100%;
高度:400px;
背景:#ccc;
位置:相对位置;
边缘顶部:100px;
}
#格雷:以前{
内容:'';
位置:绝对位置;
排名:0;
左:0;
边框顶部:80px实心#fff;
右边框:80px固态#ccc;
宽度:400px;
}
标题
是的,CSS对角是可能的
标题
是的,有背景图像的CSS对角是可能的
标题
是的,CSS对角线边框甚至可以使用额外的div
CSS剪辑路径
使用a是一种新兴的替代方案。它开始得到越来越多的支持,现在已经有了很好的记录。因为它使用SVG来创建形状,所以它是直接响应的
div{
宽度:200px;
最小高度:200px;
-webkit剪辑路径:多边形(0,0,100%,100%100%,100%25%,75%0);
剪辑路径:多边形(0,0,100%,100%100%,100%25%,75%0);
背景:浅蓝色;
}
一些文本
这里是另一种使用CSS变换的方法:倾斜(45度)
来产生切角效果。形状本身包含三个元素(1个实元素和2个伪元素),如下所示:
- 主容器
元素具有div
,并生成左边框overflow:hidden
伪元素,它是父容器高度的20%,并应用了倾斜变换。此元素在顶部显示边框,在右侧显示剪切(倾斜)边框:before
伪元素之后,伪元素是父元素高度的80%(基本上是剩余高度),并生成底部边框,即右边框的剩余部分:在
div {
display:block;
height: 300px;
width: 200px;
background: url('http://lorempixel.com/180/290/') no-repeat;
background-size:cover;
-webkit-clip-path: polygon(10px 0%, calc(100% - 10px) 0%, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0% calc(100% - 10px), 0% 10px);
clip-path: polygon(10px 0%, calc(100% - 10px) 0%, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0% calc(100% - 10px), 0% 10px);
}
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="folders">
<div class="container">
<div class="triangleOne">
<p class="folderNames">Home</p>
</div>
<div class="triangleOneCut">
</div>
<div class="triangleOneFill">
</div>
</div>
<div class="container2">
<div class="triangleOne blue">
<p class="folderNames">About</p>
</div>
<div class="triangleOneCut blueCut">
</div>
<div class="triangleOneFill blue">
</div>
</div>
<div class="container3">
<div class="triangleOne green">
<p class="folderNames">Contact</p>
</div>
<div class="triangleOneCut greenCut">
</div>
<div class="triangleOneFill green">
</div>
</div>
</div>
</body>
</html>
.triangleOne {
height: 50px;
width: 40px;
background: red;
border-radius: 5px 0px 0px 5px;
position: absolute;
}
.triangleOneCut {
content: '';
position: absolute;
top: 0; left: 40px;
border-top: 10px solid transparent;
border-left: 10px solid red;
width: 0;
}
.triangleOneFill {
content: '';
position: absolute;
top: 10px; left: 40px;
width: 10px;
height: 40px;
background-color: red;
border-radius: 0px 0px 5px 0px;
}
.container {
position: relative;
height: 50px;
width: 50px;
display: inline-block;
z-index: 3;
}
.container2 {
position: relative;
height: 50px;
width: 50px;
display: inline-block;
left: -10px;
z-index: 2;
}
.container3 {
position: relative;
height: 50px;
width: 50px;
display: inline-block;
left: -20px;
z-index: 1;
}
.blue {
background-color: blue;
}
.green {
background-color: green;
}
.blueCut {
border-left: 10px solid blue;
}
.greenCut {
border-left: 10px solid green;
}
.folders {
width: 160px;
height: 50px;
/* border: 10px solid white; */
margin: auto;
padding-left: 25px;
margin-top: 100px;
}
.folderNames {
text-align: right;
padding-left: 2px;
color: white;
margin-top: 1.5px;
font-family: monospace;
font-size: 6.5px;
border-bottom: double 1.5px white;
}
<div class="background">
<div class="container">Hello world!</div>
</div>
.background {
position: relative;
width: 50px;
height: 50px;
border-right: 150px solid lightgreen;
border-bottom: 150px solid lightgreen;
border-radius: 10px;
}
.background::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
border: 25px solid lightgreen;
border-top-color: transparent;
border-left-color: transparent;
}
.container {
position: absolute;
padding-left: 25px;
padding-top: 25px;
font-size: 38px;
font-weight: bolder;
}
@mixin cut-corners ($left-top, $right-top: 0px, $right-bottom: 0px, $left-bottom: 0px) {
clip-path: polygon($left-top 0%, calc(100% - #{$right-top}) 0%, 100% $right-top, 100% calc(100% - #{$right-bottom}), calc(100% - #{$right-bottom}) 100%, $left-bottom 100%, 0% calc(100% - #{$left-bottom}), 0% $left-top);
}
.cut-corners {
@include cut-corners(10px, 0, 25px, 50px);
}