caniuse
css style sheet
LAYUI
BOOTSTRAP
HPLUS
box 全屏
/*
使用CSS根元素
使用CSS根元素可以使div全屏幕占比,达到全屏的效果。
*/
html, body, .fullscreen-div {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
flex
grid
css常用单位
TIP
px 绝对单位
em 相对单位, 根据目前容器的大小来设定 再根据目前em 相乘,可以理解为倍数
rem 相对单位,相对于 根root 元素的大小来设定的
vw&vh 设定值在 1~100 之间决定 viewport width viewport height 指的是我们当前所看到的 视图窗口;
vmin & vmax 多适用于Media Query 响应式
css 权重
.app{
width:100px !important;
}
@media
如果文档宽度小于 300 像素则修改背景颜色(background-color):
@media screen and (max-width: 300px) {
body {
background-color:lightblue;
}
}
css 文本
word-spacing letter-spacing
前者调节 单词之间的间隙,后者调节字符之间的间隙
参数:
normal:默认的
直接用 px 就可以。可以接受负值。
text-indent
设置文本内容的 缩进 可以填px 也可以填 %,一般 都填 2em
columns:
除table外的非替换块级元素, table cells, inline-block这些元素外,可以使用
第一个值:设置每列的宽度。
第二个值:设置列数。
设置了 columns:300px 3; 也就是 成3列出现, 每列 300px,但是你仔细观察,在改变窗口大小的时候, 也并不是会一直固定的, 会随着 窗口的大小而压缩,拉伸宽度, 和列数
column-width:
跟上面的值是一样的,不过他是设置 宽和 列,这个只是单独设置 宽。
column-count:
单独设置 列数,设置好的列数,并不会随着父元素的宽的改变而改变, 是几列,就一直几列
column-gap:
设置每列与每列之间的间隙
column-rule:
这个属性吧,跟border: 一模一样。 也是设置边框的。只不过人家 设置的是多列的边框。
column-rule:1px solid #000; (下面三个属性的缩写)
border: 1px solid #000;
还有 column-rule-width: 对应 border-width:
column-rule-style: 对应 border-style:
column-rule-color: 对应 border-color:
column-span:
除浮动和绝对定位之外的块级元素, 也就是说 行级标签能用。
参数:默认是 none,
只有一个值可以填, all
text-shadow
跟 box-shadow 差不多
浏览器的渲染过程?
- 将获取的html解析成dom树
- 处理css,构成层叠样式表模型CSSOM
- 将dom树和CSSOM合并为渲染树
- 根据CSSOM将渲染树的节点布局计算
- 将渲染树节点样式绘制到页面上
- 注意
- 在渲染的过程中是自上而下渲染,
- js会阻塞页面的渲染,优先等js执行完成
- 如果在渲染的过程中改变了样式,会造成回流需要重新渲染
src与href的区别?
- href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
- src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。