伪元素选择器不起作用
Pseudo element selector not working
我有一个能够缩放大小的动态元素,它的位置可以放在屏幕上的任何位置。我基本上是在尝试创建一个 "elbow" 部分。
这个 "elbow" 需要的是右上角的延伸臂...有趣的是,虽然我的位置和大小正确,但由于某种原因,伪元素没有出现在灰色我正在调用...(见附图,显示元素检查器以正确的大小和位置突出显示元素,但不是相同的灰色)...
我这里有一个 JSFiddle 代码:https://jsfiddle.net/eliseo_d/6p9z8xr3/
HTML:
<div class="elbow-1-toprt-wide0-grey1">elbow 1</div>
CSS:
html {
background-color: rgb(0,0,0);
}
body {
margin: 5px;
}
div[class$='-grey1'] {
background-color: rgb(102,102,102);
}
div[class^='elbow-'] {
/* default settings */
color: rgb(0,0,0);
font-size: 14pt;
height: 14px;
margin-bottom: 4px;
margin-right: 4px;
overflow: hidden;
padding-bottom: 7px;
padding-left: 10px;
padding-right: 10px;
text-align: right;
text-transform: uppercase;
width: 84px;
position: relative;
}
div[class^='elbow-1-'] {
padding-top: 46px;
}
/* Initial curve */
div[class^='elbow-'][class*='-toprt-'] {
border-top-left-radius: 42px;
}
/* elbow bar */
div[class^='elbow-'][class*='-toprt-']:after {
content: '';
height: 30px;
left: 104px;
top: 0;
position: absolute;
}
div[class^='elbow-'][class*='-wide0-']:after {
width: 21px;
}
div[class^='elbow-'][class*='-wide0-'][class$='-grey0']:after {
background-color: rgb(51,51,51);
}
div[class^='elbow-'][class*='-wide0-'][class$='-grey1']:after {
background-color: rgb(102,102,102);
}
我似乎无法弄清楚我错过了什么?
有人知道我错过了什么吗?提前致谢。
::after
元素与背景一起显示,您的问题是 div[class^='elbow-']
设置为 overflow:hidden;
,这隐藏了伪元素。
只需删除 overflow:hidden;
我有一个能够缩放大小的动态元素,它的位置可以放在屏幕上的任何位置。我基本上是在尝试创建一个 "elbow" 部分。
这个 "elbow" 需要的是右上角的延伸臂...有趣的是,虽然我的位置和大小正确,但由于某种原因,伪元素没有出现在灰色我正在调用...(见附图,显示元素检查器以正确的大小和位置突出显示元素,但不是相同的灰色)...
我这里有一个 JSFiddle 代码:https://jsfiddle.net/eliseo_d/6p9z8xr3/
HTML:
<div class="elbow-1-toprt-wide0-grey1">elbow 1</div>
CSS:
html {
background-color: rgb(0,0,0);
}
body {
margin: 5px;
}
div[class$='-grey1'] {
background-color: rgb(102,102,102);
}
div[class^='elbow-'] {
/* default settings */
color: rgb(0,0,0);
font-size: 14pt;
height: 14px;
margin-bottom: 4px;
margin-right: 4px;
overflow: hidden;
padding-bottom: 7px;
padding-left: 10px;
padding-right: 10px;
text-align: right;
text-transform: uppercase;
width: 84px;
position: relative;
}
div[class^='elbow-1-'] {
padding-top: 46px;
}
/* Initial curve */
div[class^='elbow-'][class*='-toprt-'] {
border-top-left-radius: 42px;
}
/* elbow bar */
div[class^='elbow-'][class*='-toprt-']:after {
content: '';
height: 30px;
left: 104px;
top: 0;
position: absolute;
}
div[class^='elbow-'][class*='-wide0-']:after {
width: 21px;
}
div[class^='elbow-'][class*='-wide0-'][class$='-grey0']:after {
background-color: rgb(51,51,51);
}
div[class^='elbow-'][class*='-wide0-'][class$='-grey1']:after {
background-color: rgb(102,102,102);
}
我似乎无法弄清楚我错过了什么?
有人知道我错过了什么吗?提前致谢。
::after
元素与背景一起显示,您的问题是 div[class^='elbow-']
设置为 overflow:hidden;
,这隐藏了伪元素。
只需删除 overflow:hidden;