沉着前进 2019-06-29
!important > 内联样式 > ID选择器 > 属性选择器(类选择器,属性选择器,伪类)> 元素选择器 (类型选择器,伪元素)> 继承 > 用户代理样式
通配选择符(*
), 关系选择符(+
, >
, ~
, '
') 和 否定伪类(:not()
) 对优先级没有影响。(但是,在 :not() 内部声明的选择器是会影响优先级)。
当对一个文档进行布局的时候,浏览器渲染引擎会根据CSS-Box模型将所有元素表示为一个矩形盒子
盒模型由由外边距、边界、内边距、内容块组成
外边距
盒模型的最外层,常用于元素外布局,垂直方向上易出现元素外边距重叠的效果,详细介绍可见CSS深入理解之margin
边界
背景层延伸到边界,默认颜色为字体颜色,可用边界实现一些常用图形效果,详细介绍可见CSS深入理解之border
内边距
内容区和边界之间的距离,背景层渗透,不支持负值,详细可见CSS深入理解之padding
CSS-Box模型
可通过box-sizing属性设置
行内框盒模型描述内容在元素中的布局结构
行内元素都具有line-height和vertical-align属性,这两个属性影响内容在垂直方向上的分布,详细介绍可见CSS深入理解之line-height以及CSS深入理解之vertical-align
在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定。
浮动起源于实现文字环绕效果。
为了实现文字环绕效果,规范规定的措施是使父容器塌陷,元素脱离文档流浮动产生BFC,元素周围的内容转换为inline boxes围绕元素排列。
从浮动的起因和浮动的副作用来看,浮动不适合用于大范围的布局,更适合利用其特性实现一些小范围的流体布局效果。
关于浮动的具体介绍,可见CSS深入理解之float
相对定位
未脱离文档流,相对于元素在文档流中的位置偏移,不会对其他元素的布局产生影响
绝对定位
脱离文档流,相对于包含块定位
绝对定位元素具有跟随性,在未手动定位时,元素根据原有位置脱离文档流放置
无固定宽/高,设定对立定位方向,产生拉伸效果
关于绝对定位的具体介绍,可以CSS深入理解之absolute
固定定位
脱离文档流,相对于视口
什么是BFC?
CSS规范的一个特性,产生BFC特性的元素可以理解为一个封闭独立的容器,能够排除一些外界因素的影响
如何产生BFC?
BFC的日常应用
详细例子可见10 分钟理解 BFC 原理
详细介绍可见CSS深入理解z-index
绝对单位
相对单位
vw
, vh
- 分别是视口宽度的1/100和视口高度的1/100rem布局使用解说
大体简述
word-break
word-wrap
overflow-wrap的别名,当行内没有多余的空间容纳一个单词到结尾,是否允许这个单词中断换行
注:word-wrap 属性原本属于微软的一个私有属性,在 CSS3 现在的文本规范草案中已经被重名为 overflow-wrap 。 word-wrap 现在被当作 overflow-wrap 的 “别名”。 稳定的谷歌 Chrome 和 Opera 浏览器版本支持这种新语法。
white-space
如何处理空白
| | 换行符 | 空格和制表符 | 文字转行 |
| ---------- | ------ | ------------ | -------- |
| normal
| 合并 | 合并 | 转行 |
| nowrap
| 合并 | 合并 | 不转行 |
| pre
| 保留 | 保留 | 不转行 |
| pre-wrap
| 保留 | 保留 | 转行 |
| pre-line
| 保留 | 合并 | 转行 |
word-break控制任意字符是否换行,word-wrap控制单词是否中断换行,white-space可控制是否换行。如果无换行前提,word-space与word-wrap将失去意义。
https://codepen.io/curlywater...
不做转换的情况下,显示多行文本,并且控制换行
.content { white-space: pre-wrap; word-wrap: break-word; }
对溢出文本做省略字符处理
.line-text { overflow: hidden; text-overflow: ellipsis; }
行内元素之间若有空白符/换行符/制表符掺入,将会产生元素间隔的渲染效果
html{ // 字体大小不受设备终端调整 -webkit-text-size-adjust:none; } .container { font-size: 0; } .container span { font-size: 16px; }
background-color: blue;background-color: yellow;<input type="button" value="变蓝" @click="changeColorT