周末总结3

HTML进阶

##  表单练习

border-radius为速写属性

    border-top-right-radius:0;

    border-bottom-right-radius:0;

溢出的部分就算设置了背景颜色也无法遮挡位于他后边的元素

overflow属性:溢出部分处理

cursor属性: 设置鼠标样式

# 表格元素

在CSS技术出现之前,网页通常使用表格布局。

后台管理系统中可能会使用表格。

前台: 面向用户。

后台: 面向管理员。对界面要求不高,对功能性要求高。

表格不再适用于网页布局? -->表格的渲染速度太慢。

表格: table

   border-collapse属性:控制单元格之间边框的间距,写在table里边

    属性值:separate 表示相邻边框分离

           collapse 表示折叠,即相邻边框合并

表格标题: caption

表头: thead

表格主体: tbody

表尾: tfoot

表格行:tr

标题单元格: th  (不是只能出现在表头,表体也可以)

单元格: td

   <!-- 表示该单元格跨越五列,即占五列的宽度 -->

                   <td colspan="5">合计:XXXX</td>

   <!-- 表示跨越2行 -->

      <td rowspan="2">数据1</td>

     

<!-- 表示选中第奇数个tr -->

tbody tr:nth-child(odd)

<!-- 表示选中第偶数个tr -->

tbody tr:nth-child(event)

#  其他元素

1. abbr元素

表示 内容为缩写词

2. time元素

提供给浏览器或搜索引擎的时间

        <time datatime="2019-5-1">今年5月</time>  我录制了HTML 和 CSS课程

3. b元素

以前是一个无语义元素,主要用于加粗字体

 现在表示强调,在语音阅读时会重读或可能停顿

4. q元素

 一小段引用文本 cite属性:表示引用的文本链接地址(给浏览器看的)

5. blockquote

大段引用的文本   cite属性:表示引用的文本链接地址(给浏览器看的)

6. br元素

无语义

主要用于在文本中换行   无法设置样式  **不太使用

7. hr元素

无语义

主要用于分割   **不太使用

8. meta元素

    <!-- 搜索网站时的关键字 -->

    <meta name="keywod" content="在线商城,美容">

    <!-- 网站作者 -->

    <meta name="author" content="yishunxuan,ahvkdsa@qq.com">

    <!-- 网站简介 -->

    <meta name="description" content="adasskjfjd">

还可以用于搜索引擎优化 (SEO)

9. link元素

链接外部资源(css、图标)

 rel属性: relation, 链接资源和当前文件的关系

 type属性: 链接资源的MILE类型  (可以不写)

 除此之外链接图标另外一种方法:将图标文件放在网站的根目录取名为favicon.ico

CSS进阶

#  其他元素

1. abbr元素

表示 内容为缩写词

2. time元素

提供给浏览器或搜索引擎的时间

        <time datatime="2019-5-1">今年5月</time>  我录制了HTML 和 CSS课程

3. b元素

以前是一个无语义元素,主要用于加粗字体

 现在表示强调,在语音阅读时会重读或可能停顿

4. q元素

 一小段引用文本 cite属性:表示引用的文本链接地址(给浏览器看的)

5. blockquote

大段引用的文本   cite属性:表示引用的文本链接地址(给浏览器看的)

6. br元素

无语义

主要用于在文本中换行   无法设置样式  **不太使用

7. hr元素

无语义

主要用于分割   **不太使用

8. meta元素

    <!-- 搜索网站时的关键字 -->

    <meta name="keywod" content="在线商城,美容">

    <!-- 网站作者 -->

    <meta name="author" content="yishunxuan,ahvkdsa@qq.com">

    <!-- 网站简介 -->

    <meta name="description" content="adasskjfjd">

还可以用于搜索引擎优化 (SEO)

9. link元素

链接外部资源(css、图标)

 rel属性: relation, 链接资源和当前文件的关系

 type属性: 链接资源的MILE类型  (可以不写)

 除此之外链接图标另外一种方法:将图标文件放在网站的根目录取名为favicon.ico

# web字体和图标

## web字体

用户电脑上没有安装相应字体,强制让用户下载该字体

使用@font-face指令制作一个新字体

***        /* 制作一个新的字体,名称叫做 good night */

        @font-face{

            font-family:"good night";

            src:url("./font/晚安体.ttf")

        }

        p{

            font-family:"good night";

        }

***

## 字体图标

iconfont.cn

一般用 i元素 i元素默认样式为斜体

一般为行盒,把字体图标看成文字

### 离线字体图标

如果把字体图标文件不与字体图标css放在同一文件夹,需将iconfont.css里的链接地址改动

# 块级格式化上下文

简称:BFC

它是一块独立渲染区域,它规定了在该区域中,常规流“块盒”的布局

- 常规流块盒在水平方向上,必须撑满包含块

- 常规流块盒在包含块的垂直方向上依次摆放

- 常规流块盒若外边距无缝相邻,则进行外边距合并

- 常规流块盒的自动高度和摆放位置,无视浮动元素,更加无视定位元素

BFC渲染区域:

这个区域由某个HTML元素创建,以下元素会在其内部创建BFC区域:

- 根元素 意味着, <html>元素创建的BFC区域,覆盖了网页中的所有元素

- 浮动和绝对、固定定位元素

- overflow不等于visible的块盒

不常见:

- display等于table、 表格的单元格

- 行块盒

“独立的”释义:

不同的BFC区域,它们进行渲染时互不干扰

创建BFC的元素,隔绝了它内部和外部联系,内部的渲染不会影响到外部

具体规则:

创建BFC的元素,它的自动高度需要计算浮动元素(只是浮动元素,定位不行)

创建BFC的元素,它的边框不会与浮动元素重叠(只是浮动元素,定位不行)

创建BFC的元素,不会和他的子元素进行外边距合并

自动高度不可能计算固定定位与绝对定位

设置overflow:hidden使其变为BFC可以让其避开浮动元素

通过设置定位不会避开

.float{

            width:100px;

            height:200px;

            margin:20px;

            background:red;

            float:left;

        }

        .container{

            height:500px;

            background:#008c8c ;

            /* BFC  它会避开浮动元素,相当于设置了margin-left,其是相对于包含块的左边缘*/

            /* overflow:hidden; */

            /* 设置定位不会避开 */

            /* position:absolute;

            width:100px;

            left:20px;

            top:20px; */

        }

# 布局

## 多栏布局

两栏布局


 

三栏布局

## 等高

1. CSS3的弹性盒

2. JS控制

3. 伪等高

## 元素书写顺序

主区域代码靠前可以使用侧边栏定位解决

## 后台页面的布局

body元素默认样式:margin不为零

height属性值设为100%前提条件为:该元素的包含块高度确定


 

# 浮动的细节规则

盒子位置

- 左浮动向上向左排列

- 右浮动向上向右排列

- 浮动盒子的顶边不得高于上一个盒子的顶边(上一个盒子是指顺序上上一个 ,而不是摆放位置)

- 若剩余空间无法容纳浮动盒子,则该盒子向下移动,直至具备足够空间能容纳盒子,然后再向左或向右移动

# 行高的取值

line-height

1. px, 像素值

2. 无单位数字

3. em单位

4. 百分比

# body背景

**画布 canvas**

一块区域

特点:

1. 最小宽度为视口宽度     {宽度和高度可大于视口}

2. 最小高度为视口高度

**HTML元素的背景**

覆盖画布

**body元素的背景**

如果HTML元素有背景,body元素正常 (背景覆盖边框盒)

如果HTML元素没有背景,body元素背景覆盖画布

**关于画布背景图**

数值为相对单位时:如100%, center

1. 背景图的宽度百分比,相对于视口宽度

2. 背景图的高度百分比,相对于HTML元素高度,即网页高度

3. 背景图的横向位置百分比、预设值,相对于视口

4. 背景图的纵向位置百分比、预设值,相对于HTML元素高度,即网页高度

# 行盒的垂直对齐

## 多个行盒垂直方向上的对齐

给没有对齐的元素设置vertical-align

预设值

数值



 

## 图片的底部白边

图片的父元素是一个块盒,块盒的高度自动,图片底部和父元素之间往往会出现空白

这个白边的高度与包含该元素的元素的字体大小有关

解决办法:

1. 设置父元素的字体为0

2. 将图片设置为块盒

# 参考线-深度理解字体

font-size、line-height、vertical-align、font-family

## 文字

文字是由一些文字制作软件制作出来的,比如fontforge

制作文字时,会有几根参考线,不同的文字类型,参考线不一样。同一种文字类型参考线一样。

## font-size

字体大小,设置的是文字的相对大小,一般比实际大小小

文字的相对大小:1000、2048、1024

文字顶线到底线的距离,是文字的实际大小(content-area,内容区)

行盒的背景覆盖的是content-area

## 行高

顶线向上延伸的空间和底线向下延伸的空间,两个空间相等,该空间叫gap(空隙)

gap默认情况下,是字体设计者设计的

top到bottom区域,叫做virtual-area(虚拟区域)

行高就是virtual-area

line-height:normal,默认值,使用文字默认gap

> 文字一定出现在一行的最中间——错误

> content-area一定出现在virtual-area的正中间

## vertical-align

决定参考线: font-size 、font-family、 line-height

一个元素如果子元素出现行盒,该元素内部也会产生参考线

属性值:

baseline: 表示该元素的基线与父元素的基线对齐

super:表示该元素的基线与父元素的基线对齐

sub: 表示该元素的基线与父元素的下基线对齐

text-top:该元素的vertual-area的顶边,对齐父元素的text-top

text-bootm:该元素的virtual-area底边,对齐父元素的text-bottom

top:该元素的virtual-area的顶边,对齐line-box的顶边

bottom:该元素的virtual-area的底边,对齐line-box的底边

middle:该元素的中线(content-area的一半),与父元素的X字母的高度一半的位置对齐

行盒组合起来可以形成多行,每行的区域叫做line-box,line-box的顶边是该行内所有行盒最高顶边,底边是该行所有行盒里最低底边

实际,一个元素的实际占用高度 (高度自动),高度计算通过line-box计算。

行盒: inline-box

行框: line-box

数值:相对于基线的偏移量,为正向上偏移,为负向下偏移

百分比:相对于基线的偏移量,百分比相对于自身virtual-area的高度

line-box是承载文字内容的必要条件,以下情况不生成行框:

1. 某元素内部没有行盒

2. 某元素字体大小为0

## 可替换元素和行块盒的基线

图片:基线位置位于图片的下外边距

表单元素:基线位置在内容的底边

行块盒:

1. 行块盒最后一行有line-box,最后一行的基线作为整个行块盒的基线

2. 如果行块盒内部最后一行没有行盒,则使用下外边距作为基线


 

# 堆叠上下文

堆叠上下文(stack context),它是一块区域,这块区域由某个元素创建,它规定了该区域中的内容在Z轴上排列的先后顺序。

## 创建堆叠上下文的元素

1. html元素(根元素)

2. 设置了z-index(非auto)数值的定位元素

## 同一个堆叠上下文中元素在Z轴上的排列

从后到前的排列顺序:

1. 创建堆叠上下文的元素的背景和边框

2. 堆叠级别(z-index, stack level)为负值的堆叠上下文

3. 常规流非定位的块盒

4. 非定位的浮动盒子

5. 常规流非定位行盒

6. 任何 z-index 是 auto 的定位子元素,以及 z-index 是 0 的堆叠上下文

7. 堆叠级别为正值的堆叠上下文

每个堆叠上下文,独立于其他堆叠上下文,它们之间不能相互穿插。

# svg

svg: scalable vector graphics,可缩放的矢量图

1. 该图片使用代码书写而成

2. 缩放不会失真

3. 内容轻量

## 怎么使用

svg可以嵌入浏览器,也可以单独成为一个文件

xml语言,svg使用该语言定义

xml语言中空元素必须闭合  eg:<rect   />

### 如何引用svg文件

在HTML文件中用:

1. 直接嵌套进浏览器

直接将代码粘贴,不要 svg元素之前的部分

2. 使用外部svg文件

img元素

用背景图:background:url()

<embed src="" type="image/svg+xml">

object元素

iframe元素, 但它还会有个网页

## 书写svg代码

<svg style="background:gray;" width="500" height="1000" xmlns="http://www.w3.org/2000/svg">

    <rect width="100" height="100" x="100" y="100" fill="red" stroke="#000" stroke-width="5"/>

</svg>

 width="500" height="1000" 必须写在style外边且用等号

 数值一般不加单位

### 矩形:rect

fill:表示填充颜色   transparent表示透明  

stroke:表示描边颜色

x、y:表示矩形左上角坐标

坐标原点在整个区域左上角点

### 圆形:circle

### 椭圆:ellipse

### 线条:line

### 折线:polyline

points="200,5000,300,18"   其中各点的坐标用逗号隔开

填充时会把第一个点与最后一个点相连填充封闭区域

### 多边形:polygon



 

### 路径:path

M = moveto  动点

L = lineto  线

H = horizontal lineto

V = vertical lineto

C = curveto

S = smooth curveto

Q = quadratic Belzier curve

T = smooth quadratic Belzier curveto

A = elliptical Arc   弧线

A

半径1    

半径2    

顺时针旋转角度    

小弧(0)或大弧(1)  

顺时针(1)逆时针(0)

Z = closepath   表示闭合路径会闭合到起点坐标


 

### 例子

画太极图

# 数据链接

data url

## 如何书写

数据链接:将目标文件的数据直接书写到路径位置

语法:data:MIME,数据

## 意义

优点:

1. 减少了浏览器中的请求

请求

响应

减少了请求中浪费的时间

2. 有利于动态生成数据

缺点:

1. 增加了资源的体积

导致了传输内容增加,从而增加了单个资源的传输时间

2. 不利于浏览器的缓存

浏览器通常会缓存图片文件、css文件、js文件。

3.base64编码方式 会增加原资源的体积到原来的4/3

应用场景:

1. 当请求单个图片体积较小,并且该图片因为各种原因,不适合制作雪碧图,可以使用数据链接。

2. 图片由其他代码动态生成,并且图片较小,可以使用数据链接。

## base64

一种编码方式

通常用于将一些二进制数据,用一个可书写的字符串表示。

# 浏览器兼容性

## 问题产生原因

- 市场竞争

- 标准版本的变化

## 厂商前缀

> 比如:box-sizing, 谷歌旧版本浏览器中使用-webkit-box-sizing:border-box

- 市场竞争,标准没有发布

- 标准仍在讨论中(草案),浏览器厂商希望先支持

IE: -ms-

Chrome,safari:  -webkit-

opera: -o-

firefox: -moz-

> 浏览器在处理样式或元素时,使用如下的方式:

> 当遇到无法识别的代码时,直接略过。


 

1. 谷歌浏览器的滚动条样式

实际上,在开发中使用自定义的滚动条,往往是使用div+css+JS实现的

2. 多个背景图中选一个作为背景

## css hack

根据不同的浏览器(主要针对IE),设置不同的样式和元素

1. 样式

IE中,CSS的特殊符号

- *属性,兼容IE5、IE6、IE7

- _属性,兼容IE5~IE6

- 属性值\9,兼容IE5~IE11

- 属性值\0,兼容IE8~IE11

- 属性值\9\0,兼容IE9~IE10

> IE5、6、7的外边距bug,浮动元素的左外边距翻倍

2. 条件判断

## 渐近增强 和 优雅降级

两种解决兼容性问题的思路,会影响代码的书写风格

- 渐近增强:先适应大部分浏览器,然后针对新版本浏览器加入新的样式

书写代码时,先尽量避免书写有兼容性问题的代码,完成之后,再逐步加入新标准中的代码。

- 优雅降级:先制作完整的功能,然后针对低版本浏览器进行特殊处理

书写代码时,先不用特别在意兼容性,完成整个功能之后,再针对低版本浏览器处理样式。

## caniuse

查找css兼容性

[caniuse.com](https://caniuse.com/)

# 居中总结

居中:盒子在其包含块中居中

## 行盒(行块盒)水平居中

直接设置行盒(行块盒)父元素```text-align:center```

## 常规流块盒水平居中

定宽,设置左右margin为auto

## 绝对定位元素的水平居中

定宽,设置左右的坐标为0(left:0, right:0),将左右margin设置为auto

> 实际上,固定定位(fixed)是绝对定位(absolute)的特殊情况

## 单行文本的垂直居中

设置文本所在元素的行高,为整个区域的高度

## 行块盒或块盒内多行文本的垂直居中

没有完美方案

设置盒子上下内边距相同,达到类似的效果。

## 绝对定位的垂直居中

定高,设置上下的坐标为0(top:0, bottom:0),将上下margin设置为auto

# 样式补充

## display:list-item

设置为该属性值的盒子,本质上仍然是一个块盒,但同时该盒子会附带另一个盒子

元素本身生成的盒子叫做主盒子,附带的盒子称为次盒子,次盒子和主盒子水平排列

先排列次盒子,再排列主盒子


 

涉及的css:

1. ```list-style-type```

设置次盒子中内容的类型

可从父元素继承

2. ```list-style-position```

设置次盒子相对于主盒子的位置

3. 速写属性```list-style```

**清空次盒子**

list-style:none

## 图片失效时的宽高问题

如果img元素的图片链接无效,img元素的特性和普通行盒一样,无法设置宽高

## 行盒中包含行块盒或可替换元素

行盒的高度与它内部的行块盒或可替换元素的高度无关

## text-align:justify

text-align:

- left: 左对齐

- right:右对齐

- center:居中

- justify:除最后一行外,分散对齐  (即平均分散空白)

如果想最后一行也分散对齐可给该元素加::after属性

注意display值为inline-block

      .container::after{

            content: "";

            display: inline-block;

            width: 100%;

        }

## 制作一个三角形

## direction 和 writing-mode

开始 start -> 结束 end

左 left -> 右 right

开始和结束是相对的,不同国家有不同的习惯

左右是绝对的

direction设置的是开始到结束的方向,其实是对齐方向

writing-mode:设置文字书写方向

## utf-8字符

    <style>

        p::after{

            content: "\6613\987A\8F69";

        }

    </style>

    或

    <p>

       &#x6613;&#x987A;&#x8F69;

    </p>

  • 28
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值