如何针对 Chrome 仅浏览器 CSS
How to target for Chrome only browsers CSS
出于某种原因 Chrome 显示此跨度异常高于 FireFox。
结果我写了下面CSS:
@media screen and (-webkit-min-device-pixel-ratio: 0) {
.selector:not(*:root),
span.justForChrome {
display: block;
margin-top: 23%;
text-align: right;
}
}
以下是HTML:
<li class="nav-item">
<a
class="nav-link"
data-toggle="tooltip"
title="Shopping cart"
id="{{ shoppingCart }}"
routerLink="/shopping-cart"
><span class="justForChrome"
>Shopping Cart<span id="counter">{{ counter }}</span></span
></a
>
</li>
虽然这在 Chrome 中有效,但现在 FireFox 显示跨度过高。如果我在 FireFox 开发人员工具中将 margin-top 设置为 100%,那么它是完美的,但是 Chrome 上的 margin-top 为 100% 会向上发送跨度。
我能做什么?我发誓这在几周前就奏效了。我希望 firefox 甚至不会在 CSS
中找到 span.justForChrome 选择器规则
提前致谢
更新
如果其他人正在经历这个,我想我会展示最终起作用的东西。我不知道是因为我必须编译 Angular 应用程序,它创建了一个新的 "bundled" 样式表,还是因为我将媒体查询放在了 scss 文件的末尾,我不知道,但这是我在 scss 文件末尾使用的媒体查询,它有效:
@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: 0.001dpcm) {
.selector:not(*:root),
span.justForChrome {
display: block;
margin-top: 23%;
text-align: right;
}
}
@-moz-document url-prefix() {
span.justForChrome {
display: block;
margin-top: 94px !important;
text-align: right;
}
}
目前该网站仍处于测试阶段,但这里有:
单词 "Shopping Cart" 和数字都在导航栏的 "baseline" 上。
一如既往,感谢大家的帮助。
我已经在 Microsoft Edge 42.17134.1.0、Firefox 65.0(64 位)和 Chrome 版本 72.0.3626.81(官方构建)(64 位)中测试了以下代码,它可以作为预计在 Chrome.
@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) {
.selector:not(*:root), .chrome {
color: green;
}
}
请注意,.chrome
是一个 class 名称,您可以更改为其他 class 名称。
检查以下 JsFiddle 或片段:
.test {color:red;}
@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) {
.selector:not(*:root), .chrome {
color: green;
}
}
<p class="test chrome">I Should be Green if you're in chrome, Red in all other browsers</p>
出于某种原因 Chrome 显示此跨度异常高于 FireFox。
结果我写了下面CSS:
@media screen and (-webkit-min-device-pixel-ratio: 0) {
.selector:not(*:root),
span.justForChrome {
display: block;
margin-top: 23%;
text-align: right;
}
}
以下是HTML:
<li class="nav-item">
<a
class="nav-link"
data-toggle="tooltip"
title="Shopping cart"
id="{{ shoppingCart }}"
routerLink="/shopping-cart"
><span class="justForChrome"
>Shopping Cart<span id="counter">{{ counter }}</span></span
></a
>
</li>
虽然这在 Chrome 中有效,但现在 FireFox 显示跨度过高。如果我在 FireFox 开发人员工具中将 margin-top 设置为 100%,那么它是完美的,但是 Chrome 上的 margin-top 为 100% 会向上发送跨度。
我能做什么?我发誓这在几周前就奏效了。我希望 firefox 甚至不会在 CSS
中找到 span.justForChrome 选择器规则提前致谢
更新
如果其他人正在经历这个,我想我会展示最终起作用的东西。我不知道是因为我必须编译 Angular 应用程序,它创建了一个新的 "bundled" 样式表,还是因为我将媒体查询放在了 scss 文件的末尾,我不知道,但这是我在 scss 文件末尾使用的媒体查询,它有效:
@media all and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: 0.001dpcm) {
.selector:not(*:root),
span.justForChrome {
display: block;
margin-top: 23%;
text-align: right;
}
}
@-moz-document url-prefix() {
span.justForChrome {
display: block;
margin-top: 94px !important;
text-align: right;
}
}
目前该网站仍处于测试阶段,但这里有:
单词 "Shopping Cart" 和数字都在导航栏的 "baseline" 上。
一如既往,感谢大家的帮助。
我已经在 Microsoft Edge 42.17134.1.0、Firefox 65.0(64 位)和 Chrome 版本 72.0.3626.81(官方构建)(64 位)中测试了以下代码,它可以作为预计在 Chrome.
@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) {
.selector:not(*:root), .chrome {
color: green;
}
}
请注意,.chrome
是一个 class 名称,您可以更改为其他 class 名称。
检查以下 JsFiddle 或片段:
.test {color:red;}
@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) {
.selector:not(*:root), .chrome {
color: green;
}
}
<p class="test chrome">I Should be Green if you're in chrome, Red in all other browsers</p>