GVKun编程网logo

仅使用CSS检查“ @supports”支持的最实用方法是什么?(让css只在当前组件中起作用)

13

本文将分享仅使用CSS检查“@supports”支持的最实用方法是什么?的详细内容,并且还将对让css只在当前组件中起作用进行详尽解释,此外,我们还将为大家带来关于@supportscsscalc函数

本文将分享仅使用CSS检查“ @supports”支持的最实用方法是什么?的详细内容,并且还将对让css只在当前组件中起作用进行详尽解释,此外,我们还将为大家带来关于@supports css calc函数、Android Support Library 是什么?、CSS @supports解析、css – 做这种投影的最佳方法是什么?的相关知识,希望对你有所帮助。

本文目录一览:

仅使用CSS检查“ @supports”支持的最实用方法是什么?(让css只在当前组件中起作用)

仅使用CSS检查“ @supports”支持的最实用方法是什么?(让css只在当前组件中起作用)

在昨天Eric Bidelman在Google I / O演讲中谈到了主题之后@supports,我认为我将开始在Chrome
Canary中使用它。但是,它提出了一个显而易见的问题:

检查浏览器是否@supports仅支持CSS 的最佳方法是什么?


我目前正在通过简单地检查是否display: block受支持来玩。显然,此方法有效,但是我不确定这是否是最实用的方法:

body { background:#fff; font-family:Arial; }body:after { content:''Ek! Your browser does not support @supports''; }@supports (display:block) {    body { background:#5ae; }    body:after { color:#fff; content:''Your browser supports @supports, yay!''; }}

这些尝试 无效 (至少在Chrome Canary中):

@supports (@supports) { ... }@supports () { ... }@supports { ... }

答案1

小编典典

@supports目前仅测试属性/值组合,仅此而已。您的其他选项无效,因为它们都不有效(包括最后一个选项,其中仅带有at-
关键字,后跟大括号!)。属性/值对的要求由的语法决定@supports,您可以在spec中找到它。

只需测试一个已知的属性/值对,即可确保无论@supports实现与否,该属性/值对都能在所有用户代理中正常工作。这种(某种)消除了您会遇到实现@supports但不实现属性/值组合的用户代理的可能性,@supports而只关注其支持。

您给出的示例display: block就足够了。您使用级联的检查,如果浏览器
实现@supports由内覆盖声明@supports为浏览器规则 支持它也是可以接受的(是唯一明显的方法也无妨)。

@supports css calc函数

@supports css calc函数

有没有办法在 @supports(propertyName,value)中使用 calc function?我的意思是< supports_condition>仅适用于calc函数.

@supports ( <supports_condition> ) {
    .col-3 {
    width: calc(25% - 20px/4)
    }
    .col-4 {
        width: calc(33.3333333% - 20px/3)
    }
    .col-6 {
        width: calc(50% - 20px/2)
    }
}

解决方法

@supports的支持远比 calc()更受限制,因为后者是在几年前推出的(最值得注意的是,IE根本不支持@supports,而它支持calc()从版本9开始几乎恰好4年前).如果你要一起使用它们,那么每个支持@supports的浏览器都会匹配该规则,任何支持calc()但不支持@supports的浏览器都会忽略该规则.换句话说,如果你要一起使用它们,你就会减少可以使用calc()函数的浏览器数量,防止它们中的一些人看到你的声明.

幸运的是,由于calc()是一个值,代替一个尚未存在的@supports作者可以通过提供不支持calc()的回退声明来简单地利用级联:

width: 95px;
width: calc(25% - 20px/4);

Android Support Library 是什么?

Android Support Library 是什么?

这两天刚开始学习安卓,这里记录下这两天遇到的一些小问题。

首先先贴一个安卓 API 等级。

官方地址:https://developer.android.com/about/dashboards/ (可能要FQ)

上图,应该不用我解释了,相信就算是萌新也懂。

在没有接触安卓之前,听说安卓开发需要兼容很多设备和不同版本的系统,今天呢,不同设备咱先不谈(因为我还没学到)

我就在这里对这两天的只是进行一个小结,至于标题为什么是《Android Support Library 是什么?》,因为我在学习的过程中,一直对这个支持库不太理解,我相信很多萌新也跟我一个状态,而网上对这个东西讲解有点分散,又不容易理解,我这里尽量用一些大白话概括一下,希望能够帮助萌新入门。


我们知道安卓版本是有很多的,每个版本都会有一个开发版本号,也就是上图中的 API 对应的数字,现如今 API 等级已经更新到了 API 29,对应的是 Android 9 系统。

在进行安卓开发的时候,我们通常需要考虑,应该选择什么样的 API 级别进行开发?

谷歌为此也给出了解决方案,我们在开发过程中可以给出三个设置项:

  • minSdkVersion
  • targetSdkVersion
  • compileSdkVersion

萌新在这里就会懵逼了,这三个东西是个啥,我该如何设置呢?

我们先来说一下minSdkVersion,这个对应的是最小 API 级别,意思就是你需要兼容的最小 API 版本,这主要是根据用户设备占有率来进行选择的,上面图中右侧便是市场占有率了。

这里会选择 19,因为 API 19 对应的是 Android 4.4 系统,我相信都2019年了,用 4.4 以下系统的人应该很少了吧。

接着看targetSdkVersion,意思就是目标SDK版本,就是说你主要是使用哪个版本进行开发的,并且这个版本你是经过全面测试的,比如这里如果选择了 API 24,也就是 Android 7 系统,在你进行开发的过程中,你主要都是使用的该级别的 API 进行应用开发,而且开发完成后你经过了严格测试,这时你就又会问了,现在安卓都发布到9了,我现在还用7,这不落伍了吗?

对于上面的问题,就需要我们compileSdkVersion出场的时候了,字面意思也很好理解,编译版本,也就是进行最终编译时需要的版本。

对于开发人员来说,例如在开发过程中,安卓系统只发布到了 API 24,我现在选择了 API 24 进行开发,过了一两年之后 API 发布到了 28,并且有一些 API 28 中的功能 API 24 并不支持,如果我现在想使用 API 28 中的功能,该怎么办?

这里就是需要Android Support Library的时候了,安卓的支持库目前主要有三个,分别是 V4、V7、V13,我们这里主要关注前面两个,这里不探讨具体的内容,只说明一下这个支持库是个什么东西?什么时候需要用到它?

当我们targetSdkVersion为 24 时,需要使用 API 28 的新增功能时,这也就是向后兼容,使用低版本的 API 兼容高版本的 API,而支持库就是这个作用,它会跟着每个新发布的 API 级别同步发布,所以这里支持库我们选择与 compileSdkVersion 一样的版本即可。

有些人可能会有疑问,我如果直接使用了支持库,是不是代表不用升级系统了?其实不然,支持库只是让低版本的API可以使用高版本的API时不会出错,并且可以尝试新版本的功能,至于和新系统完全一样,那是不可能滴。

minSdkVersion <= targetSdkVersion <= compileSdkVersion

而现在基本上不需要设置 compileSdkVersion 版本了,因为系统会默认使用最新的版本。

安卓的API级别也是向前兼容的,官方文档给出最新的API是直接兼容以前的API的,只会在新API中作新增,很少进行更改,即便是更改也是一些关于性能方面的考虑,完全不用担心。

说到这里还要提一下 Build Tools Version,这个我们使用官方最新的版本即可,这个工具的版本必须大于等于 compileSdkVersion 版本,否则编译会报错。

下面是官方关于支持库介绍的地址:

https://developer.android.com/topic/libraries/support-library/features?utm_campaign=adp_series_sdkversion_010616&utm_source=medium&utm_medium=blog

CSS @supports解析

CSS @supports解析

@supports()会检测括号中的声明,在浏览器支持该声明的情况下执行花括号中的代码。

基本属性检测

@supports (display: flex) {
	div { display: flex; }
}

not关键字

@supports not (display: flex) {
	div { float: left; } 
}

组合条件检测

@supports (display: flex) and (-webkit-appearance: caret) {

}

也可以用括号将多个条件进行嵌套关联

/* and and or */
@supports ((display: -webkit-flex) or
          (display: -moz-flex) or
          (display: flex)) and (-webkit-appearance: caret) {

    /* use styles here */
}

css – 做这种投影的最佳方法是什么?

css – 做这种投影的最佳方法是什么?

我有一个网站将有一列图像和div(两者的混合),总是相同的大小.

在所有这些我想添加某种投影(如此处所示):

我曾经使用CSS投影,但我从来没有在CSS中看到过这样的人.这可以在CSS中完成吗?假设它不能,那么我猜我只会使用阴影切片作为图形,可能是背景.如果这是唯一的路线,我该如何将其应用于每个图像或div?

现在我正在做的是在每个图像或div下面放一个div:

<div>&nbsp;</div>

…并在CSS中执行此操作:
.rightimgdropshadow

{
    background-image: url(../images/site-structure/right-col-image-shadow.jpg);
    background-repeat: no-repeat;
    background-position: center top;
    width 100%
    height: 20px;
}

有一个更好的方法吗?谢谢!

解决方法

如果您更喜欢使用CSS来创建该类型的阴影,则可以将CSS3用作 seen here!

CSS

/* Lifted corners */

.lifted {
    -moz-border-radius:4px; 
         border-radius:4px;
}

.lifted:before,.lifted:after { 
    bottom:15px;
    left:10px;
    width:50%;
    height:20%;
    max-width:300px;
    -webkit-Box-shadow:0 15px 10px rgba(0,0.7);   
       -moz-Box-shadow:0 15px 10px rgba(0,0.7);
            Box-shadow:0 15px 10px rgba(0,0.7);
    -webkit-transform:rotate(-3deg);    
       -moz-transform:rotate(-3deg);   
        -ms-transform:rotate(-3deg);   
         -o-transform:rotate(-3deg);
            transform:rotate(-3deg);
}

.lifted:after {
    right:10px; 
    left:auto;
    -webkit-transform:rotate(3deg);   
       -moz-transform:rotate(3deg);  
        -ms-transform:rotate(3deg);  
         -o-transform:rotate(3deg);
            transform:rotate(3deg);
}

Made a Fiddle!

今天关于仅使用CSS检查“ @supports”支持的最实用方法是什么?让css只在当前组件中起作用的分享就到这里,希望大家有所收获,若想了解更多关于@supports css calc函数、Android Support Library 是什么?、CSS @supports解析、css – 做这种投影的最佳方法是什么?等相关知识,可以在本站进行查询。

本文标签: