一、CSS基础
1.CSS reset:
*{
margin:0;
padding:0;
box-sizing:border-box;
}
ul,
ol{
list-style:none;
}
img{
max-width:100%;
}
2.文档流
流动方向:
- inline元素从左到右,到达最右边才会换行(不接受设置width,会跨行)
- block元素从上到下,每一个都另起一行(不会跨两行)
- inline-block也是从左到右
宽度:
- inline宽度为内部inline元素的和,不能用width指定
- block默认自动计算宽度,可用width指定
- inline-block结合前两者特点,可用width(尽量的“窄”,宽为内部inline元素和)
高度
- inline高度由line-height间接确定,跟height无关(间接:字体不一致时,会相差1、2px)
- block高度由内部文档流元素决定,可以设height
- inline-block跟block类似,可以设置height
3.overflow溢出
当内容的宽度或高度大于容器的,会溢出,可用overflow来设置是否显示滚动条
- overflow:auto(自动判断是否需要加滚动条,且默认只显示必要的滚动条,当宽度超出时显示下方滚动条)
- overflow:scroll(永远显示滚动条,太丑了基本不用)
- overflow:hidden(直接隐藏溢出部分)
- visible是直接显示溢出部分
4.脱离文档流
- float:left/right;
- position:absolute/fixed;
5.两种盒模型
- content-box内容盒-内容就是盒子的边界(content-box width=内容宽度)
- border-box边框盒-边框是盒子的边界(border-box width=内容宽度 padding border)
6.margin合并
margin合并,只存在上下合并不存在左右合并,有两种情况:父子margin合并、兄弟margin合并
阻止父子合并:用padding/border挡住、用overflow:hidden挡住、用display:flex;
阻止兄弟合并:display:inline-block
CSS学习实用小技巧:
- 可使用http://caniuse.com查询哪些浏览器支持哪些特性(eg.输入border-radius 或者filter 查看大部分浏览器的支持情况);
- CSS的Border调试法:怀疑哪个元素有问题就给这个元素加border,border没出现的话说明选择器错了或者语法错了,border出现了就看看边界是否符合预期,bug解决了把border删掉;
- CSS查资料:Goole搜索关键词时 MDN、CSS tricks(英文)、张鑫旭的博客
- 所有元素均可为内联、块、内联块,取决于”display“,浏览器将span元素默认设置为inline,div默认为block,可修改;
- div中若没有内容且没有设置高度的情况下,高度为0,padding改变的是div的视觉高度而不是实际高度
二、CSS布局
1.float布局
后续补充
2.flex布局
后续补充
3.grid布局
后续补充
三、CSS定位
1.div的分层:
background(最底层)-
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。