Skip to content

CSS 学习笔记:布局

元素的显示模式

元素有两三种显示模式:块元素、行内元素和行内块元素。

块元素

常见的块元素有 h1-h6, p, div, ul, ol, li。

  • 块元素独占一行
  • 高度、宽度、外边距和内边距可以调整
  • 宽度默认是容器(父元素)的100%
  • 本身是一个容器或盒子,里面可以放行内元素或者其他块元素

WARNING

  • 文字类的块元素内部不能再放置其他元素

行内元素

常见的行内元素有 a, strong, b, em, i, del, s, ins, u, span。

  • 相邻的行内元素在同一行上,一行可以显示多个行内元素
  • 高度、宽度设置是无效的
  • 默认宽度是本身内容的宽度
  • 行内元素只能容纳文本或者其他的行内元素

WARNING

  • 链接里面不能再放链接
  • 特殊情况链接标签里面可以放块元素,但建议将链接标签转换成块元素

行内块元素

行内元素中有一些特殊的元素,img、input、td 标签同时具有块元素和行内元素的特点。

  • 和相邻的行内元素在一行上(块元素特点),但是之间有空白缝隙,一行可以显示多个(行内元素特点)
  • 默认宽度是本身内容的宽度(行内元素特点)
  • 高度、行高、外边距以及内边距都可以控制(块元素特点)

元素显示模式切换

部分块元素和行内元素可以进行显示模式的转换,主要使用 display 样式。

转换成块元素

css
display: block;

转换成行内元素

css
display: inline;

转换成行内块元素

css
display: inline-block;

CSS 三大特性

CSS 有三个非常重要的特性:层叠性、继承性、优先级

层叠行

层叠,效果其实就是覆盖。相同的选择器设置不同的样式,会发生样式冲突,层叠性就是解决冲突的问题。

层叠行原则

  • 样式冲突,就近原则(优先级的问题),哪个样式离结构近,就执行哪个样式
  • 样式不冲突,不发生层叠

继承性

子标签继承父标签的某些样式。

行高的设置

css
body {
  font: 12px/1.5 'Microsoft YaHei';
}

div {
  /*  此时div的行高是14*1.5=21 */
  font-size: 14px;
}

p {
  /* 未指定文字大小,默认使用父元素 body 设置的行高,即 12*1.5=18 */
}

<body>
  <div>Spring</div>
  <p>Summer</p>
</body>
  • 行高可以跟单位,也可以不跟
  • 子元素没有设置行高时,继承父元素的行高的 1.5
  • 子元素的行高是当前子元素的文字大小的 1.5

优先级

详见 CSS 选择器优先级

TIP

!important >內联样式 >ID 选择器 >类选择器|伪类选择器|属性选择器 >元素选择器|伪元素选择器 >继承|*

Released under the MIT License.