CSS
约 3 分钟阅读
Spec
- CSS Nesting Module链接www.w3.org/TR/css-nesting-1CSS Nesting Module · CSS Generated Content for Paged Media Module · CSS Paged Media Module Level 3 https://drafts.csswg.org/css-page-3笔记:CSS
Topics
- CSS Generated Content for Paged Media Module链接www.w3.org/TR/css-gcpm-3CSS Nesting Module · CSS Generated Content for Paged Media Module · CSS Paged Media Module Level 3 https://drafts.csswg.org/css-page-3笔记:CSS
- CSS Paged Media Module Level 3 drafts.csswg.org/css-page-3
- page-break@css-tricks链接css-tricks.com/almanac/properties/p/page-breakCSS Nesting Module · CSS Generated Content for Paged Media Module · CSS Paged Media Module Level 3 https://drafts.csswg.org/css-page-3笔记:CSS
- www.smashingmagazine.com/2015/01/designing-for-print-with-css
- developer.mozilla.org/en-US/docs/Web/CSS/@page
- papersizes.io/a
- www.print-css.rocks
/* 页眉 */
@page {
@top-center {
content: element(pageHeader);
}
}
#pageHeader {
position: running(pageHeader);
}CSS 滤镜
/* 对滤镜使用渐变 */
.active {
transition: 1s filter linear;
-webkit-transition: 1s -webkit-filter linear;
-moz-transition: 1s -moz-filter linear;
-ms-transition: 1s -ms-filter linear;
-o-transition: 1s -o-filter linear;
}在 CSS 中使用 FontAwesome
.mytextwithicon {
position: relative;
}
.mytextwithicon:before {
content: '\25AE'; /* 修改为需要的值 */
font-family: FontAwesome;
left: -5px;
position: absolute;
top: 0;
}flex
- caniuse
- flexbugsGitHubphilipwalton/flexbugs 由社区维护的 flex 在各个浏览器中的 BUG 和解决方法
- float, clear 和 vertical-align 不影响 flex 元素
- A guide to flexbox
- 滚动内容
/* 针对容器的属性 */
.container{
display: flex;
/* 排序方向 */
flex-direction: row;
/*flex-direction: row | row-reverse | column | column-reverse;*/
/* 换行控制 */
flex-wrap: nowrap
/*flex-wrap: nowrap | wrap | wrap-reverse;*/
/* flex-direction 和 flex-wrap 的缩写 */
flex-flow: row nowrap;
/*flex-flow: <‘flex-direction’> || <‘flex-wrap’>*/
/* 内容间隔控制 */
justify-content: flex-start;
/*justify-content: flex-start | flex-end | center | space-between | space-around;*/
/* 内容对齐控制 */
align-items: flex-start;
/*align-items: flex-start | flex-end | center | baseline | stretch;*/
/* 控制内容有多行时的行间距 */
align-content: flex-start;
/*align-content: flex-start | flex-end | center | space-between | space-around | stretch;*/
}
/* 针对自身的属性 */
.item{
/* 顺序控制 */
/*order: <integer>;*/
/* 宽度增长控制 */
flex-grow: 0;
/*flex-grow: <number>;*/
/* 宽度收缩控制 */
flex-shrink: 0;
/*flex-shrink: <number>;*/
/* 基础尺寸控制 */
flex-basis: auto;
/*flex-basis: <length> | auto;*/
/* 参数缩写 */
flex: 0 0 auto;
/*flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]*/
/* 元素对齐控制 */
align-self: flex-start;
/*align-self: auto | flex-start | flex-end | center | baseline | stretch;*/
}文本溢出显示省略号
.over-test {
width: 300px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}避免点击高亮
.button {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-tap-highlight-color: transparent;
}// 允许 css 中的 :active 样式在移动端 safari 生效
document.addEventListener('touchstart', function () {}, true);visibility 在动画中的问题
- 在动画中如果结束
visibility: hidden, 那会导致直接不进行动画
.target {
/* 将 visibility 也加入转换, 时间等同 */
transition: opacity 250ms ease-out, visibility 250ms linear;
}避免 div 处理点击事件
- 当两个 div 重叠的时候, 不希望第一个透明的 div 处理事件
- 当
opacity:0的时候, 不希望处理事件 - pointer-events
- touch-action
- 可用于手势控制
- 支持的较好的只有
manipulation, 等同于pan-x pan-y pinch-zoom - 左右滑,上下滑,缩放
.overlay {
pointer-events: none;
}
.container .button {
pointer-events: auto;
}比例宽高
- 可以用宽百分比+padding
- 可以用 vh/vw
- Maintain the aspect ratio of a div with CSS
- Scaling Responsive Animations
.container {
width: 100%;
/* 4:3 */
padding-bottom: 75%;
}
/* 保证绝对的 9/16, 并且在屏幕居中 */
.container {
width: 100vw;
height: calc(100vw * 16 / 9);
transform: translateY(calc((100vw * 16 / 9 - 100vh) / -2));
}| aspect ratio | padding-bottom value |
|---|---|
| 16 | 56.25% |
| 4 | 75% |
| 3 | 66.66% |
| 8 | 62.5% |
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub1 条
- philipwalton/flexbugsgithub.com/philipwalton/flexbugs
其他外链19 条
- astronautweb.co/snippet/font-awesomeastronautweb.co/snippet/font-awesome
- caniuse.comcaniuse.com/
- codepen.io/akademy/pen/FlkzBcodepen.io/akademy/pen/FlkzB
- css-tricks.com/almanac/properties/f/filtercss-tricks.com/almanac/properties/f/filter
- css-tricks.com/almanac/properties/p/page-breakcss-tricks.com/almanac/properties/p/page-break
- css-tricks.com/scaling-responsive-animationscss-tricks.com/scaling-responsive-animations
- css-tricks.com/snippets/css/a-guide-to-flexboxcss-tricks.com/snippets/css/a-guide-to-flexbox
- css-tricks.com/snippets/css/remove-gray-highlight-when-tapping-links-in-mobile-safaricss-tricks.com/snippets/css/remove-gray-highlight-when-tapping-links-in-mobile-safari
- developer.mozilla.org/en-US/docs/Web/CSS/@pagedeveloper.mozilla.org/en-US/docs/Web/CSS/@page
- developer.mozilla.org/en-US/docs/Web/CSS/pointer-eventsdeveloper.mozilla.org/en-US/docs/Web/CSS/pointer-events
- developer.mozilla.org/en-US/docs/Web/CSS/touch-actiondeveloper.mozilla.org/en-US/docs/Web/CSS/touch-action
- drafts.csswg.org/css-page-3drafts.csswg.org/css-page-3
- papersizes.io/apapersizes.io/a
- stackoverflow.com/a/14964944/1870054stackoverflow.com/a/14964944/1870054
- stackoverflow.com/questions/1495407stackoverflow.com/questions/1495407
- www.print-css.rockswww.print-css.rocks/
- www.smashingmagazine.com/2015/01/designing-for-print-with-csswww.smashingmagazine.com/2015/01/designing-for-print-with-css
- www.w3.org/TR/css-gcpm-3www.w3.org/TR/css-gcpm-3
- www.w3.org/TR/css-nesting-1www.w3.org/TR/css-nesting-1