CSS @规则

最近在看极客时间winter大神的重学前端系列,遇到了许多不常用但是很重要的知识点.感觉视野得到了极大的开阔(打个广告,哈哈).

其中css @规则令人印象深刻。简单的做下笔记:

@namespace

这个css规则还是蛮重要的,MDN有相关介绍--https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace

@namespace url(http://www.w3.org/1999/xhtml);
@namespace svg url(http://www.w3.org/2000/svg);

/* 匹配所有的XHTML <a> 元素, 因为 XHTML 是默认无前缀命名空间 */
a {}

/* 匹配所有的 SVG <a> 元素 */
svg|a {}

/* 匹配 XHTML 和 SVG <a> 元素 */
*|a {}

  

说的简单点就是:为了分别给不同命名空间下的相同元素可以分别设置样式.

@media

想必是好多响应式设计都是借助于这一规则。

它可以针对不同媒体使用响应式,因为我么多说媒体是手机、pad、computer.

它还有以下媒体类型

链接地址为如下:

https://www.runoob.com/cssref/css3-pr-mediaquery.html

 

@ support

检测是否支持指定的CSS属性.

例如:

  @supports (display:flex) {

    section { display: flex }
    ...
    }

如果浏览器支持“display:flex”属性,那么在“section”元素上就运用“display:flex”样式.

@charset

@charset 用于提示 CSS 文件使用的字符编码方式,它如果被使用,必须出现在最前面。这个规则只在给出语法解析阶段前使用,并不影响页面上的展示效果。

@import 

@import 用于引入一个 CSS 文件,除了 @charset 规则不会被引入,@import 可以引入另一个文件的全部内容。

@import "mystyle.css";
@import url("mystyle.css")

通常此指令放在css文件其实位置;

@ counter-style

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style type="text/css">
 @counter-style circled-alpha {
  system: fixed;
  symbols: Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ;
  suffix: " ";
}
ul {
   list-style: circled-alpha;
}
    </style>
</head>
<body>
    <ul class="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>

    </ul>
</body>
</html>

代码效果如下:

测了下谷歌、IE、360、火狐浏览器,只有火狐支持此规则。

@ key-frames

keyframes 产生一种数据,用于定义动画关键帧。

@ fontface

fontface 用于定义一种字体,icon font 技术就是利用这个特性来实现的。

@font-face {
  font-family: Gentium;
  src: url(http://example.com/fonts/Gentium.woff);
}

p { font-family: Gentium, serif; }

 

原文地址:https://www.cnblogs.com/cby-love/p/11108806.html