e度空间 2019-11-18
行内样式:代码写在具体网页中的一个元素内;比如:
<div style="color:#f00"></div>
内联样式:在</head>前面写;比如:
<style type="text/css">.div{color:#F00}</style>
外部样式:引用外部css文件;比如:
<link href="css.css" type="text/css" rel="stylesheet" />
当我们在讨论CSS选择器优先级的时候,我们在讨论什么?
其实很多人都对此有点模糊,那我换个方式问: 一个CSS属性的最终值是怎么来?
回答: CSS属性的最终值是通过层叠计算得来的。
通俗的理解,其实就是先计算再重叠
层叠是CSS的一个基本特征,它是一个定义了如何合并来自多个源的属性值的算法。它在CSS处于核心地位,CSS的全称层叠样式表正是强调了这一点。
在学习css的时候,一定会先认识什么是html element,什么是class,什么是id,什么是css的inline写法。了解了基本的css之后,有一个东西一定要先了解,那就是什么是css权重。
权重影响样式优先级,优先级的计算首先是 选择器权重 的优先级计算,然后是 声明先后顺序 的优先级计算
2、再看规则的权重或者说特异性(specificity):!important > 内联 > 选择器(ID > Class/psuedo-class(偽類)/attribute(屬性選擇器) > Element)
W3C文档地址A selector’s specificity is calculated for a given element as follows:
1.count the number of ID selectors in the selector (= A)
2.count the number of class selectors, attributes selectors, and pseudo-classes in the s elector (= B)
3.count the number of type selectors and pseudo-elements in the selector (= C)
4.ignore the universal selector
注意:重复的 css selector, 其权重会被重复计算
我们常说的优先级其实就是其中 1 到 2 的最初那步,一共就三个层级的规则。
盒子在页面占据的大小包括了margin,border,padding以及content。而盒子的实际大小包括border,padding以及内容区域content,但是不包括margin。另一点需要说明的是,我们通过JavaScript代码获取某一个元素的大小时,所得到的width和height其实是盒子模型中的content的大小。
IE盒模型也包含margin,border,padding以及content这几部分。IE盒模型的content部分包含了border和padding。
border-box和content-box的区别和使用场景?
为什么要区分:
表现差异:
行内元素特点:
块级元素特点:
注意点:
行块元素之间,浏览器会有一个默认的间距,去除inline-block间距的方法?及这个问题未来可能的解决方向
A StyleSheet is an abstraction similar to CSS StyleSheets
容器属性
项目属性
relative、absolute、static、fixed的作用,相对谁定位?
默认值。元素使用正常的布局行为,相对于document,即元素在文档流中当前的布局位置。此时top,bottom, left, right 或者 z-index无效。
生成相对定位的元素,相对于本该在文档中的位置。通过top,bottom,left,right的设置相对于其正常(原先本身)位置进行定位。可通过z-index进行层次分级。
生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。可通过z-index进行层次分级。绝对定位可以设置margin,且不会与其他元素合并。
dp(device pixel) 设备像素
dpr(device pixels ratio) 设备像素比
dip(device independent pixel) 逻辑像素
获得设备像素比后,便可得知设备像素与CSS像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个CSS像素。当这个比率为2:1时,使用4个设备像素显示1个CSS像素,当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。
写RN样式,避免过多行内样式,通过创建一个样式表,然后利用ID来引用样式,从而减少频繁创建新的样式对象。
background-color: blue;background-color: yellow;<input type="button" value="变蓝" @click="changeColorT