javascript - 尽管使用了显示块,但伪元素未在 React on 段落标记中显示
问题描述
这个伪元素::after
根本不会出现在我的浏览器中。我正在使用 React.js 和 Material UI makeStyles
。
这是代码:
modalTitle: {
borderBottom: '2px solid red',
display: 'block',
margin: '10px 15px',
padding: '0',
width: '100px',
'&::after': {
background: 'green',
content: '',
display: 'block',
height: '2px',
width: '2px',
},
},
请注意,下面的代码modalTitle
显示并有效,只有伪元素没有通过。有什么想法吗?
解决方案
这是一个棘手的问题。当您使用makeStyles
时,它接受一个样式对象(或一个返回对象的函数)。该对象将类名作为键,将包含属性-值对的对象作为值。这些值是字符串(如"block"
、"green"
或"10px 15px"
)。
CSS 中的::before
和::after
伪元素允许我们在页面上插入内容。每个伪元素都必须有一个 CSScontent
属性,没有它,content 的默认值设置为normal
/ none
,并且不显示任何内容。
您的代码的问题是您添加content: ''
了对象,但您需要传递一个空字符串作为 CSS 值,如下所示content: '""'
:
同样,如果您想插入一些文本,content
您不能简单地添加字符串,您需要在文本周围使用引号并将其作为字符串传递:
// ❌ this one doesn't work
{
content: 'some text',
}
// ✅ this one does work
{
content: '"some text"',
}
因此,您可以使用以下内容,它将添加元素:
const useStyles = makeStyles({
modalTitle: {
borderBottom: '2px solid red',
display: 'block',
margin: '10px 15px',
padding: '0',
width: '100px',
'&::after': {
background: 'green',
content: '""',
display: 'block',
height: '2px',
width: '2px',
},
},
});
推荐阅读
- java - StackOverflowError in Magic Square program for checking if square is magic
- python - 当我将存档导入其他代码时,Tkinter Entry 为 0
- excel - 我的宏无法执行 vlookup
- ruby - 在 Ruby Shoes 上加载字体
- oracle - 使用插入后触发器更新另一列
- javascript - 锚标签不可点击的文本重叠问题
- c++ - 属性的多个缓冲区如何在 openGL (ES) 着色器和 C++ api 中工作
- sql - SQL: COUNT PARTITION BY
- javascript - Array.prototype.map() 可以改变它调用的数组吗?
- google-cloud-platform - 如何通过使用 npm GCS 客户端发送图像 url 在 Google Cloud Storage 存储桶中下载/存储图像/文件?