【发布时间】:2013-05-02 20:05:31
【问题描述】:
我想知道是否可以使用 CSS 指定 边框绘制样式(不是 border-style)(我需要至少在 webkit 上有效)。
嗯,我有一个像div.border 这样的元素,它有四边边框5px silver solid。但是根据添加的类,例如div.border.red-mark,它将收到border-left: 15px red solid。我需要渲染样式是 rectangular 而不是 自适应 到线宽(或与点成角度)。
为了澄清,请查看this example。我需要得到一些东西like that。但是我无法修改 HTML 结构,就像我在第二个示例中所做的那样;我真的可以只使用 CSS。
有可能吗?
【问题讨论】:
-
您已经证明自己是可能的。不使用边框样式,但您可以使用 4 个边框 div 解决方法
-
@SvenBieder,OP 明确表示他不能修改 html。
-
@DerekHenderson 不修改 html 结构是不可能的。但是有一些方法可以间接修改 html。例如,您如何在 Josh Davenport 的回答中或使用 javascript 中看到它。或者,当使用服务器端语言并且场景允许回帖时,您也可以影响那里的 html。这一切都取决于项目的确切结构。所以OP以何种方式修改结构一定要根据整体架构来决定。
-
@SvenBieder,Josh Davenport 的答案是一个纯 CSS 的答案,正是 OP 正在寻找的,这就是为什么我是第一个给它投票的人。但是用
:before注入内容与以OP 在他的第二把小提琴中所做的方式修改html 并不完全相同。所以答案是肯定的,这是可能的,达文波特先生巧妙地展示了如何做到的。 -
@SvenBieder - Josh 的回答没有修改 HTML 结构。它添加了一个伪元素,但它明确不是 HTML 结构或 DOM 的一部分。无论如何,甚至不用
:before也可以做到;使用border-image查看我的答案。