《CSS 新世界》推荐

2021/08/16 书籍推荐 共 2425 字,约 7 分钟

背景

最近买了张老师的新书,写的这些内容都是我喜欢看和我不知道的东西。做个笔记

@media

@media print{} => 打印页面的时候设置页面的样式

@media screen{} => 设置屏幕大小

@media (prefers-color-scheme:dark){} => 系统开启深色模式

@media (prefers-color-scheme:light){} => 系统开启浅色模式

@media (prefers-reduced-motion){} => 系统是否设置了关闭没有必要的动画

@media (any-hover:none){} => 简单说就是不支持鼠标悬停,移动端访问

@media (any-hover:hover){} => 简单说就是支持鼠标悬停,PC端访问

@media (hover:hover){} or @media (hover:none){} => 和上面差不多

@media (pointer:coarse){} => 大型的触摸屏,物联网设备

注意了:js代码对系统深浅主题判断:window.matchMedia(“(prefers-color-scheme:dark)”).matches => 是否支持深色模式,true or false

环境变量 env()

  1. iPhone 手机设置安全边距
env(safe-area-inset-top,20px)
env(safe-area-inset-bottom,20px)
env(safe-area-inset-left,20px)
env(safe-area-inset-right,20px)

需要meta 设置如下信息

<meta name="viewport" content="viewport-fit=cover"/>

其他的

rem => r是root的意思,在网页中就是html,就是根据根元素设置页面元素的大小

html {
  font-size: 16px;
  font-size: clamp(16px, calc(16px + 2 * (100vw - 375px) / 39), 22px);
}

@media screen and (max-width: 320px) {
  html {
    font-size: 14px;
  }
}

@supports not (width: clamp(1px, 2px, 3px)) {
  @media screen and (min-width: 375px) {
    html {
      font-size: calc(16px + 2 * (100vw - 375px) / 39);
    }
  }

  @media screen and (min-width: 414px) {
    html {
      font-size: calc(18px + 4 * (100vw - 414px) / 586);
    }
  }

  @media screen and (min-width: 1000px) {
    html {
      font-size: 22px;
    }
  }
}

// 如果页面宽10px,就是下面这样写,之后的元素像素单位都可这样写
clac( 10 / 16rem)

touch-action

touch-action:manipulation => 取消300ms的点击延迟,表示浏览器只允许滚动和持续缩放操纵,双击操纵不被允许

touch-action:pan-x => 支持手指头水平移来移去

touch-action:pan-y => 支持手指头垂直移来移去

touch-action:pan-zoom => 支持手指缩放页面操纵

background-image:image-set(url(1.png) 1x, url(2.png) 2x, url(3.png) 600dpi) => 根据不同设备的屏幕密度或者分辨率来显示不同背景图

var 变量

有了他整站换肤都变得简单了

:root{
  --primary-color:red;//自定义属性和值,css 变量
}
button{
  color: var(--primary-color,#444);// css 变量的使用,若不支持前面的就是用默认值,只要第一个参数有效,哪怕是乱七八糟的,他var就会正常执行,如果不合法就会使用初始值,如果无效就使用后面的默认值  https://demo.cssworld.cn/new/8/1-1.php
}
// 起始值
.example{
  --gradientColor:deeppink,deepskyblue;
  background:linear-gradient(to top, var(--gradientColor)) 
}

// 整个函数参数
.example{
  --gradientColor:to top, deeppink,deepskyblue;
  background:linear-gradient(var(--gradientColor)) 
}

// 整个函数表达式
.example{
  --gradientColor:linear-gradient(to top, deeppink,deepskyblue);
  background:var(--gradientColor) 
}

最后一种使用的比较多,特别是在做兼容性的时候,这样可以省很多代码,但是css 自定义的属性不支持在媒体查询中使用,@media (max-width:var(–maxWidth)){} 无效

在HTML标签中中设置css自定义属性

<div style="--color:red;">
  <img src="1.png" style="1px solid var(--color)">
</div>

js 中设置css自定义属性: setProperty() js 中获取css自定义属性: getPropertyValue filter 滤镜在safari浏览器中会带来潜在的渲染问题

实现3D环绕

父元素使用 transform-style: preserve-3d; 子元素使用 transform: rotateY(-1deg);


在技术的历史长河中,虽然我们素未谋面,却已相识已久,很微妙也很知足。互联网让世界变得更小,你我之间更近。

在逝去的青葱岁月中,虽然我们未曾相遇,却共同经历着一样的情愫。谁的青春不曾迷茫或焦虑亦是无奈,谁不曾年少过

在未来的日子里,让我们共享好的文章,共同学习进步。有不错的文章记得分享给我,我不会写好的文章,所以我只能做一个搬运工

我叫 sunseekers(张敏) ,千千万万个张敏与你同在,18年电子商务专业毕业,毕业后在前端搬砖

如果喜欢我的话,恰巧我也喜欢你的话,让我们手拉手,肩并肩共同前行,相互学习,互相鼓励

文档信息

Search

    Table of Contents