zoukankan      html  css  js  c++  java
  • Day2

    Day 2


     

    1-css 中的 px em rem 长度单位的区别?

    2-css3 新增伪类有哪些?并说明

    3-说明 css 选择器优先级顺序及判定标准

    4-position 几个属性的作用?

    5-绝对定位和固定定位的区别?

    6-浮动的作用和影响

     


     

     

    1-css 中的 px em rem 长度单位的区别?

    px

    px就是pixel像素的缩写,相对长度单位,网页设计常用的基本单位。像素px是相对于显示器屏幕分辨率而言的

    em

    em是相对长度单位。相对于当前对象内文本的字体尺寸(参考物是父元素的font-size)
    如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸
    特点:
      1. em的值并不是固定的;
      2. em会继承父级元素的字体大小

    rem

    rem是CSS3新增的一个相对单位,rem是相对于HTML根元素的字体大小(font-size)来计算的长度单位
    如果你没有设置html的字体大小,就会以浏览器默认字体大小,一般是16px

    html{font-size: 62.5%} /* 10 ÷ 16 × 100% = 62.5% */

    body{font-size: 1.4rem;} /* 1.4 × 10px = 14px */

    /*在根元素中定义了一个基本字体大小为62.5%(也就是10px。

    设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )*/

     

      px-em转换网址

      像素比: dpr = 物理像素/css像素 = 1、2、3 即为一倍屏、二倍屏和三倍屏
       获取设备的dpr:通过window.devicePixelRatio 来查看设备的像素比。

     

    vw、vh

    vw、vh、vmax、vmin这四个单位都是基于视口

     

    vw是相对视口(viewport)的宽度而定的,长度等于视口宽度的1/100
    假如浏览器的宽度为200px,那么1vw就等于2px(200px/100)

     

    vh是相对视口(viewport)的高度而定的,长度等于视口高度的1/100
    假如浏览器的高度为500px,那么1vh就等于5px(500px/100)

     

    vmin和vmax是相对于视口的高度和宽度两者之间的最小值或最大值

    /* 如果浏览器的高为300px、宽为500px,那么1vmin就是3px,1vmax就是5px;

    如果浏览器的高为800px,宽为1080px,那么1vmin也是8px,1vmax也是10.8px */

    其他单位:
    %(百分比)

    一般来说就是相对于父元素
    1、对于普通定位元素就是我们理解的父元素
    2、对于position: absolute;的元素是相对于已定位的父元素
    3、对于position: fixed;的元素是相对于ViewPort(可视窗口)

    vm

    css3新单位,相对于视口的宽度或高度中较小的那个
    其中最小的那个被均分为100单位的vm
    比如:浏览器高度900px,宽度1200px,取最小的浏览器高度,1 vm = 900px/100 = 9 px
    缺点:兼容性差


    常见问题:

    1、假如使用em来设置文字大小要注意什么?
    注意父元素的字体大小,因为em是根据父元素的大小来设置的。
    比如同样是1.5em,要是父元素是20,那1.5em就是30px.要是父元素是30px,1.5em就是45px(特别是在多重div嵌套里面更要注意)

    2、pc pt ch一般用在什么场景?
    这些我们网页设计基本上用不到,在排版上会有用处

    3、如何使 1rem=10px
    在设置HTML{font-size:62.5%;}即可

    4、如果父元素没有指定高度,那么子元素的百分比的高度是多少?
    会按照子元素的实际高度,设置百分比则没有效果

     


     

     

    2-css3 新增伪类有哪些?并说明

    伪类的效果可以通过添加一个实际的类来达到,而

    伪元素的效果则需要通过添加一个实际的元素才能达到,

    这也是为什么他们一个称为伪类,一个称为伪元素的原因。

    CSS3新增伪类

     

    新增伪类 作用
    p:first-of-type 选择属于其父元素的首个<p>元素的每个<p>元素。
    p:last-of-type 选择属于其父元素的最后<p>元素的每个<p>元素。
    p:only-of-type 选择属于其父元素唯一的<p>元素的每个<p>元素。
    p:only-child 选择属于其父元素唯一的子元素的每个<p>元素。
    p:nth-child(n) 选择属于其父元素的第n个子元素的每个<p>元素。
    p:nth-last-child(n) 选择属于其父元素的倒数第n个子元素的每个<p>元素。
    p:nth-of-type(n) 选择属于其父元素第n个<p>元素的每个<p>元素。
    p:nth-last-of-type(n)  选择属于其父元素倒数第n个<p>元素的每个<p>元素。
    p:last-child 选择属于其父元素最后一个子元素的每个<p>元素。
    p:empty 选择没有子元素的每个<p>元素(包括文本节点)。
    p:target  选择当前活动的<p>元素。
    :not(p) 选择非<p>元素的每个元素。
    :enabled 控制表单控件的可用状态。
    :disabled  控制表单控件的禁用状态。
    :checked  单选框或复选框被选中。

                  伪类

    伪类 作用
    :hover 将样式添加到鼠标悬浮的元素
    :active 将样式添加到被激活的元素
    :focus 将样式添加到获得焦点的元素
    :link 将样式添加到未被访问过的链接
    :visited 将样式添加到被访问过的链接
    :first-child 将样式添加到元素的第一个子元素
    :lang 定义指定的元素中使用的语言

          简介图:

     


     

        

     

     


     

     

     

    3-说明 css 选择器优先级顺序及判定标准

      由高到低:

    0.元素内style(style=“color: purple”>)

    1.id选择器(#myid)

    2.类选择器(.myclass)

    3.标签选择器(div,h1,p)

    4.子选择器(ul < li)

    5.后代选择器(li a)

    6.伪类选择(a:hover,li:nth-child)

    还有一个重点要注意:!important优先级最高,高于上面一切。*选择器最低,低于一切。

    !important的用法:

    .testClass{ color:blue !important; }

    在CSS2中引入了一些属性选择器,而CSS3在CSS2的基础上对属性选择器进行了扩展,新增了3个属性选择器,使得属性选择器有了通配符的概念

         优先级计算         四中选择器(归类)

     

     


     

     

    4-position 几个属性的作用?

    
    

    1. position: relative;相对定位

    1> 不影响元素本身特性(无论区块元素还是内联元素会保留其原本特性)

    2> 不会使元素脱离文档流(元素原本位置会被保留,即改变位置也不会占用新位置)

    3> 没有定位偏移量时对元素无影响(相对于自身原本位置进行偏移)

    4>提升层级(用z-index样式的值可以改变一个定位元素的层级关系,从而改变元素的覆盖关系,值越大越在上面,z-index只能在position属性值为relative或absolute或fixed的元素上有效。)  (两个都为定位元素,后面的会覆盖前面的定位)

    2. position: absolute;绝对定位

    1> 使元素完全脱离文档流(在文档流中不再占位)

    2> 使内联元素在设置宽高的时候支持宽高(改变内联元素的特性)

    3> 使区块元素在未设置宽度时由内容撑开宽度(改变区块元素的特性)

    4> 相对于最近一个有定位的父元素偏移(若其父元素没有定位则逐层上找,直到document——页面文档对象)

    5> 相对定位一般配合绝对定位使用(将父元素设置相对定位,使其相对于父元素偏移)

    6> 提升层级(同相对定位)

    3. position: fixed;固定定位

      fixed生成固定定位的元素,相对于浏览器窗口进行定位。

    4. position:static默认值

    默认布局。元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

    5. position: sticky 粘性定位

    粘性定位,该定位基于用户滚动的位置。

    它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

    注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix 。

    6. position: inherit

    规定应该从父元素继承 position 属性的值。

    7. posiyion: initial

    设置该属性为默认值,详情查看CSS initial 关键字

    initial 关键字用于设置 CSS 属性为它的默认值。

    initial 关键字可用于任何 HTML 元素上的任何 CSS 属性。

     

     


     

     

    5-绝对定位和固定定位的区别?

    固定定位也是绝对定位的一种,拥有绝对定位的大部分特点

    固定定位永远都会相对于浏览器窗口进行定位  ,固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动,IE6一下不支持固定定位 

    例如漂浮的客服,回到顶部。

     

     

     

     

    6-浮动的作用和影响

    所有的内容都是占位的,正常情况下:(文档流)
        块元素:上下显示,独占一行
        内联元素:水平排列,左右显示

    作用:
      浮动改变块元素的排列方式,让内容从上下排显示成水平显示。
    同时了解float的属性值:
        left 左浮动
        right 右浮动
        none 不浮动
      
     影响:    浮动元素会脱离文档流,不占位,盒子重叠,内容不重叠;
        如果想要内容都水平排列,需要所有的盒子都设置浮动

       浮动不占位的副作用只会同级之间产生,浮动的副作用都是往下影响,不会影响上边的盒子

    *内联元素又名行内元素 (inline element)

     

    **浮动详解**

     


     

  • 相关阅读:
    gdbinit理解
    debug套路
    node 版本升级
    工作方式
    vscode 插件编写
    函数闭包与装饰器
    高阶函数与递归
    函数嵌套及作用域
    函数
    文件处理
  • 原文地址:https://www.cnblogs.com/wy252/p/14322091.html
Copyright © 2011-2022 走看看