我是靠谱客的博主 阳光眼神,最近开发中收集的这篇文章主要介绍css 常见知识点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 怪异盒模型
    • 1.css选择器
    • 块元素 行内块元素 内联元素
    • 2.清除浮动
    • 3.BFC
    • 4.定位区别
      • 相对定位 position:relative
      • 绝对定位 position:absolute
      • 固定定位 position:fixed
      • 粘性定位 position:sticky
    • 5.垂直居中
      • 1.定位设置
      • 2D偏移垂直居中
      • 弹性盒垂直居中
    • 5.弹性盒
      • flex复合属性
      • 常见属性
    • 6 左边固定,右边自适宜
    • 移动端适配
    • 媒体查询
      • em
      • rem
      • vw、vh
      • 插件
    • 8.渐进增强和优雅降级的区别

怪异盒模型

标准盒模型转换怪异盒模型
box-sizing: border-box;

1.css选择器

 X:first-child			匹配子集的第一个元素。IE7就可以支持
 X:last-child			匹配父元素中最后一个X元素
 X:nth-child(n)		用于匹配索引值为n的子元素。索引值从1开始
 X:nth-last-child(n)	从最后一个开始算索引。
 X:first-of-type		匹配同级兄弟元素中的第一个X元素
 X:last-of-type			匹配同级兄弟元素中的最后一个X元素
 X:nth-of-type(n)		匹配同类型中的第n个同级兄弟元素X
 X:only-of-type			匹配属于同类型中唯一兄弟元素的X
 X:nth-last-of-type(n)	 匹配同类型中的倒数第n个同级兄弟元素X

https://segmentfault.com/a/1190000013745407

块元素 行内块元素 内联元素

块元素

hr 
p  
h1-h6
div
ul
ol
li 
form
      1、自动换行,独占一行,上下排列
      2、可以设置宽高
      3、块元素可以包裹块元素和内联元素 (有个别标签特殊,p ,h1~h6,dt)
      4、块元素可以设置4个方向的margin和padding
      5、如果块元素不设width,块元素的宽度就是父元素的宽度,但是浮动后,块元素的宽度就由内容撑开

行内块元素
(置换元素,可变元素)

img、input   td
        1、水平显示,不会自动换行
        2、行内块元素可以设置宽高
        3、行内块元素嵌套内联
        4、4个方向的margin和padding都能设置
  		5  默认有空隙

内联元素

b strong
i em
u
sub sup
span
     1、一行显示多个,不会自动换行
     2、内联元素的宽高由内容撑开,设置不上宽高 
     3、内联元素只能嵌套内联
     4、内联元素只能设置左右的margin和padding,上下方向会有问题
     5、设置浮动后,对于内联元素会有影响,内联元素也能设置宽高
display: inline-block;转换为行内块元素,display: block;转换为块元素

2.清除浮动

浮动:浮动后的元素会脱离文档流不占位置

1.父元素设置高度隔开
    
2.overflow:hidden可以撑起盒子的高度, 所以可以直接设置margin属性
    
3.在父元素中,追加空子元素,并设置其clear属性为both
    注:使用clear:both之后margin属性会失效, 所以不常用

4.使用内容生成的方式清除浮动

.clearfix:after {
   content:"."; //生成内容为空
   display: block; //转换为块级元素
   clear:both; // 清除前面元素带来的影响
}

5.双伪元素清除浮动

不仅可以清除浮动,也可以解决高度塌陷的问题(给父盒子添加类名clearfix)
        .clearfix:before,
        .clearfix:after {
            display: table;
            content: "";    /*不用有内容也可以*/
        }

        .clearfix:after {
            clear: both;
        }

        .clearfix {
            *zoom: 1;
        }

3.BFC

BFC 就是一个独立的渲染区域,规定了块元素如何排版布局

布局规则

1,内容   上下排列。垂直显示
2,同一个bfc区域的两个盒子,上下的margin会重叠,
3,盒子左边的margin 和盒子左边边框会接触
4,浮动区域和bfc区域不会重叠
5,每一个bfc都是一个独立的容器,相互之间互不影响
6、在BFC区域内容,浮动元素也产于高度计算    

触发条件

1,标签           html根元素
2,属性
3,浮动           float:left/right
4,定位           position:absolute/fixed
5,元素类型转换    display:inline-block/table-cell/table-caption/inline-flex/flex
6,内容溢出设置    overflow:hidden/auto/scroll(最常用)

BFC的应用

 1、自适应两栏布局
 2、清除内部浮动,解决高度塌陷 (BFC区域内,浮动元素也参与高度计算)
 3、防止margin上下重叠

4.定位区别

相对定位 position:relative

1、占位,没有脱离文档流
2、相对定位的位置是相对原位置移动

绝对定位 position:absolute

1、不占位
2、绝对定位位置移动的参照物先找定位父元素(推荐使用相对定位),
如果没有定位父元素,再找浏览器窗口为位置移动的参照物。

固定定位 position:fixed

 1、不占位 (固定在浏览器可视图区域, 不占位,不会随着滚动条滑动而移动位置)
 2、始终以浏览器的可视区为位置移动的参照物

粘性定位 position:sticky

1.占位
2.,当滚动条没有划过内容的时候,类似相对定位,占位的效果,当滚动条划过内容,内容会有绝对定位的效果。类似于固定定位

5.垂直居中

水平居中
在这里插入图片描述

1.定位设置

   position:absolute
   left:50%;
   top:50%;
   margin-left:-(自身宽度的一半);
   margin-top:-(自身高度的一半);
   position:absolute
   left:0;
   right:0;
   top:0;
   bottom:0;
   margin:auto; 

2D偏移垂直居中

   left:50%
   top:50%
   transform:translate(-50%,-50%)

弹性盒垂直居中

   父:display:flex
   子:margin:auto
  	 display: flex;
     // flex-direction: column;
     align-items:center;
     justify-content: center;

5.弹性盒

flex复合属性

flex: 0 1 auto 默认值

1.flex-grow (扩展),默认为 0,即如果存在剩余空间,也不放大。
2.flex-shrink (收缩),默认为 1,即如果空间不足,该项目将缩小。
3.flex-basis (项目的长度) 在分配多余空间之前,项目占据的主轴空间,相当于我们设置的width,

 缩写「flex: 1」, 则其计算值为「1 1 0%」相当于可扩大,可缩小,自动填充满剩余空间
    「flex: auto」, 则其计算值为「1 1 auto」相当于可扩大,可缩小,
    
    「flex: 0」, 则其计算值为「0 1 0%」  相当于不可扩大,可缩小,表现形式为最小内容宽度
    「flex: none」, 则其计算值为「0 0 auto」不可扩大,不可缩小,内容本身的宽度是多少就是多少

flex布局中flex:1和flex:auto的区别

flex: 1   不管内容多少,一般都是平分空间,空间大小都一致
flex: auto  根据内容的大小来分,不是均分的(除非内容都是一样,才均分)。

所以: flex:1 更适合在等比例列表时使用,
	  flex:auto适用于元素充分利用剩余空间,比如头部导航文字多少不一致时使用

常见属性

flex-direction
  	X水平排列
      row          x轴方向顶端对齐(默认值)
      row-reverse  x轴方向底端对齐

    Y垂直排列
      column          y轴的顶端对齐
      column-reverse  y轴的底端对齐

主轴方向上的对齐方式

justify-content
      flex-start    主轴顶端对齐
      flex-end      主轴底端对齐
      center        主轴居中对齐
      space-between 两端对齐,中间距离自适应
      space-around  内容左右的间距一样,类似左右margin的效果
      space-evenly  所有的距离都相等

侧轴对齐

align-items
      flex-start   侧轴顶端对齐,取消行间距
      flex-end    侧轴底端对齐 取消行间距
      center      侧轴居中,取消行间距
      space-between   两端对齐,上下间距自适宜(顶端和底端对齐,)
      space-around     每个盒子两边都有距离
      space-evenly    所有的距离都相等

6 左边固定,右边自适宜

浮动
1左边浮动,右边正常,父元素设置padding-left:左宽度

**flex布局**
左边宽度固定,右边flex:1

**利用BFC**
左边浮动,右边overflow:hidden

**负margin方法**
左右给inline-block 右边给padding-left:200px,
margin-left:-200px,box-sizing:border-box

**position方法**
左侧:position:relative;z-index:1
右侧:position:absolute,right:0,top:0
padding-left:200px,width:100%

移动端适配

媒体查询

em

1. em的值并不是固定的;
2. em会继承父级元素的字体大小。如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸

rem

当设备尺寸发生改变的时候,等比例适配当前设备

相对于HTML根元素的字体大小 来计算的长度单位

rem + 媒体查询 +less技术

1.实现选一套标准,比如iPhone6/7的 750为准
2.屏幕除以划分的分数,得到HTML里面的文字大小
3. 页面元素的rem值 = 页面元素值(px)/html的字体大小

vw、vh

1.vw是相对视口(viewport)的宽/高度而定的,长度等于视口宽度的1/100

插件

postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem
文档:https://github.com/cuth/postcss-pxtorem

lib-flexible 用于设置 rem 基准值
文档:https://github.com/amfe/lib-flexible

参考:https://blog.csdn.net/Aaa_Liao/article/details/106986260

8.渐进增强和优雅降级的区别

区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,
能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;
而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

最后

以上就是阳光眼神为你收集整理的css 常见知识点的全部内容,希望文章能够帮你解决css 常见知识点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部