我想在div div的背景上绘制 2条平行对角线 请参阅我的表here:
body {
background-image: url("http://i.imgur.com/TnPgXl4.jpg");
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-repeat: no-repeat;
padding: 40px;
}
#table {
width: 800px;
height: 300px;
background-color: transparent;
border: solid 1px white;
}
<div id="table"></div>
我希望达到以下目的:
答案 0 :(得分:4)
您可以使用旋转的伪元素实现 2对角线。这两行是绝对定位的伪元素的顶部和底部边界:
body {
background-image: url("http://i.imgur.com/TnPgXl4.jpg");
background-size: cover;
background-repeat: no-repeat;
padding: 40px;
}
#table {
position: relative;
width: 800px; height: 300px;
background-color: transparent;
border: solid 1px white;
overflow: hidden;
}
#table:before {
content: '';
position: absolute;
right: 30%; bottom: 100%;
height: 20px; width: 100%;
border-top: 1px solid #fff;
border-bottom: 1px solid #fff;
transform-origin: 100% 100%;
transform: rotate(-70deg);
}
&#13;
<div id="table"></div>
&#13;
这是如何工作的:
overflow:hidden;
属性中
请注意,您需要在transform和transform origin属性中添加供应商前缀以获得浏览器支持,并且您可能不需要background-size
属性上的供应商前缀:< / p>
答案 1 :(得分:3)
您可以使用:after
和:before
伪元素和trasform: rotate()
body {
background-image: url("http://www.planwallpaper.com/static/images/cool-background.jpg");
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-repeat: no-repeat;
padding:40px;
}
#table {
width: 70%;
height: 300px;
background-color: transparent;
border: solid 1px white;
margin: 0 auto;
position: relative;
box-sizing: border-box;
}
#table:before, #table:after {
content: "";
position: absolute;
left: 60%;
height: 102%;
border-left: 1px solid white;
transform: rotate(10deg);
transform-origin: top;
}
#table:after {
left: 65%;
}
&#13;
<div id="table"></div>
&#13;
答案 2 :(得分:3)
wek-tiki和Nenad Vracar的替代方案是使用skewX()
CSS变换。
此解决方案不需要您隐藏溢出边缘的任何内容,因此可以增加一点灵活性。
body {
background-image: url("http://i.imgur.com/TnPgXl4.jpg");
background-size: cover;
background-repeat: no-repeat;
padding: 40px;
}
#table {
position: relative;
width: 800px;
height: 300px;
background-color: transparent;
border: solid 1px white;
}
#table:before {
content: '';
position: absolute;
left: 50%;
top: 0;
height: 100%;
width: 20px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
transform-origin: 100% 100%;
transform: skewX(-20deg);
}
<div id="table"></div>
答案 3 :(得分:3)
您可以使用svg元素并将svg跨越到div。
body {
background-color: #222;
margin: 20px;
}
.container {
width: 100%;
height: 150px;
border: 2px solid white;
}
.container svg {
width: 100%;
height: 100%;
}
<div class="container">
<svg viewBox="0 0 100 100">
<line stroke="white" x1="47" x2="57" y1="100" y2="0" />
<line stroke="white" x1="57" x2="67" y1="100" y2="0" />
</svg>
</div>