前端CSS小笔记-01

127 阅读2分钟

1. 容器查询

A container query

关键代码:
.panel {  
  container: layers-panel / inline-size;  
}

.card {  
  padding: 1rem;  
}  
  
@container layers-panel (min-width: 20rem) {  
  .card {  
    padding: 2rem;  
  }  
}
示例:

浏览器支持:

@container

ChromeFirefoxMicrosoft EdgeSarafi
10511010516

container

ChromeFirefoxMicrosoft EdgeSarafi
10511010516

2. 滚动快照

Scroll snap

关键代码
.snaps {  
  overflow-x: scroll;  
  scroll-snap-type: x mandatory;  
  overscroll-behavior-x: contain;  
}
  
.snap-target {  
  scroll-snap-align: center;  
}  
  
.snap-force-stop {  
  scroll-snap-stop: always;  
}
示例

浏览器支持

scroll-snap-type

ChromeFirefoxMicrosoft EdgeSarafi
69997911

scroll-snap-align

ChromeFirefoxMicrosoft EdgeSarafi
69687911

scroll-snap-stop

ChromeFirefoxMicrosoft EdgeSarafi
751037915

overscroll-behavior

ChromeFirefoxMicrosoft EdgeSarafi
63591816

3. 网络桩

Grid pile

关键代码
.pile {  
  display: grid;  
  place-content: center;  
}
  
.pile > * {  
  grid-area: 1/1;  
}
示例

浏览器支持

grid

ChromeFirefoxMicrosoft EdgeSarafi
57521610.1

4. 快速生成圆圈

Quick circle

听说是个很简约的写法😀

关键代码
.circle {  
  inline-size: 25ch;  
  aspect-ratio: 1;  
  border-radius: 50%;  
}
示例

浏览器支持

aspect-ratio

ChromeFirefoxMicrosoft EdgeSarafi
88898815

5. 用@layer控制变体

Control variants with @layer

关键代码

级联层可以帮助将后来发现或创建的变体插入到级联的正确位置,与原始变体集一起。

/* file buttons.css */  
@layer components.buttons {  
  .btn.primary {  
     …  
  }  
}

然后,在完全不同的文件中,在其他随机的时间加载,将一个新的变量附加到按钮层,就好像它一直存在于那里一样。

/* file video-player.css */  
@layer components.buttons {  
  .btn.player-icon {  
    …  
  }  
}
示例

浏览器支持

@layer

ChromeFirefoxMicrosoft EdgeSarafi
99979915.4

6. 通过逻辑属性记忆更少,达到更多的效果

Memorize less and reach more with logical properties

不用担心因国际书写模式和文档的文字方向而更改左右对齐或者边距。只需使用逻辑属性如padding-inlinemargin-inlineinset-inline代替物理属性,浏览器会自己调整。

关键代码
button {  
  padding-inline: 2ch;  
  padding-block: 1ch;  
}  
  
article > p {  
  text-align: start;  
  margin-block: 2ch;  
}  
  
.something::before {  
  inset-inline: auto 0;  
}
示例

浏览器支持

padding-inline

ChromeFirefoxMicrosoft EdgeSarafi
87668714.1

margin-block

ChromeFirefoxMicrosoft EdgeSarafi
87668714.1

inset-inline

ChromeFirefoxMicrosoft EdgeSarafi
87638714.1

消息来源于:Google Developers