媒体查询,常量,混合 @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 中的声明可以接受
单个媒体变量名称,例如
@media print {...}
或组合多个条件
@media print or handheld {...}
的表达式
@media查询
谨慎
在某种程度上,Sciter 中的媒体查询格式与 W3C 媒体查询不兼容。
此 W3C 媒体查询
@media screen and (max-width: 600px) {
...
}
在 Sciter 中是这样的
@media screen and (width < 600px) {
...
}
语法:
@media
{
......规则 }
<expr> 哪里是
name - 内置媒体变量或应用程序定义的媒体变量的名称;
and
- 两个布尔表达式的逻辑 AND;or
- 两个布尔表达式的逻辑 OR;<expr>
<
<expr><expr>
>
<expr><expr>
==
<expr><expr>
<=
<expr><expr>
>=
<expr>比较表达式
(
)
- 可以对表达式进行分组以避免歧义。
内置媒体变量
名字 | 描述 |
---|---|
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-decoration | Windows,如果窗口镶边使用主题色,则为 true |
engine | “Sciter” |
engine-version-minor | 数 |
engine-version-major | 数 |
sciter | 真 |
os | string,操作系统的名称 |
platform | 字符串:“Windows” |
desktop | 对于桌面窗口为 true |
handheld | 对于移动设备为 true |
在打印和打印预览环境中为 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 */
}