前端学习week2

CSS学习

四.文本样式

1.文本缩进

属性名:text-indent
属性值:数字+px(少)或数字+em(1em=当前标签的font-size的大小

2.文本水平对齐方式

属性名:text-align

属性说明
left左对齐
center居中对齐
right右对齐

注意:如果需要让文本水平居中,text-align:center需要给以上元素的父元素设置

3.文本修饰

属性名:text-decoration

属性说明
underline下划线(常用)
line-through删除线(不常用)
overtime上划线(几乎不用)
none无装饰线,消除所有修饰线(常用)

4.元素水平居中

(1)text-align

text-align属性能让文本,span标签,a标签,input标签,img标签水平居中
注意点同文本水平对齐方式

(2)margin: 0 auto

margin: 0 auto属性可以让div,p,h(大盒子)水平居中
注意:如果需要让div,p,h水平居中,直接给当前元素本身设置即可

5.行高

作用:控制行间距(给一行上下增加间距)
属性名:line-height
取值:数字+px或倍数(当前font-size的倍数)
请添加图片描述

应用:

  1. 单行文本垂直居中可以设置 line-height:文字父元素高度
  2. 网页精准布局时,会设置line-height: 1可以取消上下间距

注意点:

  1. 如果同时设置了行高和font连写,注意覆盖问题
  2. font: style weight size/ling-height family

五.Chrome调试工具

1.打开方式

①右击->检查 ②看哪里

2.选择元素

两种常见方法(详见BV1cf4y1j7hL P96)

3.控制样式

①修改属性值 ②添加属性 ③控制样式生效

4.特殊情况

①出现删除线 ②出现小三角

5.小结

图片消失了

六.颜色取值

1.关键词

常见颜色取值:

  1. red
  2. green
  3. blue
  4. orange
  5. skybule

2.rgb表示法

每项取值范围:0~255
常见颜色取值:

  1. rgb(255,0,0)(红色)
  2. rgb(0,255,0)(绿色)
  3. rgb(0,0,255)(蓝色)
  4. rgb(0,0,0)(黑色)
  5. rgb(255,255,255)(白色)

3.rgba表示法

a表示透明度
a的取值范围:0~1
1:完全不透明
0:完全透明
e.g.:rgb(255,0,0,0.5)
注:0.5可以写成.5

4.十六进制表示法(项目常用)

图片消失了

省略写法:如果三组中,每组数字都相同,此时每组可以省略只写一个数字
常见取值:

  1. #000(黑色)
  2. #fff(白色)

七.选择器进阶

1.后代选择器(复合选择器)

作用:选择父元素后代中的元素
选择器语法:选择器1 选择器2 {css}
e.g.: .class p{color: red}
注意点:

  1. 后代包括儿子,孙子,重孙子…
  2. 后代选择器中,选择器与选择器之间通过空格隔开

2.子代选择器(复合选择器)

选择器语法:选择器1>选择器2{css}
注意点:

  1. 子代只包括儿子
  2. 子代选择器中,选择器与选择器之间通过大于号隔开

3.并集选择器

作用:同时选择多个标签
选择器语法:选择器1,选择器2{css}
注意点:

  1. 并集选择器中的选择器可以是复合选择器
  2. 并集选择器中的选择器通常一行写一个,提高代码的可读性

4.交集选择器(多)

作用:选中页面中同时满足多个选择器的标签
选择器语法:选择器1选择器2
注意点:

  1. 交集选择器中的选择器之间没有任何东西
  2. 交集选择器中如果有标签选择器,标签选择器必须写在最前面

5.emmet语法

作用:通过简写语法,快速生成代码
语法:
请添加图片描述

6.hover伪选择器

作用:选中鼠标悬停在元素上的状态,设置样式
选择器语法:选择器:hover {css}
注意:伪类选择选中的元素的某种状态

八.背景相关属性

1.背景颜色

属性名:backgroung-color(bgc)
属性值:关键词,rgb都可以
注意点:

  1. 背景颜色默认是透明:rgba(0,0,0,0),transparent
  2. 设置背景颜色方便看清盒子的大小和位置,一般在布局中习惯先给盒子设置背景颜色

2.背景图片

属性名:background-image(bgi)
属性值:url(“路径”)
注意点:

  1. 背景图片中url中可以省略引号
  2. 背景图片默认是在水平和垂直方向平铺的
  3. 背景图片仅仅给盒子起装饰效果,类似于背景颜色,不能撑开盒子

3.背景平铺

属性名:background-repeat(bgr)

属性说明
repeat(默认值)水平和垂直方向都平铺
no-repeat不平铺(多)
repeat-x沿着水平方向平铺
repeat-y沿着垂直方向平铺

4.背景位置

属性名:background-position(bgp)
属性值:background-position: 水平方向位置 垂直方向位置
详解:
请添加图片描述

注意:方位名词取值和坐标取值可以混合使用

5.背景相关属性连写

属性名:background
属性值:background: color image repeat position(推荐)
省略问题:都可以省略
注意,如果需要同时设置单独和连写形式

  1. 要么把单独的样式写在连写的下面
  2. 要么把单独的样式写在连写的里面

6.img标签和div标签+背景图片的区别

img标签是一个标签,不设置宽高默认以原尺寸显示
div标签+背景图片需要设置div的宽高,因为背景图片只是装饰的css样式,不能撑开div标签

九.元素显示模式

1.块级元素

属性:display: block
代表:div,p,h系列,li,dl,dt,dd,form,header,nav,footer
特点:

  1. 一个占一行
  2. 宽度默认是父元素的宽度,高度默认由内容撑开
  3. 可以设置宽高

2.行内元素

属性:display: inline
代表:a,span,b,u,i,s,strong,ins,em,del
特点:

  1. 一行可以显示多个
  2. 宽度和高度默认由内容撑开
  3. 不可以设置宽高

3.行内块元素

属性:disply: inline-block
代表:input,textarea,button,select,img(img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline)
特点:

  1. 一行可以显示多个
  2. 可以设置宽高

4.元素显示模式转换

目的:改变元素默认的现实特点,让元素复合布局要求
语法:

属性说明
display: block转换成块级元素(多)
display: inline-block转换成行内块元素(多)
display: inline转换成行内元素(少)

5.HTML嵌套规范

  1. 块级元素一般可以作为大容器,可以嵌套:文本,块级元素,行内元素,行内块元素等等
  2. 但是:p标签中不要嵌套div,p,h等块级元素
  3. a标签内部可以嵌套任何元素
  4. 但是:a标签不能嵌套a标签

6.居中方法总结

图片消失了

十.CSS三大特性

1.继承性

特性:子元素有默认继承父元素样式的特点(子承父业)
可以继承的常见属性:

  1. color
  2. font-style,font-…
  3. text-indent,text-align
  4. line-height
图片消失了

注意点:可以通过调试工具判断样式是否可以继承

应用场景
  1. 可以直接给ul设置list-style:none可以去除无序列表的小圆点
  2. 统一不同浏览器默认文字大小,直接给body标签设置统一的font-size
继承失效的特殊情况

如果元素有浏览器默认样式,此时继承性依然存在,但是优先显示浏览器的默认样式:

  1. a标签的文字颜色会继承失效
  2. h系列标签的font-size会继承失效
  3. div标签的高度不能继承,但是宽度有类似于继承的效果

2.层叠性

特性:

  1. 给同一个标签设置不同的样式,此时样式会层叠叠加,会共同作用在标签上
  2. 给同一个标签设置相同的样式,此时样式会层叠覆盖,最终写在最后的样式会生效

注意:当样式冲突时,只有当选择器优先级相同时,才能通过层叠性判断结果

3.优先级

特性:不同选择器具有不同的优先级,优先级高的选择器样式会覆盖优先级低的样式
公式: 继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
注意点:

  1. !important写在属性值的后面,分号的前面
  2. !important不能提升继承的优先级,只要是继承优先级就最低
  3. 实际开发中不建议使用!important

4.权重叠加计算

图片消失了

比较规则:

  1. 先比较第一级数字,如果比较出来了,之后的统统不看
  2. 如果第一级数字相同,则比较第二级数字
  3. 如果最终数字都相同,则比较层叠性

注意点:!important如果不是继承,则权重最高

十一.工具

1.Chrome调试工具

流程:
请添加图片描述

2.PxCook的基本使用

图片消失了

十二.盒子模型

1.盒子模型的组成

盒子:页面中的每一个标签,都可以看作一个盒子
CSS中规定每个盒子分别由:内容区域(content),内边距区域(padding),边框区域(border),外边距区域(margin)构成
请添加图片描述

2.内容区域的宽度和高度

利用width和height属性默认设置是盒子内容区域的大小
常见取值:数字+px

3.border相关属性的介绍

属性说明
border-width控制边框粗细,取值为数字+px
border-style(不可省略)控制边框样式,取值为实线(solid)或虚线(dashed)或点线(dotted)
border-color颜色取值
连写形式

属性名:border(bd)
属性值:单个取值的连写,取值之间以空格隔开

边框的单方向设置

属性名:border-方位名词
属性值:连写的取值

4.padding取值介绍

属性名:padding

取值说明
padding: 10px;上下左右都设置为10
padding: 10px 20px;上下设置为10,左右设置为20
padding: 10px 20px 30px;上设置为10,左右设置为20,下设置为30
padding: 10px 20px 30px 40px;上设置为10,右设置为20,下设置为30,左设置为40

记忆规则:从上开始赋值,然后顺时针赋值,如果设置赋值的,看对面的

padding的单方向取值

属性名:padding - 方向名词
属性值:数字+px

5.盒子实际大小的终极公式

size=width+2 ∗ \ast border-width+2 ∗ \ast padding-width

6.不会撑大盒子的特殊情况

如果块级元素宽度不设置,默认占满父元素一行此时左右的border和padding是不会撑大盒子的

7.CSS3盒模型(自动内减)

属性名:box-sizing
属性值:border-box
作用:浏览器自动调整盒子大小至内容的原大小

8.margin的取值

属性名:margin

取值说明
margin: 10px;上下左右都设置为10
margin: 10px 20px;上下设置为10,左右设置为20
margin: 10px 20px 30px;上设置为10,左右设置为20,下设置为30
margin: 10px 20px 30px 40px;上设置为10,右设置为20,下设置为30,左设置为40

记忆规则:同padding

margin的单方向取值

属性名:margin-方位名词
属性值:数字+px

9.margin单方向取值的应用

属性说明
margin-left让当前盒子往右移动
margin-right让右边的盒子往左移动
margin-top让当前盒子往下移动
margin-bottom让下面的盒子往上移动

10.清除默认内外边距

场景:浏览器会默认给部分标签设置padding和margin,但一般在项目开始前需要先清除这些标签的默认取值
比如:

  1. body标签默认有8px的margin
  2. p标签默认有上下的margin
  3. ul标签默认有上下的margin和padding-left

常见做法:用并集选择器设置,用通配符选择器设置(不建议)

11.外边距的正常现象

水平布局的盒子,左右的margin正常,互不影响
结果:最终两者距离为左右margin的和

12.外边距折叠现象-合并现象

场景:垂直布局的块级元素,上下的margin会合并
结果:最终距离为margin的最大值
解决方法:只给其中一个盒子设置margin

13.外边距折叠现象-塌陷现象

场景:互相嵌套的块级元素,子元素的margin-top会合并作用在父元素上
结果:导致父元素往下移动
解决方法:

  1. 给父元素设置border-top或者padding-top(分隔父子元素的margin-top)
  2. 给父元素设置属性overflow: hidden
  3. 转换成行内元素
  4. 设置浮动

14.行内元素的margin和padding无效情况

水平方向的margin和padding布局中有效
垂直方向的margin和padding布局中无效

十三.结构伪类选择器

1.查找单个

作用:根据元素在HTML的结构关系查找元素
优势:减少对HTML中类的依赖,有利于保持代码整洁

选择器说明
E:first-child{}匹配父元素中第一个子元素,并且是E元素(E元素是某个标签)
E:last-child{}匹配父元素中最后一个子元素,并且是E元素
E:nth-child(n){}匹配父元素中第n个子元素,并且是E元素
E:nth-last-child(n){}匹配父元素中倒数n个子元素,并且是E元素

2.查找多个

n的利用:

  1. 若直接写n,则n为0,1,2,3,4,5…
  2. 通过n可以组成常见公式
功能公式
偶数2n,even
奇数2n+1,2n-1,odd
找到前五个-n+5(n必须写在前面)
找到第五个往后的n+5

e.g.: li:nth-child(-n+10){}

3.nth-of-type结构伪类选择器

选择器:E:nth-of-type(n){}
效果:选择是E标签的中的第n个元素

4.伪元素

伪元素:一般页面中的非主体内容可以使用伪元素
区别:

  1. 元素:HTML设置的标签
  2. 伪元素:CSS模拟出的标签效果
伪元素说明
::before在父元素内容的最前面添加一个伪元素
::after在父元素内容的最后一个添加伪元素

注意点:

  1. 必须设置content属性才能生效
  2. 伪元素默认是行内元素

5.标准流

标准流:又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则
常见标准流排版规则:

  1. 块级元素:从上往下,垂直布局,独占一行
  2. 行内元素 或 行内块元素:从左往右,水平布局,空间不够自动折行

6.浮动

(1)浮动的作用和代码

属性:float: left或right(左浮动和右浮动)
早起的作用:图文环绕
请添加图片描述

现在的作用:网页布局
请添加图片描述

(2)浮动的特点
  1. 浮动元素会脱离标准流(简称:脱标),在标准流中不占位置(相当于从地面飘到了空中)
  2. 浮动元素比标准流高半个级别,可以覆盖标准流中的元素
  3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
  4. 浮动元素会受到上边元素边界的影响
  5. 浮动元素有特殊显示效果,比如:可以设置宽高,一行可以显示多个
  6. 浮动的元素不能通过text-align:center或者margin:0 auto,让浮动元素本身水平居中

7.清除浮动

(1)清除浮动的介绍

浮动的影响:设置浮动的子元素不能撑开标准流的块级父元素
清除浮动的目的:需要父元素有高度,从而不影响其它网页元素的布局

(2)清除浮动的方法-直接设置父元素高度

优点:简单粗暴,方便
缺点:有些布局中不能固定父元素高度。如:新闻列表,京东推荐模块

(3)清除浮动的方法-额外标签法(少)

操作:

  1. 在父元素内容的最后添加一个块级元素
  2. 给添加的块级元素设置clear:both

特点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂

(4)清除浮动的方法-单伪元素清除法

操作:用伪元素替代了额外标签
请添加图片描述

优点:项目中使用,只要给标签添加类就可以清除浮动

(5)清除浮动的方法-单双伪元素清除法

操作:
请添加图片描述

优点同单位元素清除法
.clearfix::before也可以解决margin的塌陷

(6)清除浮动的方法-给父元素设置overflow:hidden

操作:如题
优点:方便

(7)BFC的介绍

块格式化上下文(Block Formatting Context) :BFC
·    ~~   是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域
创建BFC方法:

  1. html标签是BFC盒子
  2. 浮动元素是BFC盒子
  3. 行内块元素是BFC盒子
  4. overflow属性取值不为visible。如:auto,hidden

BFC盒子的特点:

  1. BFC盒子会默认包裹内部子元素(标准流,浮动)->应用:清除浮动
  2. BFC盒子本身与内部子元素之间不存在margin的塌陷现象->应用:解决margin的塌陷

十四.定位

1.定位的应用场景

定位可以让元素自由的摆放在网页的任意位置
场景:

  1. 一般用于盒子之间的层叠情况(定位之后的元素层级最高)
  2. 可以让盒子始终固定在屏幕中的某个位置

2.定位的基本使用步骤

(1)设置定位方式

属性名:position

属性值说明
static静态定位
relative相对定位
absolute绝对定位
fixed固定定位
(2)设置偏移值

偏移值设置分为两个方向,水平和垂直方向各选一个使用即可
请添加图片描述

3.静态定位的介绍

介绍:静态定位是默认值,就是标准流
代码:position: static;
注意点:静态定位就是标准流,不能通过方位属性进行移动

4.相对定位的介绍

介绍:自恋型定位,相对于自己之前的位置进行移动
代码:positon: relative;
注意点:

  1. 需要配合方位属性实现移动
  2. 相对于自己原来位置进行移动
  3. 在页面中占有原来的位置->没有脱标

应用场景:

  1. 配合绝对定位组合使用(子绝父相)
  2. 用于小范围的移动

5.绝对定位的介绍

介绍:拼爹型定位,
代码:position: absolute;
注意点:

  1. 需要配合方位属性进行移动
  2. 默认相对于浏览器可视区域进行移动
  3. 在网页中不占位置->已经脱标

应用场景:配合相对定位组合使用(子绝父相)

6.绝对定位到底相对于谁移动

  1. 若祖先元素中没有定位->默认相对于浏览器进行移动
  2. 若祖先元素中有定位->相对于最近的有定位的祖先元素进行移动

7.子绝父相的介绍

场景:让子元素相对于父元素进行自由移动
优点:父元素是相对定位,对网页影响小

子绝父相实现水平居中
  1. 子绝父相
  2. 先让子盒子往右移动父盒子的一半(left: 50%😉
  3. 再让子盒子往左移动子盒子的一半(transform: translateX(-50%)😉
子绝父相实现水平垂直都居中

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

8.子绝父绝的特殊场景

场景:在使用子绝父相的时候,发现父元素已经有绝对定位,此时直接子绝即可
原因:父元素已经有定位已经满足要求,如果盲目修改父元素定位方式,可能会影响之前写好的布局


本周demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>week2demo</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            width: 491.39px;
            height: 60px;
            float: left;
            margin-left: 24px;
        }
        .box div a{
            float: left;
            font-size: small;
            text-decoration: none;
            color: black;
            margin-top: 19px;
            margin-right: 24px;
        }
        .box div a:hover{
            color: rgb(72, 165, 202);
        }
        .mid {
            float: left;
            width: 654px;
            height: 241.44px;
            position: absolute;
            left: 50%;
            transform: translate(-50%);
        }
        .mid .picture img{
            width: 270px;
            height: 129px;
            position: absolute;
            top: 68.44px;
            left: 50%;
            transform: translate(-50%);
        }
        .mid span .text{
            box-sizing: border-box;
            position: absolute;
            width: 550px;
            height: 44px;
            top: 197.44px;
            border: 2px solid rgb(173, 173, 173);
        }
        .mid span .button{
            position: absolute;
            width: 108px;
            height: 44px;
            left: 550px;
            top: 197.44px;
            background-color: #4e6ef2;
            border: #4e6ef2;
            color: #fff;
            font-size: 17px;
        }
        .mid span .button:hover{
            background-color: #4662d9;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="news"><a href="#">新闻</a></div>
        <div class="hao123"><a href="#">hao123</a></div>
        <div class="map"><a href="#">地图</a></div>
        <div class="tieba"><a href="#">贴吧</a></div>
        <div class="video"><a href="#">视频</a></div>
        <div class="image"><a href="#">图片</a></div>
        <div class="wangpan"><a href="#">网盘</a></div>
        <div class="wenku"><a href="#">文库</a></div>
        <div class="more"><a href="#">更多</a></div>
    </div>
    <div class="mid">
        <div class="picture"><img src="百度图标.png" alt="图片不见了"></div>
        <span>
            <input type="text" class="text" autocomplete="offs">
            <input type="button" class="button" value="百度一下">
        </span>
    </div>
</body>
</html>

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值