CSS选择器权重、浮动、定位总结

一、CSS选择器

选择器权重小结:

  • 权重决定了哪一条规则会被浏览器应用在元素上。
  • 权重的不同,是所期望的效果,没有通过css规则在元素上生效的主要原因。
  • 权重的级别划分时包含了所有的css选择器
  • 如果两个选择器作用在同一元素上,则权重高者生效。
  • 权重的级别根据选择器被划分为四个分类:行内样式,id,类与属性,以及元素。
  • 如果两个选择器权重值相同,则最后定义的规则被计算到权重中(后面定度的CSS规则权重要更大,会取代前面的CSS规则)
  • 如果两个选择器权重值不同,则权重大的规则被计算到权重中
  • 如果一条规则包含了更高权重的选择器,那么这个规则权重更高
  • 最后定义的规则会覆盖所有跟前面冲突的规则
  • 内联样式表含有比别的规则更高的权重
  • Id选择器的权重比属性选择器更高
  • 可以使用id来增大权重
  • 类选择器比任意数量的元素选择器都高
  • 通配符选择器跟继承来的样式,他们的权重以 0,0,0,0来计算
  • 可以用css权重计算器来计算权重。

权重等级:

每个选择器在权重级别中都有自己泾渭分明的位置。根据选择器种类的不同可以分为四类,也决定了四种不同等级的权重值。

1、行内样式,指的是html文档中定义的style

行内样式包含在你的html中 对你的元素产生直接作用,比如:

<p class="xml" style="color:red">CSS权重</p>

2、ID选择器

Id也是元素的一种标识,比如#div

3、类,属性选择器和伪类选择器

这一类包括各种class,属性选择器,伪类选择器比如 :hover,:focus等等。

4、元素和伪元素

元素跟伪元素选择器,比如:before 与 :after.

怎么确定权重:

权重记忆口诀。从0开始,一个行内样式+1000,一个id+100,一个属性选择器/class或者伪类+10,一个元素名,或者伪元素+1

二、浮动

浮动的作用:

可以使多个块级元素横向排列,多用于网页布局。

浮动方法:

为元素添加float:left/right;

浮动特征:

1.按照一个指定的方向移动,遇到父级的边界或者其他的元素停下来
2.块元素可以在一行显示,宽由内容撑起来
3.行内元素支持设置宽高
4.脱离文档流 float不是完全脱离文档流的
块元素 :对于块元素,后面未浮动的元素所占的位置是浮动元素的位置 注意:内容会把浮动元素的位置保留,
行内元素:行内元素会接着浮动元素显示,内容会形成环绕浮动元素的样子
5.造成父级塌陷(破坏性)

清除浮动方法:

1.结尾处加空div标签 clear:both (或在下一个元素上加clear:both;)
2.父级div定义 伪元素:after(content: " "; clear: both; display: block;)
3.父级div定义 overflow:hidden

三、定位

定位方法一共有三种:

display:fixed;/*固定定位,相对浏览器定位*/
display:relative;/*相对定位,相对自己原来的位置定位*/
display:absolute/*绝对定位,相对父类盒子定位*/
固定定位:

默认情况下,可定位于相对于浏览器窗口的指定坐标。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。不论窗口滚动与否,元素都会留在那个位置。但当祖先元素具有transform属性且不为none时,就会相对于祖先元素指定坐标,而不是浏览器窗口。

相对定位:

生成相对定位的元素,相对于该元素在文档中的初始位置进行定位。通过 “left”、”top”、”right” 以及 “bottom” 属性来设置此元素相对于自身位置的偏移,偏移前的位置保留不动。

绝对定位:

其他元素就会认为这个元素不存在于文档流中而填充它原来的位置。绝对定位元素根据它的参照物移动自己的位置,而参照物则需要根据它祖先元素的定位设置来确定
所谓根据它祖先元素的定位设置来确定简单理解为:相对于该元素最近的已定位的祖先元素,如果没有一个祖先元素设置定位,那么参照物是body层。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容