在我刚开始学习 CSS 的时候,我还以为所有的 CSS 默认样式都来自于浏览器自身的 “User-Agent Stylesheet” 文件。但是后来,我发现我错了,这只是冰山一角。
每个 CSS 属性都有一个 规范。这些规范也是 W3C 标准的一部分。
初始值
每个 CSS 属性都有一个初始值。这个初始值不依赖于该 CSS 属性所应用的 HTML 元素。也就是说,对于所有的 HTML 元素,如果具有某个 CSS 属性的话,那么这个属性都会有一个初始值,并且初始值都是一样的。
以 CSS 的定位属性(position)为例:.some-class{position: absolute;top: 20px;left: 20px;}复制代码你知道 position 属性的默认值是什么吗?
很多 web 开发者都回答不出来。正确的答案是:static。
类似的还有其它与定位相关的属性,比如:top/bottom/left/right,它们的初始值都是 auto。
部分 CSS 属性具有 “继承行为”。
也就是说,假设我们给某个 HTML 元素设置了一些特定的样式,那么该元素的后代都会继承这些样式。
一般情况下,以下两种类型的 CSS 属性会具有继承的行为:
文本类型:font-family、font-size、color、text-align排版类型:CSS 排版属性介绍想象一下:当你给
元素设置了 font-size: 20px 属性,那么 元素的所有后代元素都会继承这个 font-size,除非你给某个后代元素重新设置了 font-size。
但是如果你给元素设置了 padding: 20px 属性,那么其后代元素都不会继承 padding,为什么呢?因为 padding 属性是没有继承行为的,也就是说,它是不能继承的。
块级元素与行内元素的区别
区别一:
块级:块级元素会独占一行,默认情况下宽度自动填满其父元素宽度
行内:行内元素不会独占一行,相邻的行内元素会排在同一行。其宽度随内容的变化而变化。
区别二:
块级:块级元素可以设置宽高
行内:行内元素不可以设置宽高
区别三:
块级:display:block;
行内**:**display:inline;
可以通过修改display属性来切换块级元素和行内元素。
区别四:
块级:块级元素可以设置margin,padding
行内:行内元素水平方向的margin-left; margin-right; padding-left; padding-right;可以生效。但是竖直方向的margin-bottom; margin-top; padding-top; padding-bottom;却不能生效。
总结:css是学习前端必不可缺的一个环节,但是从理解到掌握css是很困难的,需要我们不停的在使用中学习和探索。希望能通过青训营课程,增加自己对css的理解,更好的应用在实践中。