不是吧啊sir,CSS知识点不看看吗

200 阅读3分钟

一、Css选择器分类和权重

1、选择器分类

  • 元素选择器div{}

  • 伪元素选择器 ::before{}

    真实存在的元素

  • 类选择器 .a{}

  • 伪类选择器 :a:hover{}

    元素被选中的状态

  • 属性选择器 [type=button]{}

  • ID选择器 #app{}

  • 组合选择器 [type=button] + a{}

  • 否定选择器 :not(.link){}

  • 通用选择器*{}

2、选择器权重

  • !important 无穷大
  • 行内样式 +1000
  • ID选择器 #app{} +100
  • 类选择器 .a{} +10
  • 伪类选择器 .a:hover{} +10
  • 元素选择器div{} +1
  • 伪元素 ::after{} +1
  • 其他选择器 +0
1. 权重相加不进位
2. 相同的权重,后面写的生效

二、Css布局

1、float浮动+margin

2、inline-block布局

3、flexbox布局

4、 响应式布局

三、样式塌陷

1、外边距合并问题

​ 垂直排列的两个块元素,分别给上面的盒子加向下的外边距和给下面的盒子加向上的外边距,此时会造成外边距合并。

​ 当值相等的时候,间距就是这个值。

​ 当值不相等的时候,谁的值大间距就是那个值。

2、 外边距塌陷问题

​ 嵌套的两个块元素,在给第一个子元素设置向上的外边距时,父盒子会跟着掉下来 ​

解决方案:
方法一:给父元素设置上边框border-top
方法二:给父元素设置overflow:hidden;
方法三: 可以为父元素定义上内边距

3、清除浮动造成的影响

​ 原因:当父元素没有设置高度的时候,子元素加了浮动。因为浮动元素不再占用原文档流的位置,所以父元素会认为没有内容,此时父元素的高度就是0。

在这里插入图片描述

解决方案: 
1.给父元素设置固定高度
2.给父元素设置overflow:hidden.   (根据场景使用)
3.给父元素调用clearfix类名   (最推荐方案)
.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden
}

四、定位

1、相对定位

​ 也叫占位定位,在移动的时候是一个脱离标准流的状态,参考点是以当前自身的位置。

2、绝对定位

​ 绝对定位: 是一个完全脱离标准流的状态。 ​ 默认参考点: left top: 是body的左上; ​ right bottom 是窗口的右下。

3、 相对定位配合绝对定位使用

​ 口诀:子绝父相

  • 子父指的是标签是嵌套关系,子元素是绝对定位,离子元素最近的加了定位属性的祖先元素。
  • 此时子元素left,top的参考点是祖先元素左上
  • 此时子元素right,bottom的参考点是祖先元素右下
* 当元素加了定位属性后,设置宽高起作用
* 层级:z-index 取值范围是整数,默认层级是0
* 当元素加了定位属性后,当层级相同时,后写的标签会压在先写标签的上面,
* 当层级不同时,层级大的压在层级小的上面

五、Css精灵图

​ css精灵也叫 css sprite css雪碧图,是背景图的技术。

​ 服务器的链接资源是有限的,当服务器的链接数饱和时,会造成排队,网页中显示图片需要进行对服务器的链接下载,加载到网页中。所以为了节省服务器的链接的压力,通常将一些小图拼成一张大图,一次性链接进行下载。在通过移动背景图的位置来显示不同元素的所显示的区域。

=======================待更新=========================