深入CSS | 青训营笔记

78 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第2天,关于选择器内容补充及布局知识整理如下:

选择器的优先级:

内联样式 > ID 选择器 > 类选择器、属性选择器、伪类选择器 > 标签选择器、伪元素选择器

<article> 
<h1 class="title">优先级测试</h1> 
</article> 

<style>
.title { 
    color:blue; 
} 
article h1 { 
    color:red;
}
</style>

特殊的 !important
  在定义样式的时候,可以对某一个属性应用 !important。CSS2规范中规定:!important 用于单独指定某条样式中的单个属性。对于被指定的属性,有 !important 指定的权重值大于所有未用 !important 指定的规则。

<article> 
<h1 class="title">优先级测试</h1> 
</article> 

<style>
.title { 
    color:blue; 
} 
article h1 { 
    color:red !important;
}
</style>

CSS的继承性:

某些属性会自动继承其父元素的计算值,除非显式指定一个值

<div> 
<p>了解<span>css</span>的继承性</p> 
</div> 

<style> 
p { 
    color:red;
    font-size:50px; 
} 
span { 
    font-size:80px; 
} 
</style> 

初始值:

  • css中,每个属性都有一个初始值
  • background-color的初始值为transparent
  • margin-left的初始值为0
  • 可以使用initial关键字显式重置为初始值
  • backgroud-color: initial

了解布局(Layout):

  • 确定内容的大小和位置的算法
  • 根据元素、容器、兄弟节点和内容等信息来计算

布局相关技术:

CSS布局.png

标准盒子模型:

  一般浏览器默认为标准盒子模型。即:box-sizing:content-box

一般.png

width:

  • 指定content box宽度
  • 取值为长度、百分数、auto
  • auto由浏览器根据其他属性确定
  • 百分数相对于容器的content box宽度

height:

  • 指定content box高度
  • 取值为长度、百分数、auto
  • auto值由内容计算得来
  • 百分数相对于容器的content box高度
  • 容器有指定的高度时,百分数才会生效

padding:

  • 指定元素四个方向的内边距
  • 百分数相对于容器宽度

padding.png

border:

  • 指定容器边框样式、粗细和颜色
  • 三种属性:border-width、border-style、border-color
  • 四个方向:border-top、border-right、border-bottom、border-left

margin:

  • 指定元素四个方向的外边距
  • 取值可以是长度、百分数、auto
  • 百分数相对于容器宽度

 使用 margin:auto 实现水平居中:


margin collapse(外边距折叠):

怪异盒子模型:

 即box-sizing: border-box

怪异.png

overflow:

块级元素:

  • 不和其他盒子并列摆放,适用于所有的盒模型属性
    eg:body、article、div、main、section、h1-6、p、ul、li等
  • 声明方式:display: block

行级:

  • 和其他行级盒子一起放在一行或拆开成多行,盒模型中的width、height不适用
    eg: span、em、strong、cite、code等
  • 声明方式:display: inline

display属性

  • block 块级盒子
  • inline 行级盒子
  • inline-block 本身是行级,可以放在行盒中;可以设置宽高;作为一个整体不会被拆散成多行
  • none 排版时完全被忽略

总结

  CSS看似基础简单,实则涉及到的知识点很多,如果要真正吃透,得先给自己建立起完整的知识体系,之后再不断地反复温习。