我试着把一个HTML元素放在一个标题的第一行的末尾。为了更好的理解,我截图了它现在的样子和它应该是什么样子。
外观:
它应该是什么样子:
如您所见,我使用::first-line
伪选择器将标题第一行的背景更改为红色。
到目前为止,我已经尝试将::after
添加到::first-line
中,但有两个问题。首先,我没有设法在::after
中显示文本内容。其次,您不能将html内容同时添加到::before
和::after
中,因此这是毫无意义的。
您应该知道,“sunshines”不是一个图像,而是一个实际的html元素:
第一个
这是带有scss模块的JSX,但基本上语法与HTML/CSS相同。
你有什么想法如何做到这一点,我想这是可能的,因为css是有能力知道在哪里结束的线,因为我可以改变背景。
2条答案
按热度按时间rhfm7lfc1#
如果可以将heading,html中的两行分隔开,您可以这样做:
CSS:
e4eetjau2#
我已经想通了。
虽然我的解决方案非常“笨拙”,但它在我想到的任何测试用例中都能很好地工作。
我的解决方案是用相同的css属性在标题的第一行创建一个隐藏的副本,然后得到副本的宽度,用这个值定义sunshines的
left
属性。下面是我用来获取第一行文本的函数:
如果你想做同样的小心等待字体的网页被加载或宽度你将得到将是错误的
我还设法处理了当标题具有
text-align: center;
属性时的情况,方法是将margin-left/right: auto;
添加到副本,然后使用以下命令将副本添加到计算出的left
中:我知道它并不完美,但由于在css中没有简单的方法来做到这一点,这是我找到的唯一有效的方法。