HTML/CSS 对象内部的边框阴影
HTML/CSS border shadow inside object
我正在寻找一种方法使列表具有带实心阴影的边框,看起来就像第二个边框,而不使用图像作为边框,因为它会用于更改文本,这意味着宽度也会更改。
我的目标是:
但没有添加第二个具有负 z-index 的对象,也没有使用宽度更改等脚本使所有内容复杂化。我得到的唯一结果是
CSS 使用的代码会很简单
li {
padding: 5px;
display: inline-block;
border: 1px solid #718496;
-webkit-box-shadow: 1px 1px rgba(68, 150, 210, 0.5);
box-shadow: 1px 1px rgba(68, 150, 210, 0.5);
border-radius: 10px;
height: 18px;
}
*仅带图标的框只是为了展示我想要的效果,而不是我唯一需要它的框。
如果没有第二个带边框的对象,是否有可能实现这种效果?
border-shadow
can take up to 6 arguments (see the mdn doc #values 以获得完整定义):
- offset-x: 水平偏移
- offset-y: 垂直偏移
- blur-radius: 阴影外部的模糊效果
- spread-radius: 纯色(无模糊)厚度
- 颜色:这里不需要描述 :)
- 插图:(兼)如果你想让你的影子进入你的街区
为了达到您想要的效果,您需要使用 blur-radius
& spread-radius
而不是您当前使用的 offset-xy
。
举个例子:
div{
display: inline-block;
margin: 20px;
padding: 5px;
background-color: #aaf;
}
#id1{
box-shadow: 0 0 0 15px #55f;
}
#id2{
box-shadow: 0 0 15px 15px #55f;
}
#id3{
box-shadow: 0 0 0 2px #55f;
}
#id4{
box-shadow: 0 0 3px 3px #55f; /* here's what you want */
}
<div id="id1">sharp thick border without blur</div>
<div id="id2">thick border with blur</div>
<div id="id3">thin border without blur</div>
<div id="id4">thin border with blur</div>
编辑: 由于我屏幕上的颜色糟糕,所以没有看到您想要的内容。
这是片段(我将边框设为 3px 宽,以便人们清楚地看到您在说什么)。
*{
background-color: #ddd;
}
div{
margin: 20px;
width: 50px;
height: 50px;
border: 3px solid #aaf;
box-shadow: 3px 3px 0 0 #00a,
3px 3px 0 0 #00a inset;
}
<div id="id1"></div>
我正在寻找一种方法使列表具有带实心阴影的边框,看起来就像第二个边框,而不使用图像作为边框,因为它会用于更改文本,这意味着宽度也会更改。
我的目标是:
但没有添加第二个具有负 z-index 的对象,也没有使用宽度更改等脚本使所有内容复杂化。我得到的唯一结果是
CSS 使用的代码会很简单
li {
padding: 5px;
display: inline-block;
border: 1px solid #718496;
-webkit-box-shadow: 1px 1px rgba(68, 150, 210, 0.5);
box-shadow: 1px 1px rgba(68, 150, 210, 0.5);
border-radius: 10px;
height: 18px;
}
*仅带图标的框只是为了展示我想要的效果,而不是我唯一需要它的框。
如果没有第二个带边框的对象,是否有可能实现这种效果?
border-shadow
can take up to 6 arguments (see the mdn doc #values 以获得完整定义):
- offset-x: 水平偏移
- offset-y: 垂直偏移
- blur-radius: 阴影外部的模糊效果
- spread-radius: 纯色(无模糊)厚度
- 颜色:这里不需要描述 :)
- 插图:(兼)如果你想让你的影子进入你的街区
为了达到您想要的效果,您需要使用 blur-radius
& spread-radius
而不是您当前使用的 offset-xy
。
举个例子:
div{
display: inline-block;
margin: 20px;
padding: 5px;
background-color: #aaf;
}
#id1{
box-shadow: 0 0 0 15px #55f;
}
#id2{
box-shadow: 0 0 15px 15px #55f;
}
#id3{
box-shadow: 0 0 0 2px #55f;
}
#id4{
box-shadow: 0 0 3px 3px #55f; /* here's what you want */
}
<div id="id1">sharp thick border without blur</div>
<div id="id2">thick border with blur</div>
<div id="id3">thin border without blur</div>
<div id="id4">thin border with blur</div>
编辑: 由于我屏幕上的颜色糟糕,所以没有看到您想要的内容。
这是片段(我将边框设为 3px 宽,以便人们清楚地看到您在说什么)。
*{
background-color: #ddd;
}
div{
margin: 20px;
width: 50px;
height: 50px;
border: 3px solid #aaf;
box-shadow: 3px 3px 0 0 #00a,
3px 3px 0 0 #00a inset;
}
<div id="id1"></div>