Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 是否可以将div设置为梯形?_Css_Css Transforms_Css Shapes - Fatal编程技术网

Css 是否可以将div设置为梯形?

Css 是否可以将div设置为梯形?,css,css-transforms,css-shapes,Css,Css Transforms,Css Shapes,我知道倾斜是可能的,但我看不到一种方法可以以特定的角度倾斜每个角 以下是我正在进行的项目: 专门查看菜单中的选项卡。现在我正在使用图像,我想为有能力的浏览器改变这一点 我知道可以创建一个边界,但那就是使用没有内容的边界。最终的结果也需要一些圆角 编辑: 从一开始,我就能够做到这一点: 这是可能的,这里是粗略的想法: div{ 宽度:200px; 高度:100px; 背景:ddd; 利润率:20px 150px; 职位:相对 } 部门:以前{ 内容:''; 线高:0; 字号:0; 宽度:0; 身

我知道倾斜是可能的,但我看不到一种方法可以以特定的角度倾斜每个角

以下是我正在进行的项目:

专门查看菜单中的选项卡。现在我正在使用图像,我想为有能力的浏览器改变这一点

我知道可以创建一个边界,但那就是使用没有内容的边界。最终的结果也需要一些圆角

编辑: 从一开始,我就能够做到这一点:


这是可能的,这里是粗略的想法:

div{
宽度:200px;
高度:100px;
背景:ddd;
利润率:20px 150px;
职位:相对
}
部门:以前{
内容:'';
线高:0;
字号:0;
宽度:0;
身高:0;
边框顶部:50px实心透明;
边框底部:50px实心#ddd;
左边框:50px实心透明;
右边框:50px固体#ddd;
位置:绝对位置;
排名:0;
左:-99px;
}
部门:之后{
内容:'';
线高:0;
字号:0;
宽度:0;
身高:0;
边框顶部:50px实心透明;
边框底部:50px实心#ddd;
左边框:50px实心#ddd;
右边框:50px实心透明;
位置:绝对位置;
排名:0;
右:-99px;
}
你好 Lorem ipsum dolor sit amet,是一位杰出的献身者。Etiam cursus ex quis enim posuere auctor。我们可以使用它在矩形元素上绘制梯形形状

这个技巧使用将整个形状划分为不同部分的思想,然后在背景上独立绘制每个形状

div {
  background-image:
   linear-gradient(to bottom right, transparent 50%, silver 50%), /* draws left part */
   linear-gradient(to bottom left, transparent 50%, silver 50%), /* draws right part */
   linear-gradient(to right, silver, silver); /* draws central flat part */

  background-repeat: no-repeat;

  /* Sets the background size of each of three shapes individually */
  background-size: 75px 100%, 75px 100%, calc(100% - 150px) 100%;

  /* Sets the background position of each of three shapes individually */
  background-position: 0 0, 100% 0, 75px 0;
}
正文{
背景:线性梯度(橙色、红色)无重复;
最小高度:100vh;
保证金:0;
}
div{
背景图像:线性渐变(至右下角,透明50%,银色50%),
线性渐变(至左下角,透明50%,银色50%),
线性梯度(向右,银色,银色);
背景尺寸:75px 100%,75px 100%,calc(100%-150px)100%;
背景位置:0,100%0,75px 0;
背景重复:无重复;
填充:20px 80px;
最小高度:80px;
宽度:300px;
利润率:25px;
}

我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。
我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。我爱你,我爱你。。。

如果您询问是否可以让浏览器将div的形状解释为矩形以外的任何形状,答案是否定的。但也可以通过某种方式包装内容,使其具有这种外观。有没有可能给出一个你想要达到的效果的视觉例子?(也许是某种粗略的草图?)你想要这个,但是倒转过来,图像更容易。可能是另一种方法的复制。如果你需要你的梯形来做出反应,这里有一个想法,只有当你的梯形的宽度与你的视口宽度成比例时,它才起作用。这真的很光滑。剩下的唯一问题是。我能得到,但有一些尴尬的关节。您没有注意到,但是边界渲染非常粗糙。我不认为它看起来像图片一样好,但我可能会使用它。谢谢@杰姆斯。在
0
width和
0
height元素上绘制很厚的边框,这样就得到了一个由4个三角形组成的正方形或矩形(基于边框宽度)。然后,您可以为三角形着色(或使其透明),使其显示为梯形的一部分-非常清楚的解释。谢谢:)。因此,它就像一个很小的正方形,有很厚的边框,浏览器按照惯例绘制一条对角线,从边框形成的外部正方形的角到它包围的内部正方形。
div {
  background-image:
   linear-gradient(to bottom right, transparent 50%, silver 50%), /* draws left part */
   linear-gradient(to bottom left, transparent 50%, silver 50%), /* draws right part */
   linear-gradient(to right, silver, silver); /* draws central flat part */

  background-repeat: no-repeat;

  /* Sets the background size of each of three shapes individually */
  background-size: 75px 100%, 75px 100%, calc(100% - 150px) 100%;

  /* Sets the background position of each of three shapes individually */
  background-position: 0 0, 100% 0, 75px 0;
}