Css firefox在伪元素周围添加了奇怪的空格
看看这些照片Css firefox在伪元素周围添加了奇怪的空格,css,firefox,pseudo-element,Css,Firefox,Pseudo Element,看看这些照片 JSFiddle底部链接 firefox: 铬: 它们都是来自chrome和firefox的相同元素,正如你所看到的,firefox的元素在顶部和左侧有一些空间,但chrome的元素没有 现在,没有空白或任何原因导致这种情况,它在除firefox之外的任何其他浏览器中都可以正常工作。 主要元素的重要样式是 float: left; height: 30px; line-height: 30px; margin: 12.5px 0; 对于伪元素::before floa
JSFiddle底部链接
firefox:
铬:
它们都是来自chrome和firefox的相同元素,正如你所看到的,firefox的元素在顶部和左侧有一些空间,但chrome的元素没有 现在,没有空白或任何原因导致这种情况,它在除firefox之外的任何其他浏览器中都可以正常工作。 主要元素的重要样式是
float: left;
height: 30px;
line-height: 30px;
margin: 12.5px 0;
对于伪元素::beforefloat: left;
display: block;
content: '\F011';
height: 30px;
line-height: 30px;
margin: 0 10px 0 0;
padding: 0 10px;
以及元素的HTML
<button class="like" onclick="item_like()">500</button>
500
这是JSFIDLE的链接
在chrome和firefox中运行它,并查看差异我做错了什么?也许可以尝试使用CSS定位类似的内容
.like{
float: left;
height: 30px;
margin: 12.5px 0;
background-color: #FAFAFA;
border-radius: 4px;
position:relative;
padding: 0 10px 0 40px;
margin: 12.5px 10px;
background-color: #000;
font: 16px/30px arial;
color: #FFF;
border:none;}
.like::before{
position:absolute; top:0; left:0;
width:30px;
content: 'like';
margin: 0 10px 0 0;
padding: 0 5px;
background-color: #FF7373;
color: #FFF;
border-right: 1px solid #CCC; display:block; border:0;
}
我建议您指定top:0;左:0;到您的::before伪元素。有时,厚脸皮的浏览器会向上移动一些像素,然后将其保留到实际位置。CSS:
.like:before {
float: none;
width: 30px;
content: "like";
margin: 0px 10px 0px 0px;
padding: 0px 5px;
background-color: #FF7373;
color: #FFF;
border-right: 1px solid #CCC;
position: absolute;
top: 0;
left: 0;
border-radius: 4px 0 0 4px;
}
.like {
float: none;
height: 30px;
border-radius: 4px;
box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.5);
padding: 0px 10px 0px 0px;
margin: 12.5px 10px;
background-color: #000;
font: 16px/30px arial;
color: #FFF;
border: medium none;
position: relative;
width: 88px;
text-align: right;
}
Fiddle:我为您创建了此解决方案,它将按钮放置在相对位置,并将
:置于绝对位置之前。然后您可以使用顶部
、底部
和左侧
位置,这将是相对于父项的位置
请注意,我在按钮中添加了一个溢出:隐藏,因此圆角边框仍然可见
这是经过修改的CSS:
.like {
float: left;
height: 30px;
margin: 12.5px 0;
background-color: #FAFAFA;
border-radius: 4px;
box-shadow: 0 0 1px rgba(0, 0, 0, 0.5);
padding: 0 10px 0 40px;
overflow:hidden;
margin: 12.5px 10px;
background-color: #000;
font: 16px/30px arial;
color: #FFF;
border:none;
position: relative;
}
.like::before {
float: left;
width:30px;
position: absolute;
left: 0;
top: 0;
bottom: 0;
content:'\F011';
background-color: #FF7373;
color: #FFF;
border-right: 1px solid #CCC;
}
此外,请参见。这将需要再次添加顶部和底部边框半径,例如边框左上半径:4px代码>是的,这将工作,但它需要编辑我所有的css,我懒得这样做。但是normalize.css确实适用于meFirefox,它似乎在按钮内的内容周围添加了一点默认空间。您是否尝试过包含normalize.css?这是一个特殊的css文件,试图使浏览器样式一致。如前所述,一种简单的方法是使用normalize.css necolas.github.io/normalize.css/工作正常:)非常感谢