我有一个图形背景,我需要在左上角显示一个彩色三角形(independing分辨率)。
我可以创建仅使用HTML / CSS / JS与宽度= 100%和高度= 200像素与背景红色=一个三角形形元件?
我可以通过用宽度= 100%IMG创建它,但我希望的比调整大小的图像的更好的解决方案。
该解决方案需要与IE7 +,并使用浏览器的版本(超过2%)兼容。
谢谢
我有一个图形背景,我需要在左上角显示一个彩色三角形(independing分辨率)。
我可以创建仅使用HTML / CSS / JS与宽度= 100%和高度= 200像素与背景红色=一个三角形形元件?
我可以通过用宽度= 100%IMG创建它,但我希望的比调整大小的图像的更好的解决方案。
该解决方案需要与IE7 +,并使用浏览器的版本(超过2%)兼容。
谢谢
为了扩展网络的tiki的回答 ,我觉得这其实是你要什么:
$(document).ready(function() { function triangle() { $("#wrap .tr").css({ "border-left": $('#wrap').width() + "px solid #fff", "border-bottom": "200px solid transparent" }); } triangle(); $(window).on('resize', triangle); });
body { background: #fff; } #wrap { position: relative; min-height: 500px; background: teal; } .tr { position: absolute; left: 0; top: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="wrap"> <div class="tr"></div> </div>
因为你不能创建具有百分比的边框,请尝试使用VW(浏览器宽度)来代替。 所以:
.triangle{
width: 0;
height: 0;
border-bottom: 600px solid blue;
border-left: 100vw solid transparent;
}
大众单位不支持IE8,您将需要使用JS后备对于不支持这些单位的浏览器。
这里是一个jQuery脚本,根据窗口大小设置边框宽度,并调整它的窗口大小调整。 测试在IE8(IE测试仪):
$(document).ready(function() { function triangle() { var width = $('#wrap').width(), border = width / 4; $("#wrap .tr").css({ "border-left": border + "px solid #fff", "border-bottom": border + "px solid transparent" }); } triangle(); $(window).on('resize', triangle); });
body { background: #fff; } #wrap { position: relative; min-height: 500px; background: teal; } .tr { position: absolute; left: 0; top: 0; border-left: 200px solid #fff; border-bottom: 200px solid transparent; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="wrap"> <div class="tr"></div> </div>
我认为这将是最好用的背景,而不是边界:
.my-triangle { width: 100%; height: 200px; background: linear-gradient(to left top, transparent 50%, red 50%); }
<div class="my-triangle"></div>
请注意,为了它是跨浏览器兼容,你需要反复折腾的CSS前缀,IE滤波器和SVG。 (我不容易访问IE浏览器,所以我会离开,一个给你,但它会沿着这些路线的东西:)
background-image: -webkit-gradient(linear, right bottom, left top, color-stop(0, transparent), color-stop(0.5, transparent), color-stop(0.5, #FF0000), color-stop(1, #FF0000));
background-image: -webkit-linear-gradient(bottom right, transparent 0%, transparent 50%, #FF0000 50%, #FF0000 100%);
background-image: -moz-linear-gradient(bottom right, transparent 0%, transparent 50%, #FF0000 50%, #FF0000 100%);
background-image: -ms-linear-gradient(bottom right, transparent 0%, transparent 50%, #FF0000 50%, #FF0000 100%);
background-image: -o-linear-gradient(bottom right, transparent 0%, transparent 50%, #FF0000 50%, #FF0000 100%);
background-image: linear-gradient(to top left, transparent 0%, transparent 50%, #FF0000 50%, #FF0000 100%);
就拿一个div元素,给一个类别名称“三角左上”,并写了如下的CSS
.triangle-topleft {
width: 0;
height: 0;
border-top: 100px solid red;
border-right: 100px solid transparent;
}
边框顶部的颜色将是div的背景color..Here它是红色。 有关详细的三角形的结构,此链接.. [ http://css-tricks.com/examples/ShapesOfCSS/][1]