文档手册

媒体查询,常量,混合 @media, @const and @mixin

2024-07-18 17:22:30

@media、@const和@mixin

 @media规则

@media at-rule 可以放置在 CSS 文件的顶层,在 at-rule @set内部,并嵌套在任何其他条件组 at-rule 中。

@media <condition> {
 ... style rules ...
}

<condition> Sciter 中的声明可以接受

  1. 单个媒体变量名称,例如 @media print {...}

  2. 组合多个条件 @media print or handheld {...} 的表达式

 @media查询

谨慎

在某种程度上,Sciter 中的媒体查询格式与 W3C 媒体查询不兼容。

 此 W3C 媒体查询

@media screen and (max-width: 600px) {
 ...
}

 在 Sciter 中是这样的

@media screen and (width < 600px) {
 ...
}

 语法:

@media  { ......规则 }

 <expr> 哪里是

  1. name - 内置媒体变量或应用程序定义的媒体变量的名称;

  2. and  - 两个布尔表达式的逻辑 AND;

  3. or  - 两个布尔表达式的逻辑 OR;

  4. <expr> < <expr>

  5. <expr> > <expr>

  6. <expr> == <expr>

  7. <expr> <= <expr>

  8. <expr> >= <expr>

     比较表达式

  9. (  ) - 可以对表达式进行分组以避免歧义。

内置媒体变量

 名字 描述
width 窗口宽度
height 窗口高度
min-width最小宽度(如果在 window-min-size else 中定义 - 零)
min-height最小高度(如果在 window-min-size else 中定义 - 零)
max-width最大宽度(如果在 window-max-size else 中定义 - 桌面宽度)
max-height最大高度(如果在 window-max-size else - 桌面高度中定义)
aspect-ratio窗户的宽高比
monitors连接的显示器/显示器数量
device-width 主显示宽度
device-height 主显示高度
device-aspect-ratio设备宽度/设备高度
orientation-portrait= 设备高度 > 设备宽度
orientation-landscape= 设备高度 < 设备宽度
colors每像素位数
resolution每英寸点数
resolution-dpcm每厘米的点数
physical-resolution(MacOS) 后端每英寸点数
high-contrast如果操作系统现在使用高对比度主题,则为 true
has-pen如果本机有笔设备,则为 true
has-mouse如果本机有鼠标设备,则为 true
has-mouse-wheel如果机器在鼠标设备上有滚轮,则为 true
has-horizontal-mouse-wheel如果机器在鼠标设备上有水平滚轮,则为 true
has-touch-screen如果本机有触摸屏,则为 true
has-pen-screen如果本机有笔屏,则为 true
has-multi-touch如果本机具有多点触摸屏,则为 true
screen-reader如果屏幕阅读器正在运行,则为 true
slow-machine如果操作系统报告“慢速计算机”环境(不可靠),则为 true
composition-supported如果 OS 支持合成(在 Windows 后面模糊),则为 true
dropdown-animation-supported如果用户喜欢下拉列表中的动画,则为 true
menu-animation-supported如果用户喜欢菜单中的动画,则为 true
tooltip-animation-supported如果用户更喜欢工具提示中的动画,则为 true
ui-blurbehind支持组合的别名
ui-ambience字符串,“深色”或“浅色”
ui-accented-window-decorationWindows,如果窗口镶边使用主题色,则为 true
engine “Sciter”
engine-version-minor 数
engine-version-major 数
sciter 真
osstring,操作系统的名称
platform 字符串:“Windows”
desktop 对于桌面窗口为 true
handheld 对于移动设备为 true
print在打印和打印预览环境中为 true
Windows 在 Windows 上为 true
MacOS 在 MacOS 上为 true
Linux Linux 上的 true
windowless运行无窗口 Sciter.Lite 时为 true

 @const

  @const 规则

@const name : <value> [... <value>];

允许定义可以使用其名称(以 @ )而不是值使用的常量:

@const BACKGROUND: no-repeat url(...) 50% 50%;
...
body {
background: @BACKGROUND;
}

 @mixin

@mixin at-rule 允许定义一组属性,并按前面加上的名称 @ 应用它们。

 Mixin 声明

@mixin mname {
name1: <value>; /* properties */
name2: <value>; /* of the set */
 ...
}

 和用法:

 mixin 用法

some {
@mname;
color: black;
 ...
}

 参数化@mixin

带有参数的 @mixin at-rule 允许定义一组属性,并按前面加上的名称 @ 应用它们。

 Mixin 声明

@mixin mname(paramName1[... , paramNameN]) {
name1: @paramName1;
name2: @paramName2;
name3: <value>;
 ...
}

 和用法:

 mixin 用法

some {
@mname(val1,val2);
color: black;
 ...
}

示例,定义按钮的属性集:

 Mixin 声明

@mixin LIKE-BUTTON(color) {
display:inline-block;
background-color: @color;
border: 1px solid #000;
border-radius: 3px;
padding: 0.5em 1em;
}

有了这样的定义,我们可以在各种规则中使用它:

a[href] {
@LIKE-BUTTON(#ff0000);
display:block; /*even it was defined in the mixin
                  we can redefine it after */
}