首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Chromium和Firefox之间的边距不一致

Chromium和Firefox之间的边距不一致
EN

Stack Overflow用户
提问于 2019-01-31 15:55:17
回答 1查看 38关注 0票数 0

我正在尝试为一个可以有可变偏移量的按钮制作一个工具提示。我认为我已经找到了一个很好的解决方案,但是当在另一个浏览器中测试时,发生了一些奇怪的事情。下面的代码(and in this fiddle)将在Chromium 72.0.3626.81和Firefox66.0b3(都在Arch Linux上)之间呈现不同的效果。在Chromium上,它会按预期显示,但在Firefox上,工具提示不会正确偏移。在Firefox上,实际工具提示的页边距比它应该的边距少了一半。

为什么会发生这种情况,以及如何在不同浏览器之间保持预期行为的一致性?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:root {
    font-size: 62.5%;
    font-family: 'sans-serif';
    --tooltip-offset: 50px;
}

.container {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.link {
    border-radius: 4px;
    height: 4rem;
    font-size: 1.6rem;
    border: 1px solid hsl(215, 36%, 78%);
    padding: 0 1.5rem;
    justify-content: center;
    align-items: center;
    display: inline-flex;
}

.tooltip {
    font-size: 1.4rem;
    z-index: 2;
    width: 225px;
    position: absolute;
    text-align: center;
    padding: 0.7rem 3rem;
    border-radius: 4px;
    pointer-events: none;
    top: 100%;
    margin-top: 12px;
    border: 1px solid black;
    margin-left: calc(0px - var(--tooltip-offset));
}

.tooltip:before {
    z-index: 1;
    content: ' ';
    position: absolute;
    bottom: 100%;
    border-color: transparent transparent black transparent;
    margin-left: var(--tooltip-offset);
    left: calc(50% - 12px);
    border-width: 12px;
    border-style: solid;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet"/>
<div class="container">
    <a class="link" href="example.com">
        Go to example.com
    </a>
    <span class="tooltip">
        Click here to go to example.com
    </span>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 16:08:23

我不确定Firefox和Chrome是否会以不同的方式处理负边距,所以更可靠的方法可能是使用transform:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:root {
    font-size: 62.5%;
    font-family: 'sans-serif';
    --tooltip-offset: 50px;
}

.container {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.link {
    border-radius: 4px;
    height: 4rem;
    font-size: 1.6rem;
    border: 1px solid hsl(215, 36%, 78%);
    padding: 0 1.5rem;
    justify-content: center;
    align-items: center;
    display: inline-flex;
}

.tooltip {
    font-size: 1.4rem;
    z-index: 2;
    width: 225px;
    position: absolute;
    text-align: center;
    padding: 0.7rem 3rem;
    border-radius: 4px;
    pointer-events: none;
    top: 100%;
    margin-top: 12px;
    border: 1px solid black;
    transform: translateX(calc(0px - var(--tooltip-offset)));
}

.tooltip:before {
    z-index: 1;
    content: ' ';
    position: absolute;
    bottom: 100%;
    border-color: transparent transparent black transparent;
    margin-left: var(--tooltip-offset);
    left: calc(50% - 12px);
    border-width: 12px;
    border-style: solid;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet"/>
<div class="container">
    <a class="link" href="example.com">
        Go to example.com
    </a>
    <span class="tooltip">
        Click here to go to example.com
    </span>
</div>

在我这一端,它看起来在两个浏览器上都能正常工作!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54464451

复制
相关文章
CSS——边距
边距包括外边距(Margin)属性和内边距(Padding)属性,外边距属性定义了元素间的间隔,内边距属性定义了元素边框与内容区域之间的空白区域。
Html5知典
2019/11/26
1.3K0
CSS_边距填充
填充:指向一个元素的内部,增加空间,(内边距),与外边距不同,填充会改变元素的大小。随着填充的增加,元素会被撑大。
bye
2020/11/24
1.1K0
CSS_边距填充
边看chromium的代码边想骂人……
这几天在看chromium for andrid的代码,边看边想骂,谷歌这帮人。。
龙泉寺扫地僧
2019/02/20
8210
清空默认边距的完整代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>54-清空默认边距</title> <style> /* *{ margin: 0; padding: 0; } */ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,c
贵哥的编程之路
2020/10/28
9510
css负边距之详解
自从1998年CSS2作为推荐以来,表格的使用渐渐退去,成为历史。正因为此,从那以后CSS布局成为了优雅代码的代名词。 对于所有设计师使用过的CSS概念,负边距作为最少讨论到的定位方式要记上一功。这就像是在线纹身-每个人都会做,但是没有人会谈论它。(It’s like an online taboo—everyone’s doing it, yet no one wants to talk about it.) 为其正名 我们都使用过CSS得外边距,但是当谈到负边距的时候,我们好像往差的方向发展啦。在网页设
前朝楚水
2018/04/03
1.9K0
css负边距之详解
R|绘图边距及布局
简单介绍一下如何调整绘图区域及边距区域,如何将多个图形绘制在一张图中,并根据图形的大小及特性调整一下图形分布。
生信补给站
2020/08/06
2.4K0
css负边距之详解
自从1998年CSS2作为推荐以来,表格的使用渐渐退去,成为历史。正因为此,从那以后CSS布局成为了优雅代码的代名词。 对于所有设计师使用过的CSS概念,负边距作为最少讨论到的定位方式要记上一功。这就像是在线纹身-每个人都会做,但是没有人会谈论它。(It’s like an online taboo—everyone’s doing it, yet no one wants to talk about it.) 为其正名 我们都使用过CSS得外边距,但是当谈到负边距的时候,我们好像往差的方向发展啦。在网页设
用户1667431
2018/04/18
2.2K0
css负边距之详解
[Java小工匠]CSS盒子模型-边距合并
  CSS外边距合并,只有上外边距和下外边距才会触发外边距合并,左外边距和右外边距不会。
Java小工匠
2018/08/10
1.1K0
[Java小工匠]CSS盒子模型-边距合并
CSS盒模型及边距问题
盒模型是CSS的基石之一,页面的每一个元素都被看作一个矩形框,分别由外边距,边框,内边距,内容组成,
菜的黑人牙膏
2019/01/21
9540
【CSS】盒子模型外边距 ④ ( 元素默认的外边距 | 清除元素默认的内外边距 | 行内元素边距设置 )
向 HTML 的 <body> 标签中 , 添加元素 , 并 不是紧贴 左侧 和 顶部 , 而是有一个 默认的间距 , 如下图所示 :
韩曙亮
2023/03/30
2.5K0
【CSS】盒子模型外边距 ④ ( 元素默认的外边距 | 清除元素默认的内外边距 | 行内元素边距设置 )
【说站】css边距重叠是什么
css边距重叠是什么 1、边界重叠是指两个或两个以上盒子的相邻边界重合在一起,构成单一边界。 可以相邻也可以嵌套,其中没有非空内容、补白、边框。        .neighbor{ height: 100px; background: red; } .father{ background: #f436365e; } .child{ height: 100px; margin-top: 10px; background: #00800047; } <div> this is neighbor </div
很酷的站长
2022/11/24
9600
&nbsp在IE和FireFox中显示不一致
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/38704045
DannyHoo
2018/09/13
1.3K0
&nbsp在IE和FireFox中显示不一致
学位论文如何设置最规范的页边距和装订线距离?
1、点击[布局] 2、点击[页边距] 3、点击[自定义边距] 4、点击[上] 5、点击[左] 6、点击[装订线] 7、点击[确定]
裴来凡
2022/05/28
1.7K0
学位论文如何设置最规范的页边距和装订线距离?
关于元素间的边距重叠问题与BFC
BFC(Block Formatting Context),即块级格式化上下文,创建了 BFC 的元素是一个独立的容器,里面无论如何布局都不会影响到外面的元素
Leophen
2019/08/23
1.9K0
关于元素间的边距重叠问题与BFC
外边距_外边距和组件宽度
margin-top 设置元素的上外边距
全栈程序员站长
2022/09/20
6540
Marior去除边距和迭代内容矫正用于自然文档矫正
本文简要介绍了论文“ Marior: Margin Removal and Iterative Content Rectification for Document Dewarping in the Wild ”的相关工作。照相机捕捉到的文档图像通常会出现透视和几何变形。考虑到视觉美感较差和OCR系统性能下降,对其进行纠正具有重要的价值。最近的基于学习的方法集中关注于精确裁剪的文档图像。然而,这可能不足以克服实际挑战,包括具有大边缘区域或没有边缘区域的文档图像。由于这种不切实际,用户在遇到大型边缘区域时难以精确地裁剪文档。同时,无边缘的变形图像仍然是一个难以解决的问题。据作者所知,目前还没有完整有效的pipeline来纠正文档图像。为了解决这个问题,作者提出了一种新的方法,称为Marior(边缘去除和迭代内容修正)。Marior采用渐进策略,以从粗到细的方式迭代地提高去变形质量和可读性。具体来说,作者将pipeline划分为两个模块:边缘去除模块(MRM)和迭代内容校正模块(ICRM)。首先,作者预测输入图像的分割掩膜去除边缘,从而得到初步结果。然后,作者通过产生密集的位移流来进一步细化图像,以实现内容感知的校正。作者自适应地确定细化迭代的次数。实验证明了作者的方法在公共基准上的最新性能。
合合技术团队
2023/04/28
6600
Marior去除边距和迭代内容矫正用于自然文档矫正
HarmonyOS实战—组件的外边距和内边距
边距 组件的位置属性,分为:内边距 和 外边距 [在这里插入图片描述] 1. 外边距 表示组件跟外部其他组件的边距 [在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] 案例: 如果只设置 margin ,就会把上下左右都给设置了,这是一个整体的设置。 ohos:margin="10vp" 设置第一个文本组件 ohos:top_margin="10vp" [在这里插入图片描述] 给下面的文本框设置:ohos:top_margin="20vp" [在这里插入图片描述] 外边距小节: 组件边框
兮动人
2021/09/03
1.7K0
webkit中BFC元素临近浮动元素时的边距bug
一直以来我们都很熟悉IE的“浮动边距加倍”的bug,并且绝大多数重构人员都已经很擅长在需要浮动时就直接绕过他。其实以webkit为核心的浏览器,包括但不限于Safari和Chrome,也有一个关于浮动和边距的bug,同样会造成布局错误。我在最近三个月的前一个月连续遭遇了两次这个bug,后两个月虽然避免了再次出现,但是直到现在才把这个bug彻底弄清楚。 触发这个bug的条件是: 在一个非浮动元素上应用overflow,且其值不为visible(这将形成一个Block Formatting Context元素)
小李刀刀
2018/03/06
1.7K0
webkit中BFC元素临近浮动元素时的边距bug
Chrome和Chromium的区别
今天写的这篇文章是我的一个朋友在面试的时候遇到的问题,今天我特地来讲解一下chrome和chromium的区别。 首先chrome虽然是我们用的最多的浏览器,但是它并不是来源的览器。如果我们想在chrome的功能上来开发自己的浏览器的话,我们只能使用chromiun,因为他是开源的。chrome和chromium都是谷歌开发它们有区别呢?下面我们就从界面、开/闭源、功能、性能、使用条款和更新方面来讲解一下。
喵叔
2021/12/13
1.6K0
点击加载更多

相似问题

不一致的边距/填充文本与Firefox和Chrome之间的边框

12

负边距、浮动和Firefox

11

firefox之间的边距-顶部与Chrome不同

20

Firefox和Chrome的边距大小不同

10

“边距,预测”和“边距,按均值预测”之间的差异

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文