首页 > 其他分享 >不实用iframe,CSS媒体查询依旧生效

不实用iframe,CSS媒体查询依旧生效

时间:2024-07-03 17:34:47浏览次数:22  
标签:media screen 查询 width condition iframe responsive CSS

这段 SCSS 代码定义了用于处理响应式设计和媒体查询的功能和混合器。以下是对这段代码的逐行解释:

```scss
$mediaMinWidth: 1024px;
```

  


定义了一个变量 `$mediaMinWidth`,其值为 1024 像素。

```scss
@function translate-media-condition($c) {
$condMap: (
"screen": "only screen",
">minWidth": "(min-width: #{$mediaMinWidth + 1})",
"<minWidth": "(max-width: #{$mediaMinWidth})",
// <=1200px
"md": ".ui-screen-md",
// <=1024px
"sm": ".ui-screen-sm",
// <=767px
"xs": ".ui-screen-xs"
);
@return map-get($condMap, $c);
}
```

 


这个函数 `translate-media-condition` 接受一个参数 `$c`,从一个映射表 `$condMap` 中获取对应的媒体查询条件或类名。比如:
- `"screen"` 返回 `"only screen"`
- `">minWidth"` 返回 `"(min-width: 1025px)"`
- `"<minWidth"` 返回 `"(max-width: 1024px)"`
- `"md"` 返回 `".ui-screen-md"`
- `"sm"` 返回 `".ui-screen-sm"`
- `"xs"` 返回 `".ui-screen-xs"`

```scss
@function responsive-media-condition($c) {
$condMap: (
"md": "only screen and (min-width: 1025px)",
"sm": "only screen and (max-width: 1024px)",
"xs": "only screen and (max-width: 767px)"
);
@return map-get($condMap, $c);
}
```

 


这个函数 `responsive-media-condition` 接受一个参数 `$c`,从一个映射表 `$condMap` 中获取对应的响应式媒体查询条件。比如:
- `"md"` 返回 `"only screen and (min-width: 1025px)"`
- `"sm"` 返回 `"only screen and (max-width: 1024px)"`
- `"xs"` 返回 `"only screen and (max-width: 767px)"`

```scss
@mixin media($args...) {
$query: "";
@each $arg in $args {
$op: "";
@if ($query != "") {
$op: " and ";
}
$query: $query + $op + translate-media-condition($arg);
}
@media #{$query} {
@content;
}
}
```

 


`media` 混合器接受多个参数 `$args...`,并将这些参数转换为媒体查询条件,通过 `translate-media-condition` 函数获取对应的查询条件。最终,使用 `@media` 来应用这些条件并包含混合器的内容。

```scss
@mixin responsive($arg) {
$query: translate-media-condition($arg);
$mediaCondition: responsive-media-condition($arg);
$self: &;
@media #{$mediaCondition} {
@content
};

@if ($arg != 'md') {
@at-root #{$query} #{$self} {
@content;
}
}
}
```

 

`responsive` 混合器接受一个参数 `$arg`,首先使用 `translate-media-condition` 函数获取查询条件 `$query`,然后使用 `responsive-media-condition` 函数获取响应式媒体查询条件 `$mediaCondition`。在媒体查询条件下包含混合器的内容。如果 `$arg` 不等于 `'md'`,则在根上下文中直接应用对应的类名和内容。

总结:
- 这段代码定义了一些函数和混合器来处理响应式设计中的媒体查询。
- `translate-media-condition` 和 `responsive-media-condition` 函数用于从映射表中获取对应的查询条件或类名。
- `media` 混合器用于将多个查询条件组合成一个媒体查询,并包含混合器的内容。
- `responsive` 混合器用于根据参数应用响应式媒体查询条件,并在根上下文中直接应用类名和内容(如果参数不是 `'md'`)。

这段 SCSS 代码实现了灵活的响应式设计,方便在不同的屏幕尺寸下应用不同的样式。

 

如下 case, 实际类名编译实现不同的media 生效 

编译前

.items {
    width: 100%;

    // max-width: 1024px
    @include responsive("sm") {
        width: 80%;
    }

    // max-width: 767px
    @include responsive("xs") {
        width: 60%;
    }
}

编译后

.items {
    width: 100%;
}
@media only screen and (max-width: 1024px) {
    .items {
        width: 80%;
    }
}
.ui-screen-sm .items {
    width: 80%;
}
@media only screen and (max-width: 767px) {
    .items {
        width: 60%;
    }
}
.ui-screen-xs .items {
    width: 60%;
}

 

 

 

标签:media,screen,查询,width,condition,iframe,responsive,CSS
From: https://www.cnblogs.com/leolovexx/p/18282235

相关文章

  • MySQL 中 SQL 查询语句的执行顺序
    在MySQL中,SQL查询的执行顺序通常按照以下顺序进行:FROM:从指定的表中选择数据。WHERE:对数据进行筛选,只选择满足条件的行。GROUPBY:按照指定的列对数据进行分组。SELECT:选择要返回的列或表达式。HAVING:对分组后的数据进行筛选,只选择满足条件的分组。UNION[ALL]ORDERBY:对......
  • css3 列表按先后顺序移动过来显示
    要实现列表按先后顺序平移过来,可以使用CSS动画结合:nth-child()选择器。以下是一个简单的示例:HTML:<ulclass="list"><li>Item1</li><li>Item2</li><li>Item3</li><li>Item4</li></ul>CSS:.listli{opacity:......
  • 查询分析清理oracle阻塞会话
    1.查询CMS用户当前系统活动的会话selectt.SID,t.SERIAL#,t.STATUS,t.LOGON_TIME,t.LAST_CALL_ET,t.PROGRAM,t.LOCKWAIT,t.BLOCKING_SESSION,t.BLOCKING_SESSION_STATUS,t.BLOCKING_INSTANCE,t.USERNAME,t.PROCESS,t.OSUSER,t.SERVER,t.OSUSER,t.MACHINE,t.TERMINAL,t.PROCESS......
  • CSS 选择器
    WebUI自动化中,定位方式的优先级:优先级最高:id优先级其次:name优先级再次:CSSselector优先级再次:Xpath 针对cssselector和xpath的优先级:在项目中我们用的最多的是css或xpath,优先选择css原因:(1)css是配合html来工作,它的实现原理是匹配对象的原......
  • CSS-文本样式,列表样式,其他样式
    color为字体指定颜⾊font-style⽤于打开和关闭斜体⽂本font-weight为字体设置粗细程度font-size为⽂字指定⼤⼩font-family为⽂字指定特殊的字体,浏览器只会使⽤浏览器可以访问到的字体webFont⽹络字体text-decoration设置或者取消⽂本修饰text-align⽂字排列⽅......
  • MP实现分页条件查询
     publicclassDishController{@AutowiredprivateDishServicedishService;​@GetMapping("/page")publicResult<PageResult>page(DishPageQueryDTOdto){PageResultpage=dishService.page(dto);returnResu......
  • Spring Boot 中 PGSQL 判断打卡点是否经过轨迹优化代码,循环查询物理表修改生成临时表,
    记录一下一个业务问题,流程是这样的,我现在有一个定时任务,5分钟执行一次,更新车辆打卡的情况。现在有20俩车,每辆车都分配了路线,每条路线都有打卡点,每个打卡点分配了不同的时间段,也就是说,一条路线可能有几百个打卡点,这几百个打卡点中每一个都分配了时间段,有可能是1个时间段,比如8......
  • 查询科目余额-带FSG行集
    SELECTGCC.SEGMENT3,(selectffv.DESCRIPTIONfromFND_FLEX_VALUES_VLffvwhereffv.FLEX_VALUE_SET_ID='&科目值集ID'andffv.FLEX_VALUE=gcc.segment3)acc_des,GB.BEGIN_BALANCE_DR-GB.BEGIN_BALANCE_C......
  • java操作hbase查询数据 java操作hbase查询数据库
    java操作hbase查询数据java操作hbase查询数据库HBasejavaAPI访问HBase数据库登录后复制packagecom.hunan.hbase_options;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.;importorg.apache.hadoop.hbase.client.;importorg.apache.had......
  • 查询 dynamic crm 中,TypeCode 对应的实体名称
    查询语句:selectEntityId,Name,ObjectTypeCode,OriginalLocalizedNamefromEntityVieworderbyObjectTypeCode常用列表:NameObjectTypeCodeAccount1Contact2Opportunity3Lead4Annotation5BusinessUnitMap6Ow......