精通CSS

2019-03-04  本文已影响0人  Yuxin_Liu

李老师译,要看,要看

CSS选择符

属性选择符
input[type="submit"] {}
a[href^="http"] {}
img[src$=".jpg"] {}
a[href*="/about/"] {}
a[ref~="next"] {}
input:required {}
input:optional {}
input[type="email"]:valid {}
input[type="email"]:invalid {}
性能

可见格式化模型

float + clear

使用伪类模拟额外的清除元素

.media-block:after {
  content: "";
  display: block;
  clear: both;
}
格式化上下文

有些规则允许元素建立自己内部块级格式化上下文:

网页排版

字型大小与行高

font-size: .**rem,一般保留三位小数
文本粗细:normal对应400,bold对应700
word-spacing、letter-spacing

文本
使用JS加载字体

Web Font Loader

漂亮的盒子

背景附着

background-attachment: fixed

多重背景

最先声明的在最上面,最后声明的在最下面

阴影

box-shadow可以设置inset

渐变

默认自上而下(to bottom);
可以写成background-image: linear-gradient(#cfdfee, #8da9cf 100px);此时就会0-100px渐变,100px之后都是第二个色值。

object-fit(默认fill)
img.fill {
  object-fit: fill;
}
img.contain {
  object-fit: contain;
}
img.cover {
  object-fit: cover;
}
img.none {
  object-fit: none;
}
img.scaledown {
  object-fit: scaledown;
}
可保持宽高比的容器
<div class="object-wrapper">
  <iframe src="" ></iframe>
</div>
.object-wrapper {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 75%;
}
.object-wrapper iframe {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

内容布局

页面布局与网格

.row: after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}

响应式Web设计与CSS

媒体查询的分辨率、宽高比、方向
@media (orientation: portrait) {
  /* 竖屏样式 */
}
@media (min-aspect-ratio: 16/9) {
  /* 宽高比至少为16比9时应用 */
}
<!-- [if (lt IE 9) & (!IEMobile)]>
<link rel="stylesheet" href="oldIE.css" media="all" >
<![endif]-->
/* 检测像素 */
<img src="img/600x300.png" srcset="img/1200x600.png 1.5x" alt="Dummy image">
/* 增加sizes,声明显示宽度 */
<img src="img/xsmall.png"
  srcset="img/xsmall.png 300vw,
          img/small.png 400vw,
          img/medium.png 600vw"
  sizes="(min-width: 70em) 12.6875em
        (min-width: 50em) calc(25vw * 0.95 - 2.75em),
        (min-width: 35em) calc(95vw / 2 - 4.125em)"
  alt="Dummy image"
>

表单与数据表

.field-text input {
  -webkit-appearance: none;
  /* ... */
}
.field-text input:focus {
  box-shadow: 0, 0, 0.5em rgba(93, 162, 248, 0.5);
  border-color: #5da2f8;
  outline: 0;
  /* ... */
}
textarea {
  height: 10em;
  resize: vertical;
}
::-webkit-input-placeholder {
  font-style: italic;
}
:-ms-input-placeholder {
  font-style: italic;
}
::-moz-placeholder {
  font-style: italic;
}

变换、过渡与动画

+“黏着过渡”
不让过渡反向,把duration设置一个非常大的值:

.hello {
  transition: background-position 9999999999s steps(6);
}
.hello:hover {
  transition-duration: 0.6s;
}
.csstransforms3d .flip-wrapper {
  position: relative;
  transition: all .25s ease-in-out;
  transform-style: preserve-3d;
}

高级特效

CSS Shapes
上一篇 下一篇

猜你喜欢

热点阅读