使我的边框三角形响应

时间:2016-07-07 14:48:16

标签: html css

我有一个div,它是一个使用CSS边框的三角形。

目前设置为500px宽度。但是我想让它占据屏幕的整个宽度,同时保持其三角形的尖形状

https://jsfiddle.net/hra17z5t/1/

#one {
  width: 500px;
  background-color: aqua;
  height: 300px;
}
#two{
  border-top: 100px solid red;
  border-right: 250px solid transparent;
  border-bottom: 100px solid transparent;
  border-left: 250px solid transparent;
  width: 0;
  height: 0;    
}
<div id="one"></div>
<div id="two"></div>

3 个答案:

答案 0 :(得分:3)

我有updated your code example:因为你想让它对整个浏览器宽度做出响应,所以非常简单:

#one {
    width: 100vw;
    background-color: aqua;
    height: 300px;
}

#two {
    border-top: 100px solid red;
    border-right: 50vw solid transparent;
    border-bottom: 100px solid transparent;
    border-left: 50vw solid transparent;
    width: 0;
    height: 0;
}
<div id="one"></div>
<div id="two"></div>

这里我们只是将框的宽度设置为100vw,这是浏览器宽度的100%。由于三角形的尺寸以相同的方式响应,根据您的示例,您可以简单地将边框宽度设置为50vw(或浏览器宽度的一半),并且它会相应地增大和缩小。

答案 1 :(得分:1)

使用jQuery:

$(window).resize(function () {
  var divWidth = $('#one').width();
    $('#two').css({
      borderLeftWidth: divWidth / 2,
      borderRightWidth: divWidth / 2
    });
});

$(window).trigger('resize');


#one {
  max-width: 100%;
}

JSFIDDLE

答案 2 :(得分:-1)

在搜索“响应式CSS三角”

时在Google上找到此信息

https://jsfiddle.net/josedvq/3HG6d/

相关代码如下:

/*Down pointing*/
.triangle-down {
    width: 10%;
    height: 0;
    padding-left:10%;
    padding-top: 10%;
    overflow: hidden;
}
.triangle-down:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    margin-left:-500px;
    margin-top:-500px;

    border-left: 500px solid transparent;
    border-right: 500px solid transparent;
    border-top: 500px solid #4679BD;
}