美文网首页
CSS:@规则 At-rules

CSS:@规则 At-rules

作者: 春暖花已开 | 来源:发表于2022-03-19 00:22 被阅读0次
    @规则 At-rules
    1、@charset

    用于指定样式表中使用的字符编码。

    要点:

    • 必须是样式表中的第一个元素,前面不能有任何字符;
    • 必须是双引号,紧跟一个空格字符(U+0020),并立即以分号结束;
    • 字符编码必须是IANA-registry定义的。

    语法

    @charset "UTF-8";
    @charset "iso-8859-15";
    

    正式的语法

    @charset "<charset>";
    

    示例: 有效和无效的字符集声明

    @charset "UTF-8";       /* Set the encoding of the style sheet to Unicode UTF-8 */
    @charset 'iso-8859-15'; /* Invalid, wrong quoting style used */
    @charset  "UTF-8";      /* Invalid, more than one space */
     @charset "UTF-8";      /* Invalid, there is a character (a space) before the at-rule */
    @charset UTF-8;         /* Invalid, the charset is not a CSS <string> */
    
    

    2、@font-face

    用于指定了用来显示文本的自定义字体;字体既可以从远程服务器加载,也可以从用户自己的计算机上安装的本地字体加载。

    语法:

    @font-face {
      font-family: "Open Sans";
      src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"),
           url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
    }
    

    常用到的为:

    • font-family:指定字体族
    • font-style
    • font-variant
    • font-weight
    • src: 指定包含字体数据的资源。可以是远程字体文件位置的URL,也可以是用户计算机上字体的名称。

    3、 @import

    用于从其他样式表导入样式。

    语法:

    @import url; //表示要导入的资源的位置。路径可以是绝对的,也可以是相对的。
    

    示例: 导入css

    @import 'custom.css';
    @import url("chrome://communicator/skin/");
    

    4、@keyframes

    @keyframes 通过在动画序列中定义关键帧(或路径点)的样式,来控制CSS动画序列中的中间步骤。这比 转场 transition 更能控制动画序列的中间步骤。

    语法:

    @keyframes slidein {
      from {
        transform: translateX(0%);
      }
    
      to {
        transform: translateX(100%);
      }
    }
    

    值:

    标识关键帧列表的名称,必须与CSS语法中的标识符匹配。

    from:表示起始偏移量为 0%

    to:表示一个100%的结束偏移量。

    百分比:动画序列中指定关键帧应该出现的 时间百分比

    说明:

    1、如果关键帧规则没有指定动画的开始或结束状态(即 0% / from100% / to),浏览器将使用元素的现有样式作为开始/结束状态。

    2、在关键帧规则中不能动画的属性会被忽略,但受支持的属性仍然会被动画化。

    3、如果给定的 animation-name 存在多个关键帧集,则使用解析器遇到的最后一个。

    4、如果一个给定的动画时间偏移重复,则 @keyframes 规则中的所有关键帧的百分比都被用于该帧。如:

    @keyframes ani-height-color {
      50% {
        height: 200px;
      }
    
      50% {
        background: green;
      }
    }
    

    5、用 !important 限定的关键帧中的声明将被忽略。


    5、@media

    @media 可以用于基于一个或多个媒体查询的结果应用样式表的一部分。使用它,可以指定一个媒体查询和一个CSS块,当且仅当媒体查询与正在使用内容的设备匹配时应用于文档。

    语法:

    /* 在代码的顶层 */
    @media screen and (min-width: 900px) {
      article {
        padding: 1rem 3rem;
      }
    }
    
    /* 嵌套在另一个条件规则中 */
    @supports (display: flex) {
      @media screen and (min-width: 900px) {
        article {
          display: flex;
        }
      }
    }
    

    媒体类型:媒体类型描述了设备的一般类别。除非使用not或only逻辑操作符,否则媒体类型是可选的,并暗示了all类型。

    • all:适用于所有设备;
    • print:用于在屏幕上以打印预览模式查看已分页的材料和文件;
    • screen:主要用于屏幕。

    媒体特性:媒体特性描述用户代理、输出设备或环境的特定特性。媒体特性表达式测试它们的存在或值,并且完全是可选的。每个媒体特性表达式必须用括号括起来

    • height:视口的高度;
    • width:视口的宽度,包括滚动条的宽度;
    • orientation:朝向:竖屏或横屏
    • resolution:分辨率。

    逻辑运算符

    • not
    • and :将多个媒体特性组合成单个媒体查询,要求每个链接特性返回true才能使查询为true。
    • only :仅在整个查询匹配时应用样式。
    • , :用于将多个媒体查询组合成一个规则。逗号分隔列表中的每个查询都与其他查询分开处理。因此,如果列表中的任何一个查询为真,整个媒体语句返回真。换句话说,列表的行为类似于 逻辑或 操作符。

    示例:

    @media print {
      body { font-size: 10pt; }
    }
    
    @media screen {
      body { font-size: 13px; }
    }
    
    @media screen, print {
      body { line-height: 1.2; }
    }
    
    @media only screen
      and (min-width: 320px)
      and (max-width: 480px)
      and (resolution: 150dpi) {
        body { line-height: 1.4; }
    }
    

    参考

    MDN At-rules

    相关文章

      网友评论

          本文标题:CSS:@规则 At-rules

          本文链接:https://www.haomeiwen.com/subject/lsqgdrtx.html