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)

 

**浮动详解**

 


 

posted @ 2021-01-24 20:04  =小王=  阅读(89)  评论(0编辑  收藏  举报