我想尝试使用边框在CSS中实现某些东西,但它们似乎没有我想要的东西。在Photoshop中,添加笔触(边框)时,可以选择位置。外部,内部或中心。外面是整个边界环绕物体的地方。里面是它位于内部(显然),中心是一半和一半。
我想要一个位于中心的2px
边框。因此它显示在外部1px和内部1px
。无论如何用CSS做到这一点?我想我可以用某种box-shadow
做到这一点,但我对CSS中的阴影很可怕。
还有必须是纯CSS的问题,所以我不能在它上面留下图像。有人可以帮我解决这个问题。
感谢。
答案 0 :(得分:12)
由于border
表示外部笔划,因此可以使用outline
css属性,outline-offset
设置为负值以获得内部{ {1}} stroke (1) JS Fiddle
1px

body {
padding-top: 10px;
}
#test {
width: 250px;
height: 200px;
background-color: orange;
margin: 0 auto;
border: 1px navy solid; /* outer stroke */
outline: 1px navy solid; /* inner stroke */
outline-offset: -2px; /* negative border width + outline width */
}

(1)由于上述小提琴可能无法充分证明这些解释,所以这里有两个彩色笔画的同一个例子,每个笔画都有<div id="test"></div>
而不是{{ 1}} Demo Fiddle
<强>资源:强>
http://caniuse.com/#search=outline
https://developer.mozilla.org/en/docs/Web/CSS/outline-offset
答案 1 :(得分:1)
也许有一个合适大小的绝对定位的伪元素?
div {
box-sizing: border-box;
width: 200px;
height: 200px;
border: 1px solid black;
margin: 1em auto;
position: relative;
}
div:after {
content: '';
position: absolute;
top:-6px;
left: -6px;
width: calc(100% - 12px);
height: calc(100% - 12px);
border:12px solid rgba(255,0,0,0.5)
}
<div></div>
答案 2 :(得分:0)
您可以轻推容器,使其看起来像是一个内部边框。例如,如果您有一个2px
左边框并希望它显示为内边框,则可以将整个容器向右偏移,如下所示:
position: relative;
left: 2px;
您可能需要进行其他更正,例如将容器的宽度减少2px
。