通过<div>或<span>的对角线

gti*_*flm 20 html css

我想要从a的右上角<div>或左下角绘制一条对角线<span>.问题是内容有时会更长或更短.所以,像静态图像这样的东西是行不通的.基本上我想要这里描述的内容(如何在表格单元格中创建对角线?)但是对于a <div>或a <span>.

这有一些有趣的想法:http://jsfiddle.net/zw3Ve/11/

这样做:http://css-tricks.com/forums/discussion/13384/diagonal-line/p1

这是在这篇文章中的重试:如何用css斜穿

我似乎无法想象这一点.看起来纯CSS解决方案应该在这里工作,但我只是没有技能来实现这一点.jQuery也是我的选择.

Tri*_*ton 22

您可以使用内联SVG背景,仅使用CSS而不使用javascript.

.background {
   // Draw an SVG top left to bottom right 
   background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' preserveAspectRatio='none' viewBox='0 0 10 10'> <path d='M0 0 L0 10 L10 10' fill='red' /></svg>");
   background-repeat:no-repeat;
   background-position:center center;
   //scale it 
   background-size: 100% 100%, auto;
}
Run Code Online (Sandbox Code Playgroud)

看我的小提琴:

http://jsfiddle.net/3GWw2/

  • 如果您不熟悉<svg>的<path>元素,可以添加fill ='none',stroke ='gray'和stroke-width ='1'属性以仅绘制特定颜色的线条没有填补.Path元素使用基于<svg>元素中设置的viewBox属性的坐标系.这里的视图设置为0 0 10 10 ...一个高10宽的盒子.在路径元素上,M表示将笔放在此处(在0,0处),L表示将lint拉到0 10然后到10 10(从左上角开始,向左下方绘制,然后向右上方绘制).请参阅:http://www.w3.org/TR/SVG11/paths.html#PathElement (3认同)
  • 另请注意,如果您想要在左上方做右上角,则不需要先在左下方绘制,就像在此答案中所做的那样.您可以使用:<path d ='M 10 0 L 0 10 fill ='none'stroke ='gray'hepe-width ='1'/> (2认同)

G-C*_*Cyr 10

是第一个小提琴作为背景中的图像而不是足够好吗?

http://jsfiddle.net/zw3Ve/410/

.line {
    display:inline-block;
    border: 1px solid #ccc;
    margin: 10px;
    padding: 10px;
    background:url(http://i.piccy.info/i7/c7a432fe0beb98a3a66f5b423b430423/1-5-1789/1066503/lol.png);
    background-size:100% 100%;
}
Run Code Online (Sandbox Code Playgroud)


dwt*_*.ts 5

您可以使用如下所示的 SVG 图像:

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
<svg version="1.1" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
 x="0px" y="0px" width="200px" height="50px" viewBox="0 0 200 50">
    <line fill="none" stroke="#000" x1="0" y1="0" x2="200" y2="50"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

将其设置为 span 或 div 的背景

.class-of-div-or-span { background: url("line.svg") no-repeat scroll 0 0 / 100% 100% transparent; }
Run Code Online (Sandbox Code Playgroud)

注意:您必须给出您的跨度display:blockdisplay:inline-block才能工作。

您还可以内联 svg、在对象标记中使用它或将其嵌入到 css 中。


Sup*_*rah 5

你可以用线性渐变来做到这一点。例如,如果我想要一个从左下角到右上角对角切割的绿色和白色方块,我给它这个背景属性:

background: linear-gradient(to bottom right, white, white 50%, green 50%, green);
Run Code Online (Sandbox Code Playgroud)

这意味着它从左上角开始为白色,一直到对角线都为白色。过渡立即从白色变为绿色,没有实际渐变,因为两者都设置为 50%。如果你想要一条灰线,你可以试试这个:

background: linear-gradient(to bottom right, white, white 48%, gray 48%, gray 52%, green 52%, green);
Run Code Online (Sandbox Code Playgroud)

  • +1 是唯一的 100% CSS 解决方案(不需要 SVG 图像背景),此外还可以有效参数化颜色、方向和线宽! (3认同)