以百分比形成css三角形

Edo*_*ost 6 html css css3 css-shapes

我试图在顶部网站上创建一个正方形的div并流入三角形,

方形部分不是那么难,并且工作正常,但三角形部分有点难.盒子需要改变大小与屏幕尺寸,在广场我这样做通过使用宽度和高度%,但我不能使用边框属性中的%符号

我现在的代码

HTML

 <div id="overV12" class="menuItem" onclick="scrollToT('#overons')" onmouseover="setHover('overV12')" onmouseout="setOldClass('overV12')"><div class="menuInner">Over V12</div></div> 
Run Code Online (Sandbox Code Playgroud)

CSS

div.menuItem 
{
height: 5.38%;
width: 7.44%;
position: fixed;
background-color: rgb(239, 239, 239);
cursor: pointer;
z-index: 12;
text-align: center;
top: 4.3%;
}

div.menuItemHover
{
height: 5.38%;
width: 7.44%;
position: fixed;
cursor: pointer;
z-index: 12;
text-align: center;
top: 4.3%;
background-color: rgb(211, 211, 211);
}

div.menuItemActive
{
height: 7.8%;
width: 7.44%;
position: fixed;
cursor: pointer;
z-index: 12;
text-align: center;
top: 4.3%;
background-color: Black;
color: White;    
}
Run Code Online (Sandbox Code Playgroud)

JavaScript用于设置类:我这样做是因为我使用parralax库并且想要在某个高度上将"按钮"设置为"活动"

我希望有人可以帮我(也许还有其他人)解决这个问题

jsfiddle 示例 我的想法是,当在类menuItemActive上设置div时,它将具有箭头,否则不是仅当它设置为活动时

apa*_*aul 7

这使用两个重叠的div来创建三角形,这种方法可以在保持宽高比的同时使事物变得流畅.

工作实例

.div1 {
    width:100%;
    height:100%;
    border: 1px solid red;
    position:absolute;
    z-index:2;
}
.div2 {
    width:70%;
    min-height:70%;
    transform:rotate(45deg);
    border:1px solid blue;
    position:absolute;
    left:15%;
    top:65%;
    z-index:1;
}
#container {
    display: inline-block;
    position: relative;
    width: 25%;
}
#dummy {
    padding-top: 100%;
}
#element {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}
Run Code Online (Sandbox Code Playgroud)

我没有背景就离开了它,所以你可以看到它是如何工作的.


Edo*_*ost 1

我通过使用 javascript 而不是百分比找到了解决方案, Fiddle 我希望这也可以帮助其他人

我使用的java脚本是这样的:

$(document).ready(setSize());

function setSize() {
   var halfWidth = ($('.div1').width()) / 2;   
   $('.div2').css('border-width', ('50px ' + halfWidth + 'px 0 ' + halfWidth + 'px'));
   $('.div2').css('top', ($('.div1').height()));
}
Run Code Online (Sandbox Code Playgroud)