首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CSS绘制三角形裁剪形状

用CSS绘制三角形裁剪形状
EN

Stack Overflow用户
提问于 2015-04-09 04:05:20
回答 4查看 3.4K关注 0票数 4

我必须在我的网站上做一个标志形状。设计如下。我该怎么发展呢?

对于徽标的第一部分,我使用CSS3斜交属性创建了它,我修改了下面的链接。如何开发三角形部分和标志的第三部分。三角形是滑块,所以里面的图像应该改变。

https://jsfiddle.net/iamshajeer/x2og8utk/1/

代码语言:javascript
复制
    .logo-menu {
        height: 76%;
        left: 11%;
        margin: 0 auto;
        width: 80%;
    }
    .first-part {
        display: inline-block;
        left: 135px;
        position: relative;
        transform: skew(-22deg);
        width: 180px;
    }
    .menu-1{
        background:red
    }
    .menu-2{
        background:blue
    }
    .menu-3{
        background:yellow
    }
代码语言:javascript
复制
    <div class="logo-menu">
    <div class="first-part">
        <div class="menu-1" style="height: 167px;">
             <h3>About Us</h3>
        </div>
        <div class="menu-2" style="height: 167px;">
             <h3>Gallery</h3>
        </div>
        <div class="menu-3" style="height: 167px;">
             <h3>Get in Touch with</h3>
        </div>
    </div>
    </div>

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-09 04:50:51

您可以使用CSS转换将元素旋转和倾斜为菱形,然后为子元素反转这些转换。如果在钻石上有overflow: hidden;,并将钻石放置在也有overflow: hidden;的包装中,则可以使用CSS生成一个包含内容的裁剪三角形。

工作示例(科德芬):

代码语言:javascript
复制
/* Clip the bottom half of the diamond. */
.triangle-wrap {
	width: 400px;
	height: 400px;
	position: relative;
	overflow: hidden;
}
/* Rotate and skew to create a diamond. */
.triangle {
	background: grey;
	position: absolute;
	bottom: -50%;
	width: 100%;
	height: 100%;
	overflow: hidden;
	-webkit-transform: rotate(45deg) skew(20deg, 20deg);
	   -moz-transform: rotate(45deg) skew(20deg, 20deg);
	    -ms-transform: rotate(45deg) skew(20deg, 20deg);
	        transform: rotate(45deg) skew(20deg, 20deg);
}
/* Reset the skew and rotation. */
.triangle-reset {
	width: 100%;
	height: 100%;
	position: relative;
	-webkit-transform: skew(-20deg, -20deg) rotate(-45deg);
	   -moz-transform: skew(-20deg, -20deg) rotate(-45deg);
	    -ms-transform: skew(-20deg, -20deg) rotate(-45deg);
	        transform: skew(-20deg, -20deg) rotate(-45deg);
}
/* Create a content wrapper. */
.triangle-content {
	background: url('http://placehold.it/400x400') no-repeat;
	background-position: center center;
	background-size: cover;
	position: relative;
	width: 120%;
	height: 120%;
	left: -10%;
	bottom: 65%;
}

/* Visual aid. */
html {
	min-height: 100%;
	background: linear-gradient(to bottom, #336666 0%,#663366 100%);
}
代码语言:javascript
复制
<div class="triangle-wrap">
	<div class="triangle">
		<div class="triangle-reset">
			<div class="triangle-content">
			</div>
		</div>
	</div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2015-04-09 04:19:24

background-clip是你要找的东西。看看这篇伟大的文章:

https://css-tricks.com/clipping-masking-css/

下面是一个帮助您生成形状的在线工具:

http://bennettfeely.com/clippy/

生成每个形状后,您可以将它们定位为像您的图像。

票数 1
EN

Stack Overflow用户

发布于 2015-04-09 05:15:10

你想要的不是完美的,而是接近它的。右边第一副看起来不太好。

代码语言:javascript
复制
.third-part {
    display: inline-block;
    left: 500px;
    position: relative;
    transform: skew(22deg);
    width: 180px;
}


.logo-menu {
    height: 76%;
    left: 11%;
    margin: 0 auto;
    width: 80%;
}
.first-part {
    display: inline-block;
    left: 135px;
    position: relative;
    transform: skew(-22deg);
    width: 180px;
}
.menu-1{
    background:red
}
.menu-10{
     
   background: blue;
   /* Skew */
   
  left: -70px;
    position: relative;
    transform: skew(50deg);
    width: 190px;
}
.menu-2{
    background:blue
}
.menu-3{
    background:yellow
}

.second-part {
    top: 36%;
}
.second-part {
    
}
.second-part {
    display: inline-block;
    height: 100%;
    left: 240px;
    position: absolute;
    top: 25%;
    width: 520px;
}
.second-part .triangle-shape {
    left: 4%;
    margin: 0;
    max-width: 700px;
    position: absolute;
}
.wrap {
    display: inline-block;
    margin: 240px 0;
    transform: rotate(45deg) translate3d(0px, 0px, 0px);
    transition: transform 300ms ease-out 0s;
    width: 500px;
}
.crop {
    height: 465px;
    margin: 0;
    overflow: hidden;
    position: relative;
    transform: skew(22deg, 22deg) translate3d(0px, 0px, 0px);
    width: 450px;
}
.crop img {
    height: 650px;
    left: -50%;
    opacity: 1;
    position: absolute;
    top: -50%;
    transform: skew(-20deg, -20deg) rotate(-45deg);
    transition: opacity 300ms ease-in-out 0s;
    width: 500px;
}
}
.second-part .triangle-shape {
    left: 4%;
    margin: 0;
    max-width: 700px;
    position: absolute;
}
.wrap {
    display: inline-block;
    margin: 240px 0;
    transform: rotate(45deg) translate3d(0px, 0px, 0px);
    transition: transform 300ms ease-out 0s;
    width: 500px;
}
.crop {
    height: 465px;
    margin: 0;
    overflow: hidden;
    position: relative;
    transform: skew(22deg, 22deg) translate3d(0px, 0px, 0px);
    width: 450px;
}
.crop img {
    height: 650px;
    left: -50%;
    opacity: 1;
    position: absolute;
    top: -50%;
    transform: skew(-20deg, -20deg) rotate(-45deg);
    transition: opacity 300ms ease-in-out 0s;
    width: 500px;
}
代码语言:javascript
复制
<div class="logo-menu">
<div class="first-part">
    <div class="menu-1" style="height: 167px;">
         <h3>About Us</h3>
    </div>
    <div class="menu-2" style="height: 167px;">
         <h3>Gallery</h3>
    </div>
    <div class="menu-3" style="height: 167px;">
         <h3>Get in Touch with</h3>
    </div>
</div>
    
    <div class="second-part">
        <div class="triangle-shape">
            <div class="wrap">
                <div class="crop">
                    <img alt="" src="http://s23.postimg.org/wlo0phrsb/triangle01.jpg">
                 <h2>Projects</h2>
            </div>
        </div>
    </div>
        </div>   
    <div class="third-part">
    <div class="menu-10" style="height: 120px;">
         <h3>Products</h3>
    </div>
    <div class="menu-2" style="height: 167px;">
         <h3>Services</h3>
    </div>
    <div class="menu-3" style="height: 167px;">
         <h3>Location Map</h3>
    </div>
</div>
</div>

希望这将有助于向前迈进。

检查小提琴。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29529545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档