向右浮动:当HTML中有空格时,psuedo元素中断到新行后
下面是一个代码笔,它说明了我遇到的问题: 我将排序指示符作为psuedo元素添加到内联块元素的网格中,我使用:after psuedo元素来实现这一点。问题是,模板在单元格内容中偶尔会有注释或空格,当:after psuedo元素浮动到单元格右侧时,这会导致psuedo元素断开到新行 单元格的宽度是通过角度指令生成的,因此在CSS中设置它不是一个选项向右浮动:当HTML中有空格时,psuedo元素中断到新行后,html,css,css-float,less,Html,Css,Css Float,Less,下面是一个代码笔,它说明了我遇到的问题: 我将排序指示符作为psuedo元素添加到内联块元素的网格中,我使用:after psuedo元素来实现这一点。问题是,模板在单元格内容中偶尔会有注释或空格,当:after psuedo元素浮动到单元格右侧时,这会导致psuedo元素断开到新行 单元格的宽度是通过角度指令生成的,因此在CSS中设置它不是一个选项 .cell { border: 1px solid red; display: inline-block; } .cell:after
.cell {
border: 1px solid red;
display: inline-block;
}
.cell:after {
content: ">";
display: block;
float: right;
}
<div class="cell"> Input </div>
.cell{
边框:1px纯红;
显示:内联块;
}
.手机:之后{
内容:“>”;
显示:块;
浮动:对;
}
输入
我不太明白我提出的两个解决方案为什么有效:
如果您有任何见解或其他解决方案,我们将不胜感激。这是一个Chrome bug;这在Firefox中不会发生。末端多余的空格是隐藏的,这正是HTML处理块级元素的方式。因此,框的宽度设置为文本“
Input
”的宽度,不带空格。但它们仍然存在于DOM中。当您使用:在之后,实际上,>只是附加到已经存在的内容中,就好像它是
一样。它在不可见空间之后,现在生效,因为它不再持续,按下>。浮动它不会改变父对象的宽度,因此它会捕捉到一条新线
这就是它发生的原因(bug!仅在Chrome中)。您的第一个解决方案之所以有效,是因为:before
在内容之前插入了虚构的
,因此不可见的空间不会被扩展。第二种解决方案很可能有效,因为边距抵消了空间的正确推动效应,但请不要引用我的话,我不确定
最简单的解决方案是使用:before
。语义上不正确,但嘿,这是有效的。希望这个答案对你有帮助,我写它时有点不确定…这是一个Chrome bug;这在Firefox中不会发生。末端多余的空格是隐藏的,这正是HTML处理块级元素的方式。因此,框的宽度设置为文本“Input
”的宽度,不带空格。但它们仍然存在于DOM中。当您使用:在之后,实际上,>只是附加到已经存在的内容中,就好像它是
一样。它在不可见空间之后,现在生效,因为它不再持续,按下>。浮动它不会改变父对象的宽度,因此它会捕捉到一条新线
这就是它发生的原因(bug!仅在Chrome中)。您的第一个解决方案之所以有效,是因为:before
在内容之前插入了虚构的
,因此不可见的空间不会被扩展。第二种解决方案很可能有效,因为边距抵消了空间的正确推动效应,但请不要引用我的话,我不确定
最简单的解决方案是使用:before
。语义上不正确,但嘿,这是有效的。希望这个答案对你有帮助,我写它时有点不确定…这是一个Chrome bug;这在Firefox中不会发生。末端多余的空格是隐藏的,这正是HTML处理块级元素的方式。因此,框的宽度设置为文本“Input
”的宽度,不带空格。但它们仍然存在于DOM中。当您使用:在之后,实际上,>只是附加到已经存在的内容中,就好像它是
一样。它在不可见空间之后,现在生效,因为它不再持续,按下>。浮动它不会改变父对象的宽度,因此它会捕捉到一条新线
这就是它发生的原因(bug!仅在Chrome中)。您的第一个解决方案之所以有效,是因为:before
在内容之前插入了虚构的
,因此不可见的空间不会被扩展。第二种解决方案很可能有效,因为边距抵消了空间的正确推动效应,但请不要引用我的话,我不确定
最简单的解决方案是使用:before
。语义上不正确,但嘿,这是有效的。希望这个答案对你有帮助,我写它时有点不确定…这是一个Chrome bug;这在Firefox中不会发生。末端多余的空格是隐藏的,这正是HTML处理块级元素的方式。因此,框的宽度设置为文本“Input
”的宽度,不带空格。但它们仍然存在于DOM中。当您使用:在之后,实际上,>只是附加到已经存在的内容中,就好像它是
一样。它在不可见空间之后,现在生效,因为它不再持续,按下>。浮动它不会改变父对象的宽度,因此它会捕捉到一条新线
这就是它发生的原因(bug!仅在Chrome中)。您的第一个解决方案之所以有效,是因为:before
在内容之前插入了虚构的
,因此不可见的空间不会被扩展。第二种解决方案很可能有效,因为边距抵消了空间的正确推动效应,但请不要引用我的话,我不确定
最简单的解决方案是使用:before
。语义上不正确,但嘿,这是有效的。希望这个答案对你有帮助,我写它时感觉有点不确定…你是否尝试过删除浮点:右
并在上设置显示:内联块
。单元格:在
之后?是的,浮点:右
是布局所必需的,显示:内联块
也没有帮助。我还尝试对psuedo元素使用绝对定位,但由于