前端练习和知识点
Frontend Practice
HTML CSS
- clear
See the Pen clear 的正确用法 by billscofield (@billscofield) on CodePen.
布局
水平居中
- 文本/行内元素/行内块级元素
- text-align:center(父元素上,vertical-align 是写在子元素上)
- 单个块级元素
- margin:0 auto
- 多个块级元素
- display:inline-block; + text-align:center;
-
使用绝对定位实现
width:100px; height:50px; position:absolute; left:50%; margin-left:-50px; //transform: translateX(-50%); /*自身宽度一半,等同于margin-left: -50px;*/
两栏布局
- 右侧固定
See the Pen 两栏布局右侧固定左侧自适应 by billscofield (@billscofield) on CodePen.
小知识点
- offsetWidth 对应 border-box, clientWidth 对应 padding-box
- 原生 DOM API 没有 margin-box 对应的宽度和高度
See the Pen offsetWidth & clientWidth by billscofield (@billscofield) on CodePen.
- inline-block元素的baseline确定规则
- inline-block 如果没有内联元素,或者overflow不是visible, 则该元素的基线就是其 margin 底边缘
- inline-block 如果不是空的,基线是元素里面最后一行内联元素的基线
See the Pen inline-block 元素的 baseline 确定规则 by billscofield (@billscofield) on CodePen.
- 非主动触发位移的内联元素是不可能跑到计算容器外面的
See the Pen 非主动触发位移的内联元素 by billscofield (@billscofield) on CodePen.
- inline-block 特殊情况下的 baseline
- inline-block 为空元素,或者 overflow 不为 visible 时,元素的 baseline 为 margin-bottom
- 否则,inline-block 的baseline 为元素中最后一行内容的 baseline
- line-height:0 时,inline-block 从 x 的中线开始,还是baseline 对齐,所以 父元素div会被撑开0.5ex
See the Pen inline-block 的 baseline by billscofield (@billscofield) on CodePen.