46——71,78——83笔记

一、CLASS选择器

1、ID选择器

  • #elem{}            id="elem"

注:

  1. ID是唯一值,在一个页面中只能出现一次,出现多次是不符合规范的。
  2. 命名的规范:由字母、下划线、中划线、字母(并且第一个不能是数字)
  3. 驼峰写法:searchButton(小驼峰)、seachBotton(大驼峰)、searchSmallButton                                        短线写法:search-small-button                    下划线写法:search_small_button

2、CLASS选择器

  •      .elem{}       class="elem"

注:

  1. CLASS选择器是可以复用的。
  2. 可以添加多个class样式。
  3. 多个样式的时候,样式的优先级根据css决定,而不是class属性中的顺序。
  4. 标签+类的写法(p.box:p是标签,.box是class的具体标签名)

3、标签选择器(TAG选择器)

  • div{}             <div></div>
  • 使用的场景:
  1. 去掉某些标签的默认样式时
  2. 复杂的选择器中,如  层次选择器

4、群组选择器(分组选择器)

  • 可以通过添加逗号的方式,给多个不同的选择器添加统一的CSS样式,来达到代码的复用。

例:CSS:div,p,span{}   

 

5、通配选择器

  • *{  }    -->  div,ul,li,p,h1,h2....{}

注:劲量避免使用通配选择器,因为会给所有的标签添加选择样式,慎用。

使用的场景:

①去掉所有标签的默认样式时

 

6、层次选择器

  • 后代    M   N  {    }
  • 父子    M>N  {    }
  • 兄弟    M~N   {    }当前M下的N标签
  • 相邻    M+N   {    }当前M下面相邻的N标签

 

7、属性选择器

  •  

 335e481a749642d69c9888304c80cfba.jpg

 

  • M[attr]  { }
  • =:完全匹配
  • *=:部分匹配
  • ^=:起始匹配
  • $=:结束匹配
  • [  ]  [  ]  [  ]:组合匹配

 

8、伪类选择器

    1)    M:伪类{  }

  •   :link    访问前的样式(只能添加给a标签)
  •   :visited 访问后的样式(只能添加给a标签)
  •   :hover 鼠标移入时的样式(能添加给所有标签)
  •   :active   鼠标按下时的样式(能添加给所有标签)

注:

一般的网络都只设置

a{}  (link visited active)     a:hover

 

      2)

  • :after 、:before                                              通过伪类的方式给元素添加一段文本内容,使用content属性
  • :checked、:disabled:、:focus(光标点击后变化)           都是针对表单元素的

 

     3)结构性伪类选择器

  • nth-of-type()    nth-child()->脚标

它们之间的区别:

type:类型

child:孩子

    ①  脚标是从1开始的,1表示第一项,2表示第二项。

 n表示从0到无穷,2n表示偶数行,2n+1表示奇数行

  • first-of-type:
  • last-of-type:
  • only-of-type:

 

 

 

二、CSS样式的继承

 

1)

  • 文字相关的样式可以被继承
  • 布局相关的样式不能被继承(磨人是不能被继承的,但可以设置继承属性       inherit  值   )

 

 

三、CSS的优先级

1)

  • 相同样式优先级:

       当设置相同样式时,后面的优先级较高,但不         建议出现重复设置样式的情况。

<style>

div{ color:red;}

div{ color:blue;}

</style>

 此时文字颜色为蓝色

 

  • 内部样式与外部样式优先级:

       内部样式与外部样式优先级相同,如果都设置         了相同样式,那么后写的引入方式优先级高。

 

 

  • 单一样式优先级:

style行间>id>class>tag(标签)>*(通配)>继承

 

 

注:(权重代表等级)

style行间  权重   1000

id             权重    100

class         权重    10

tag           权重      1

 

 

 

2)

  • !important

       提升样式优先级,非规范方式,不建议使用

       并且不能对继承的属性进行优先级的提升

id类:#elem{color:red;}

变成#elem{color:red  !important;}

后,其优先级比style高

 

  • 标签+类>单类优先级

 

 

  • 群组优先级

      群组选择器与单一选择器的优先级相同时,靠后的优先级高

 

  • 层次优先级
  1. 权重比较:                                                    ul         li         .box        p       input{ }              →  1+1+10+1+1                                                                                                          .hello      span    #elem{ }                           →10+1+100                                                    
  2. 约分比较:

        ul         li         .box        p       input{ }   

        .hello      span    #elem{ }                           

↓约分为

        li p input{ }

        #elem{ } 

 

 

 

 

四、CSS盒子模型

 

  • 组成:

1)

content -> padding -> border ->margin

(物品→填充物→包装盒→盒子与盒子之间的间距)

 

2)content:

① 内容区域   ②  width 和 height 组成

 

3)padding:

①内边距(内填充)

②只写一个值:30px(上下左右);

   写两个值:30px  40px(上下左右);

  写四个值:30px  40px  50px  60px

→(上、下、左、右)。

③单一样式只能写一个值

   padding-left

   padding-right

   padding-top

   padding-bottom

 

4)margin  外填充

 

注:

  1. 背景色填充到margin以内的区域(不包括margin区域)
  2. 文字在content区域添加
  3. padding不能为负数,而margin可以为负数。

 

 

  • box-sizing

1)定义:盒尺寸,可以改变盒子模型的展示形态。

2)默认值:content-box、height  →   content

3)border-box:    width、height  

                        →  content padding  border

4)使用场景:

①不用再去计算一些值

②解决一些100%的问题

 

 

  • 盒子模型的一些问题

1) margin叠加问题

出现在上下margin同时存在的时候,会取上下中值较大的作为叠加的值。

▶解决方案:

   ①BFC规范

   ②想办法只给一个元素添加间距

 2) margin传递

只会出现在嵌套结构中,且只有margin-top会有传递问题,其他三个方向是没有传递问题的。

▶解决方案:

    ①BFC规范

    ②给父容器添加规范

    ③margin 换成 padding

 

  • CSS盒子模型扩展

1)    margin左右自适应(auto)是可以的,但是上下自适应是不行的

2)   width、height不设置的时候,对盒子模型的影响,会自动去计算容器的大小,节省代码。

       

 

 

四、标签分类

  • 按类型

1)、(块)block:div、p、ul、li、h1.....

  1. 独占一行
  2. 支持所有样式
  3. 不写宽的时候,跟父元素的宽相同
  4. 所占区域是一个矩形

2)、(内联)inline:span、a、em、strong、img....

  1. 挨在一起
  2. 有些样式不支持(width、height、margin、padding)
  3. 不写宽的时候,宽度由内容决定
  4. 所占的区域不一定是矩形
  5. 内联标签之间会有空隙,是有换行引起的

3)、inline-block:input、select....

  1. 挨在一起但是支持宽高

注:布局一般用块标签,修饰文本一般用内联标签

 

  • 按内容

1)、 Flow:流内容

2)、Metadata:元数据

3)、Sectioning:分区

4)、Heading:标题

5)、Phrasing:措辞

6)、Embedded:嵌入的

7)、Interactive:互动的

 

 

  • 按显示划分标签

1)、替换元素:

浏览器根据元素的标签和属性,来决定元素的具体显示内容。

img、input....

2)、非替换元素:

将内容直接告诉浏览器,将其显示出来。

div、h1、p......

 

五、显示框类型

  • display:

1)、block

2)、inline

3)、inline-block

4)、none

注:

display:none是不占空间的隐藏

visiblity:hidden占空间的隐藏

 

五、标签嵌套规范

  • 固有规范

ul  li;

dl  dt  dd;

table  tr  td

  • 块标签可以嵌套内联标签

<div>

         <span></span>

          <a  href="#"></a>

</div>

  • 块标签不一定能嵌套块标签

<div>

          <div></div>

</div>

特殊:

<p>

       <div></div>

</p>

↑这种是不行的,段落内只能出现内联

  • 内联标签不能嵌套块标签

▶错误的写法:

<span>

          <div></div>

</span>

▶特殊情况:

(正确的写法)

<a href="#">

        <div></div>

</a>

▶a里可以嵌套span,但a里不能嵌套a。

 

 

六、溢出隐藏

  • overflow:

1)、visible:默认

2)、hidden:直接裁切

3)、scroll:提供滚动轴

4)、auto:内容多时提供滚动条,内容少就不出现

5)、X轴,Y轴:overflow-x、overflow-y针对两个轴分别设置

 

 

七、透明度与手势

 

  • opacity:0(透明)~1(不透明)→0.5半透明

注:占空间,所有的子内容也会变透明

 

 

  • rgba():0~1

注:可以让指定的样式透明,不针对别的样式

 

 

  • cursor手势

1)、default默认箭头

2)、pionter手势

3)、实现自定义手势

▶   

 准备图片

 cursor:url(./img/cursor.ico),auto

 

八、最大最小宽高

 

  • min-width、min-height

  • max-width、max-height

  • %单位:换算→以父容器的大小进行换算的。

  • 一个容器怎么适应屏幕的高:

 容器加height:100%;body:100%;html:100%;

html,body{height:100%;}

.container{height:100%;}

 

 

九、默认样式

  • 没有默认样式的:div、span

  • 有默认样式的:

▶    ① body(body→margin:8px)

       ②h1→margin:上下  21.440px

               font-weight:bold

       ③p→margin:上下   16px

       ④  ul→margin:上下  16px   padding:左40px

           默认点list-style:disc

       ⑤a→ text-decoration:underline;

 

  • CSS reset

    *{margin:0;padding:0}

▶优点:不用考虑有哪些标签有默认的margin和padding

▶缺点:稍微的影响性能

1)、body,p,h1,ul{margin:0;padding:0}

ul {list-style;none;}

2)、a{ text-decoration:none;color:#666; }06c9efe3982b405e9e04bfa655e79725.jpg

 3)、img{display:block}

问题现象:图片跟容器底部有一些空隙

(内联元素的对齐方式是按照文字的基线对齐的,而不是文字的底线。)

①vertical-align:baseline;基线对齐方式,默认值

②img{  vertical-align:bottom;}解决方式是推荐的

③img{display:block;}

 

4)、写具体页面的时候或一个布局效果的时候

①写结构

②css重置样式

③写具体样式

 

 

 




 

★★★★★★★★★★★★★★★

一、float 浮动

 

  • 文档流

▶文档流是文档中可显示对象在排列时所占用的位置。

  • float特性

▶加浮动的元素,会脱离文档流,会延迟父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动的元素进行排列。

  • float取值

▶left、right、none(默认)

 

  • float注意点

  1. 只会对后面的元素产生影响

  2. 内容默认提升半层

  3. 默认宽根据内容决定

  4. 换行排列

  5. 主要给块元素添加,但也可以给内联元素添加。

 

  • 清除float的方法

  1. 上下排列:clear属性,表示清楚读的left、right、both

  2. 嵌套排列:

①固定宽高:不推荐,不能把高度固定死,不适合做自适应的效果。

②父元素浮动:不推荐,因为父容器浮动也会影响后面的元素。

③overflow:hidden(BFC规范),如果有子元素想溢出,那么会受到影响。

④display:inline-block(BFC规范),不推荐,父容器会影响到后面的元素

⑤设置空标签:不推荐,会多添一个标签

⑥after伪类:推荐,是空标签的加强版,目前各大公司的做法。(clear属性只会操作块标签,对内教联标签不起作用)

eg.

.clear:after{content:" ";clear:both;display:block;}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值