1.将所有元素垂直居中:
html,
body {
height: 100%;
margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
2.不规则投影:
关键实现:filter: drop-shadow()
具体分析:box-shadow 不能透过透明背景显示出来,不能越过伪元素/子元素显示出来,而这些drop-shadow能做到。(但无论哪种投影都会被clip-path剪裁掉~~)
filter: drop-shadow(2px 2px 10px rgba(0,0,0,.5));
3.自适应宽度:
关键实现:min-content关键字
具体分析:如何实现一个元素的宽度根据后代元素的最大固定元素宽度自适应呢?绞尽脑汁,也只能利用 display: inline-block 的包裹特性实现一个不完全的版本:地址 这种方法的缺陷是文本脱离了文档流,高度未计入包含块。但是如果利用 min-content 关键字,可以一行代码实现且无副作用
width: min-content;
4.模糊文本:
.blur {
color: transparent;
text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
5.投影模拟多重边框:
关键实现:box-shadow的inset
具体分析:使用box-shadow可以模拟实现多重边框,但是由于阴影不占空间,所以无法触发点击事件,鼠标hover边框时无法出现小手,所以需要配合inset关键字使用
height: 200px;
background: cyan;
box-shadow: 0 0 0 5px #000 inset, 0 0 0 10px #555 inset,
0 0 0 15px #999 inset;
6.隐藏没有静音、自动播放的影片:
video[autoplay]:not([muted]) {
display: none;
}
7.优化显示文本:
有时,字体并不能在所有设备上都达到最佳的显示,所以可以让设备浏览器来帮助你:
html {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
你可以负责任地使用 optimizeLegibility。但是,IE /Edge没有 text-rendering 支持。
8.CSS首字放大:
p:first-letter {
display: block;
float: left;
margin: 5px 5px 0 0;
color: red;
font-size: 1.4em;
background: #ddd;
font-family: Helvetica;
}
9.为手持设备定制特殊样式:
<link type="text/css" rel="stylesheet" href="handheldstyle.css" media="handheld">
10.给 body 添加行高:
你不需要分别添加 line-height 到每个p,h标记等。只要添加到 body 即可
body { line-height: 1;}
这样文本元素就可以很容易地从 body 继承。
网友评论