Vue2 CSS小知识点

1.1 CSS

1.1.1 选择器

1.常用选择器

  • id选择器(#box)——选择id为box的元素
  • 类选择器(.one) ——选择类名为one的所有元素
  • 标签选择器(div)——选择标签为div的所有元素
  • 后代选择器(#box div)——选择id为box元素内部所有的div元素 // 包括儿子孙子等所有后代
  • 子选择器(.one > one_1)——选择父元素为.one的所有.one_1的元素 // 只包括儿子

2.伪类选择器

  • :link——选择未访问的链接
  • :visited——选取已被访问的链接
  • :active——选择活动链接
  • :hover——鼠标指针浮动上面的元素
  • :focus——选择具有焦点的
  • :first-child——父元素的首个子元素

在元素选择器上加入伪类改变元素状态,它是在已有元素上加的,不会产生新的元素,如鼠标悬浮点击样式。

3.伪元素选择器

  • ::before——选择器在被选元素的内容前面插入内容
  • ::after——选择器在被选元素的内容后面插入内容

在内容元素的前后插入额外的元素或样式,但这些元素并不在Dom文档中,只在外部显示可见

优先级规则:

!important > 行内样式 > id选择器 > 类选择器 > 标签选择器 > 通配符选择器 > 继承

如果优先级相同,则最后出现的样式生效

1.1.2 隐藏元素的方法
  • display:none——直接彻底消失,不会占用空间,无继承性;元素本身占有的空间就会被其他元素替代,会导致浏览器的回流和重绘。

  • visibility:hidden——仅仅是隐藏该元素,还占据页面空间且样式都在,但无法响应点击事件,会产生重绘但不会回流。

  • opacity:0——让元素透明度为0使其不可见,占据页面空间,可以响应点击事件。

  • overflow:hidden——该元素的内容若超出了给定的宽度和高度属性,那超出的部分将会被隐藏不占有位置。

  • position:absolute——通过使用绝对定位,设置足够大的偏移量将元素移除可视区域外

1.1.3 居中

行内元素: text-align: center

flex布局: display:flex;justify-content:center;align-items:center;

1.1.4 布局

1.两栏布局

概念:左边一栏宽度固定,右边一栏宽度自适应,且左右两边不能重叠

  • 使用float左浮左边栏
  • 右边模块使用margin-left撑出块做内容展示
  • 为父级元素添加BFC,防止元素飞到上方内容左右两栏宽度固定,中间自适应的布局

2.三栏布局

概念:左右两栏宽度固定,中间自适应的布局

  • 利用浮动,左右两栏设置固定大小,并分别设置左右浮动。中间一栏设置左右两个方向的margin值
  • 利用绝对定位,左右两栏设置为绝对定位,中间设置对应方向大小的margin的值
  • 利用flex布局,左右两栏设置固定大小,中间一栏设置为flex:1

3.flex布局

定义:灵活高效地实现居中、对齐等有规律的弹性布局,采用flex布局的元素称为flex容器,容器内的子元素称为项目。

容器属性

  • flex-direction——决定主轴的方向
  • flex-warp——决定容器内项目是否可换行
  • justify-content——定义了项目在主轴上的对齐方式
  • align-items——定义项目在侧轴上的如何对齐
  • align-content——定义了多根轴线的对齐方式

项目属性

  • flex-grow——定义项目的放大比例,默认为0
  • flex-shrink——定义了项目的缩小比例,默认为1
  • flex-basis——定义了元素在主轴上的初始尺寸
  • flex——为以上三个的简写,默认0 1 auto

flex: 1表示自动填充剩余空间,布局最后一个盒子时使用flex:1便可得到整个剩余宽度

1.1.5 BFC

概念:块级格式化上下文,实现一个独立的容器,里面的子元素与外面的元素不会相互影响。

哪些元素会生成bfc:

  • 对父元素设置overflow:hidden
  • 元素设置绝对定位或固定定位
  • 元素设置浮动
  • flex或行内元素布局

特点

  • BFC是一个块级元素,一行只能有一个
  • BFC是页面中的一个隔离的独立容器,容器里的标签不会影响到外部标签
  • 垂直方向的距离由margin控制, bfc内部的元素外边距会发生重叠,实际距离取值更大的

解决的问题

  • ⾼度塌陷的问题:如对⼦元素设置浮动后,⽗元素的⾼度变为0。只需对⽗元素触发BFC,如设置溢出隐藏
  • 决margin的重叠问题:BFC是⼀个独⽴的区域,内部的元素不受外部影响,将两个元素都设为BFC,就解决了margin重叠的问题,如两个p标签之间的margin有重叠:在p外面包裹一层容器,并触发这个容器生成一个BFC,那么两个p就不属于同一个BFC
  • 创建⾃适应两栏布局:左侧设置 float:left ,右侧设置 overflow: hidden 。这样右边就触发了BFC,BFC的区域不会与浮动元素发⽣重叠,所以两侧就不会发⽣重叠
上一篇:手机App防沉迷系统C卷(Java&&Python&&C++&&Node.js&&C语言)


下一篇:ubuntu : 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。