是否有针对safari而非chrome的css攻击?
我试图为safari而不是chrome找到一个css黑客,我知道这两个浏览器都是webkit浏览器,但我在chrome和safari中的div对齐方面有问题,每个浏览器的显示方式都不同 我一直在尝试使用它,但它也会影响chrome是否有针对safari而非chrome的css攻击?,css,safari,Css,Safari,我试图为safari而不是chrome找到一个css黑客,我知道这两个浏览器都是webkit浏览器,但我在chrome和safari中的div对齐方面有问题,每个浏览器的显示方式都不同 我一直在尝试使用它,但它也会影响chrome @media screen and (-webkit-min-device-pixel-ratio:0) { #safari { display: block; } } 有人知道另一个只适用于safari的吗?有一种方法可以从Chrome中过滤safari
@media screen and (-webkit-min-device-pixel-ratio:0) {
#safari { display: block; }
}
有人知道另一个只适用于safari的吗?有一种方法可以从Chrome中过滤safari 5+:
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* Safari and Chrome */
.myClass {
color:red;
}
/* Safari only override */
::i-block-chrome,.myClass {
color:blue;
}
}
只有萨拉里
.yourClass:not(:root:root){
/* ^_^ */
}
对于那些想要为Safari 7.0及以下版本(而不是7.1及以上版本)实施黑客攻击的人,请使用:
- 为CATALINA&SAFARI 13更新(2020年初更新)*
/* Safari 10.1+ */
@media not all and (min-resolution:.001dpcm) { @media {
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}}
如果SCSS或其他工具集在嵌套媒体查询中遇到问题,请尝试此方法:
/* Safari 10.1+ (alternate method) */
@media not all and (min-resolution:.001dpcm)
{ @supports (-webkit-appearance:none) {
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}}
下一个版本适用于6.1-10.0,但不适用于10.1(2017年3月底更新)
这个黑客是我在几个月的测试和实验中结合其他多种黑客创建的
注:如上所述,双媒体查询并非偶然——它排除了许多无法处理媒体查询嵌套的旧浏览器其中一个“and”之后缺少的空格也很重要。这毕竟是一个黑客。。。也是目前唯一一款适用于6.1和所有更新版本的Safari。还要注意,正如下面的评论所列,黑客是非标准css,必须在过滤后应用。诸如SASS引擎之类的过滤器将重写/撤消或完全删除它
如上所述,请检查我的测试页面,查看它的工作状态(无需修改!)
代码如下:
/* Safari 6.1-10.0 (not 10.1) */
@media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0)
{ @media {
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}}
有关更多“特定版本”的Safari CSS,请继续阅读下面的内容
/* Safari 11+ */
@media not all and (min-resolution:.001dpcm)
{ @supports (-webkit-appearance:none) and (stroke-color:transparent) {
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}}
一个用于Safari 11.0:
/* Safari 11.0 (not 11.1) */
html >> * .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
一个用于Safari 10.0:
/* Safari 10.0 (not 10.1) */
_::-webkit-:host:not(:root:root), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
10.1(仅限)的轻微修改工程:
Safari 10.0(非iOS设备):
Safari 9 CSS黑客:
Safari 9.0及更高版本的一个简单支持功能查询黑客:
@supports (-webkit-hyphens:none)
{
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
_:not(a,b), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
/* Safari 9+ */
_:default:not(:root:root), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
Safari 9.0及更高版本的简单下划线攻击:
@supports (-webkit-hyphens:none)
{
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
_:not(a,b), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
/* Safari 9+ */
_:default:not(:root:root), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
另一款适用于Safari 9.0及更高版本:
@supports (-webkit-hyphens:none)
{
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
_:not(a,b), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
/* Safari 9+ */
_:default:not(:root:root), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
还有另一个支持功能查询:
/* Safari 9+ */
@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill) {
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
一个用于Safari 9.0-10.0:
/* Safari 9.0-10.0 (not 10.1) */
_::-webkit-:not(:root:root), .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
Safari 9现在包括功能检测,所以我们现在可以使用它
/* Safari 9 */
@supports (overflow:-webkit-marquee) and (justify-content:inherit)
{
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
现在只针对iOS设备。如上所述,由于iOS上的Chrome源于Safari,因此它当然也适用于Safari
/* Safari 9.0 (iOS Only) */
@supports (-webkit-text-size-adjust:none) and (not (-ms-ime-align:auto))
and (not (-moz-appearance:none))
{
.safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
一个用于Safari 9.0+但不用于iO
/* Safari 6.1-7.0 */
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-color-index:0)
{
.safari_only {(;
color:#0000FF;
background-color:#CCCCCC;
);}
}
/* Safari 6.1-10.0 (not 10.1) (non-iOS) */
@media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0)
{ @media {
_:-webkit-full-screen, .safari_only {
color:#0000FF;
background-color:#CCCCCC;
}
}}
<div class="safari_only">This text will be Blue in Safari</div>
/* Chrome 29+ */
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm)
{
.chrome_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
/* Chrome 29+ */
@supports (-webkit-appearance:none) and (not (overflow:-webkit-marquee))
and (not (-ms-ime-align:auto)) and (not (-moz-appearance:none))
{
.chrome_only {
color:#0000FF;
background-color:#CCCCCC;
}
}
/* Chrome 28+, Now Also Safari 9+, Firefox, and Microsoft Edge */
@supports (-webkit-appearance:none)
{
.chrome_and_safari {
color:#0000FF;
background-color:#CCCCCC;
}
}
/* Chrome 22-28 */
@media screen and(-webkit-min-device-pixel-ratio:0)
{
.chrome_only {-chrome-:only(;
color:#0000FF;
background-color:#CCCCCC;
);}
}
NOTE: If you are new, change class name but leave this the same-> {-chrome-:only(;
<div class="chrome_only">This text will be Blue in Chrome</div>
@media only screen and (-webkit-min-device-pixel-ratio: 1) {
::i-block-chrome, .yourcssrule {
your css property
}
}
@media \\0 screen {}
a { color: blue; }
html.regions a { color: green; }
@media screen and (max-width: 767px) {
_::-webkit-full-page-media, _:future, :root .safari_only {
padding: 10px; //or any property you need
}
}
<div class='safari_only'> This div will have a padding:10px in a mobile with Safari </div>
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
if (isSafari) {
$('head').append('<link rel="stylesheet" type="text/css" href="path/to/safari.css">')
};
@media screen and (-webkit-min-device-pixel-ratio:0)
{
::i-block-chrome, Class Name {your styles}
}
@media(max-width: 1920px){
@media not all and (min-resolution:.001dpcm) {
.photo_row2 {
margin-left: 5.5% !important;
}
}
}
@media(max-width: 1680px){
@media not all and (min-resolution:.001dpcm) {
.photo_row2 {
margin-left: 15% !important;
}
}
}
@media(max-width: 1600px){
@media not all and (min-resolution:.001dpcm) {
.photo_row2 {
margin-left: 18% !important;
}
}
}
@media (max-width: 1440px) {
@media not all and (min-resolution:.001dpcm) {
.photo_row2 {
margin-left: 24.5% !important;
}
}
}
@media (max-width: 1024px) {
@media not all and (min-resolution:.001dpcm) {
@media {
.photo_row2 {
margin-left: -11% !important;
}
}
}
@media not all and (min-resolution:.001dpcm) {
@media {
/* your code for Safari Desktop & Mobile */
body {
background-color: red;
color: blue;
}
/* end */
}
}
@media only screen and (-webkit-min-device-pixel-ratio: 1) {
::i-block-chrome, .myClass {
height: 1070px !important;
}
}
if (navigator.vendor.startsWith('Apple'))
document.documentElement.classList.add('on-apple');
.on-apple .my-class{
...
}
@supports (-webkit-overflow-scrolling: touch) {
/* CSS specific to iOS devices */
}
@supports (-webkit-backdrop-filter: blur(1px)) {
.safari-only {
background-color: rgb(76,80,84);
}
}