2014-04-01 27 views
1

我想在css中使该线穿过方块(下图),任何人都可以帮助我吗?在盒子上插入一条线CSS

img http://www.brainmotion.com.br/download/img.png

如果我有这样一个div:

<div class="abcd"> 
</div> 

.a {border:1px solid;} 

非常感谢

+1

不明白你的意思。 –

+0

我需要把这条线穿过一个正方形.... 我可以做到这一点在CSS? –

+0

相关:http://stackoverflow.com/questions/18012420/draw-diagonal-lines-in-div-background-with-css – geoff

回答

4

您可以尝试使用CSS三角形伎俩来呈现2个三角形,第一有边框颜色同样的,你想要的颜色,第二个边框颜色相同,背景色的div

div { 
    width:49px; 
    height:49px; 
    border:1px solid black; 
    position:relative; 
} 
div:before { 
    content:''; 
    position:absolute; 
    width:0; 
    height:0; 
    top:-1px; 
    left:-1px; 
    border:25px solid transparent; 
    border-right:25px solid black; 
    border-bottom:25px solid black; 
    z-index:-3; 
} 
div:after { 
    position:absolute; 
    content:''; 
    width:0; 
    height:0; 
    top:1px; 
    left:1px; 
    border:24px solid transparent; 
    border-right:24px solid white; 
    border-bottom:24px solid white; 
    z-index:-2; 
} 

这里是fiddle

请注意,有了这个解决方案,你必须用试错法调整一下。

UPDATE:另一个简单的方法是使用linear-gradient产生对角线动态的div这样的background

div { 
    width:50px; 
    height:50px; 
    border:1px solid black; 
    position:relative; 
    text-align:center; 
    line-height:50px; 
    font-size:25px; 
    background:linear-gradient(to bottom right, white, white 48%, black 50%, white 52%, white); 
} 

这里是更新fiddle

+1

哇,那里,史诗般的代码,比我的答案好多了! :D伪选择器FTW。 –

+1

@deraad谢谢,实际上使用转换的想法也让我惊讶,对角线的质量更高,但我们必须计算太多:) –

1

是的,你可以这样做父<div>结合使用transform: rotate(45deg);overflow: hidden,但我会极大地阻止这种情况,因为这在浏览器兼容性方面会是一场灾难。我只是使用图像。

下面是一个例子(注:快速和马虎),我在Chrome测试的工作原理:

http://jsfiddle.net/97xsh/1/

1

这里是一个实现了同样的效果。 http://jsfiddle.net/j8USa/1/

.box{ 
    width:40px; 
    height:40px; 
    border:1px #000 solid; 
    overflow:hidden; 
    position:relative; 
    text-align:center; 
    vertical-align:middle; 

} 
.strike{ 
    position:absolute; 
    width:60px; 
    height:1px; 
    border-top:1px #000 solid; 
    margin-top:20px; 
    margin-left:-10px; 
    -webkit-transform:rotate(-45deg); 
    -moz-transform:rotate(-45deg); 
    transform:rotate(-45deg); 


} 
.box span{ 
    vertical-align:middle; 
    font-size: 26pt; 
    color:red; 
}