【问题标题】:Is it possible to make this shape in CSS3?是否可以在 CSS3 中制作这种形状?
【发布时间】:2013-11-01 08:40:39
【问题描述】:

是否可以在 CSS3 中制作这种形状?

我看到了这个链接http://css-tricks.com/examples/ShapesOfCSS/,我不知道这个页面中的任何形状是否可以编辑成我需要的形状。

谢谢你..

【问题讨论】:

标签: html css shape css-shapes


【解决方案1】:

把这个放到你的css你的shape div中

 -webkit-transform: rotatey(16deg);
 -moz-transform: rotatey(16deg);
 transform: rotatey(16deg); 
 position: absolute;  

将此代码放入您的形状 div 的父 div

-webkit-perspective: 175;
-moz-perspective: 175;
perspective: 175;
position: relative;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;

此代码可以制作您想要的形状,并根据您的要求设置高度宽度和其他 css。此代码不适用于像 ie 这样的旧浏览器。

在谷歌网页设计软件的帮助下,您可以使用和 css 制作多种形状

这里是链接:https://www.google.com/webdesigner/

【讨论】:

  • 你能在你的回答中提供一个小提琴吗?我对结果很好奇,但不知何故我无法让perspective 工作。
  • 感谢您的提琴,但我认为这与 OP 的图像不完全相同。我仍然不能说他是否希望它完全一样。我们拭目以待。
  • 我知道这与 OP 的图像不完全相同,但我的代码可能会对他有所帮助。
  • 您的代码从侧面看是平行的,不像图像。但是如果我没有解决方案它认为我会使用谷歌网页设计师,好主意!谢谢。
【解决方案2】:

FIDDLE

这是我的方法:

div {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;

    -webkit-transform: rotate(2deg);
    -moz-transform: rotate(2deg);
    -ms-transform: rotate(2deg);
    -o-transform: rotate(2deg);
    transform: rotate(2deg);
    -webkit-backface-visibility: hidden;

    -webkit-transform-origin: top left;
    -moz-transform-origin: top left;
    -ms-transform-origin: top left;
    -o-transform-origin: top left;
    transform-origin: top left;
}
div:after {
    content: "";
    display: block;
    position: absolute;
    border-style: solid;
    border-color: #FFF transparent transparent;
    border-width: 127px 0 25px 19px;
    right: 0;
}
div:before {
    background: rgba(255, 0, 0, 0.45);
    width: 668px;
    height: 240px;
    content: "";
    display: block;

    -webkit-transform-origin: top left;
    -moz-transform-origin: top left;
    -ms-transform-origin: top left;
    -o-transform-origin: top left;
    transform-origin: top left;

    -webkit-transform: rotate(-9.5deg) skewX(1deg);
    -moz-transform: rotate(-9.5deg) skewX(1deg);
    -ms-transform: rotate(-9.5deg) skewX(1deg);
    -o-transform: rotate(-9.5deg) skewX(1deg);
    transform: rotate(-9.5deg) skewX(1deg);
}

我想,jingesh kheni 的解决方案可能更干净,但我试过了,不知何故 perspective 属性对我不起作用。

编辑
根据OP关于div粗糙边缘的评论,我更新了小提琴和上面的代码。我只是添加了这行 CSS:

-webkit-backface-visibility: hidden;

这些粗糙的边缘是 Chrome 中的一个错误,here's 解释。

【讨论】:

  • 谢谢。它工作得很好,但如果我删除图像“i.stack.imgur.com/OsNL8.jpg">”它从顶部不平滑。
  • 太好了!非常感谢,但您可能想编辑 Fiddle 以获得所有浏览器的支持,例如您上面编写的代码
  • 小提琴已更新。当然-webkit-backface-visibility 属性仅适用于 Chrome。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多