该内容为本人自学HTML所记笔记,如有不准确的地方欢迎各位批评指正,希望对需要的人有所帮助,谢谢。
块级元素:div;p;dl;form;h1~h6;ol;ul
行内元素:a;b;i;em;img;span
(pre是块级元素但只能包含文本或行内元素)
选择器
空格 后代选择器 .main div{ }
后代所有div
>大于号 子元素选择器 .main>div{ }
所有儿子div
+加号 相邻元素选择器 .main>ul+div{ }
紧随ul其后的一个同代div
~波浪线 兄弟选择器 .main>ul~div{ }
紧随ul其后的所有同代div
复合选择器
交集选择器
div .gd .nav[title]{}
这个标签是div标签而且class=’‘gd nav’'而且有title属性(空格表示后代的意思)
并集选择器
div,p,span{}
逗号隔开的,所有选择器都会执行后面的样式
width 宽度
height 高度
border 边框
padding 内边距
margin 外边距
box-sizing:content-box;
默认盒模型
如果你设置一个元素的宽为100px,
那么这个元素的内容区会有100px宽,
并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。
box-sizing:border-box;
怪异盒模型
如果你将一个元素的width设为100px,
那么这100px会包含其它的border和padding,
内容区的实际宽度会是width减去border + padding的计算值。
font-size: 字体大小 (20px或1.5em)
font-style: 字体样式
font-weight: 字体粗细
font-family:Tahoma,Helvetica,Arial,sans-serif;
字体类型
line-height: 行高
vertical-align:垂直对齐
baseline:使元素的基线与父元素的基线对齐
middle:使元素的中部与父元素的中线对齐
top:使元素及其后代元素的顶部与整行的顶部对齐
bottom:使元素及其后代元素的底部与整行的底部对齐。
text-indent: 文本缩进样式
text-indent:1em;
文本首行缩进一个字符text-indent:20px;
文本首行缩进20pxtext-align: 文本对齐样式
text-align:left;
左对齐text-align:right;
右对齐text-align:center;
居中对齐text-align:justify;
两端对齐text-decoration: 文本装饰
text-decoration:underline;
下划线
text-decoration:overline;
上划线
text-decoration:line-through;
贯穿线
display:block;
块级盒模型display:inline;
行内盒模型display:inline-block;
行内块级盒模型display:none;
隐藏*{margin:0;padding:0;}
body,p,ul,ol,dl,li{margin:0;padding:0;}
ul,ol{list-style:none;}
normalize.css
内容层>边框层>背景图片层>背景颜色层
color>border-color>background-image>background-color
background-color: 背景颜色
background-image: 背景图片
background-image:url(‘图片地址’);
background-repeat 背景图片平铺
初始值为repeat;(默认重复)如果不需要背景图片重复显示:
样式值可设置为no-repeat
分解为两个值:
background-repeat-x:repeat;
background-repeat-y:repeat;
写法二:
background-repeat: repeat-x;
background-repeat: repeat-y;
background-size: 背景图片大小
数字类样式值:width height;
1.百分比: 基数为父级width和height;
2.像素: 直接数值px;
(数值可以写一个或两个,如果只有一个第二个就是默认auto)
关键字类样式值:
cover: 图片等比缩放直到刚好覆盖背景区域,超出部分不显示
contain: 图片等比缩放,直到有一条边触碰到边 框就停止
background-origin: 背景图片显示基点样式
content-box;
背景图片内容区左上角开始
padding-box;
背景图片从内边距左上角开始(默认)
border-box;
背景图片相当于边框左上角开始
background-clip: 背景图片裁剪域
background-attachment: 背景图片关联依附
fixed;
背景相对于视口固定,即使一个元素拥有滚动机制,背景也不会随着元素的内容滚动。
local;
背景相对于元素的内容固定,如果一个元素拥有滚动机制,背景将会随着元素的内容滚动,
并且背景的绘制区域和定位区域是相对于可滚动的区域而不是包含他们的边框。
scroll;
背景相对于元素本身固定, 而不是随着它的内容滚动(对元素边框是有效的)。
overflow
overflow:visible;
(默认)超出内容正常显示overflow:hidden;
超出内容隐藏overflow:scroll;
滚动条的形式展示多余内容overflow:auto;
内容未超出,正常显示;内容超出,显示滚动条background: color image repeat attachment position/size;
背景: 颜色 图片 平铺方式 关联依附方式 基点样式 裁剪域 位置/背景大小
background: red url(images/1.png) no-repeat scroll 20px 20px/30px 30px;
省略部分会被默认值替代,
position和size之间要用/分割
单个元素可设置多个背景图片
background: red url(images/1.png) no-repeat scroll 20px 20px/30px 30px,url(images/1.png) no-repeat scroll 20px 20px/30px 30px;
border-radius 圆角属性
border-top-left-radius:50px;
椭圆角
圆角单位
linear-gradient 和 radial-gradient 渐变属性
线性渐变 background-image:linear-gradient(red 50px,blue 100px,green 200px);
background-image:linear-gradient(to left,red,black); 渐变方向
background-image:linear-gradient(230deg,red,black); 渐变度数
background-image:linear-gradient(rgba(255,234,256,0.6)); 支持rgba
background-image:repeating-linear-gradient(red 50px,blue 100px); 重复渐变
径向渐变 background-image:radial-gradient();
写法组成:形状,半径,圆心的位置,颜色
background-image:radial-gradient(circle 100px,red,blue); 圆形
background-image:radial-gradient(ellipse 100px 50px,red,blue); 椭圆
background-image:radial-gradient(#cc66ff 50px,#00ffff 100px); 半径
background-image:radial-gradient(circle closest-side at 60px 80px,#33ffff,#cc33ff);
closest-side 以圆心到最近的一条边的距离为半径
farthest-side 以圆心到最远的一条边的距离为半径
closest-corner 以圆心到最近的一个角的距离为半径
farthest-corner 以圆心到最远的一个角的距离为半径
background-image:radial-gradient(circle at 60px 80px,#33ffff,#cc33ff);
第一个值x轴 第2个值是Y轴,如果只写一个值 是给x轴的 y轴默认是center
1)像素值px
2)百分比:父级宽和高的百分之多少为x轴和y轴定位圆心
3)关键词:x轴 left;center;right y轴 top;center;bottom
background-image:repeating-radial-gradient( ); 重复渐变
background:radial-gradient(red 0px,red 20px,blue 20px ,blue 40px) no-repeat top left/100px 100px,linear-gradient(#ffff00 30px ,#00ccff 60px) no-repeat bottom left/100px 100px ,black;
float:left; 左浮动
float:right; 右浮动
<head>
<style>
.clearfix::after{
content:'';
display:block;
clear:both;
}
style>
head>
<body>
<div class="father clearfix">div>
body>
position:absolute; 绝对定位
position:relative; 相对定位
position:fixed; 固定定位
position:static; 静态定位
元素默认就是静态定位(相当于不设置定位)
top: 10px; 上到下进行偏移
left:20%; 左到右进行偏移
right:100px; 右到左进行偏移
bottom:50%; 下到上进行偏移
属性:
action 处理当提交表单的时候向何处(URL)发送表单数据
method 规定用于发送数据的http方法
name 表单的名字,必须要写,但是name 唯一
target 规定action属性提交的页面在何处打开
_self
默认
_blank
新窗口
控件元素 (form标签内)
接受来自用户的信息 ,为单标签, 输入标签 ,行内块元素 text-ident 宽高
1)单行文本输入框 text (name必须写)
<input type='text' name='username'>
2)密码框 password
<input type='password'>
3)单选框 radio
<input type='radio' value='man' name='sex'>男
<input type='radio' value='woman' name='sex'>女
(1)value 给浏览器一个单选框信息
(2)name 必须写,一个name表示一个问题
4)多选框 checkbox
<input type='checkbox' value='apple' name='fruit'>苹果
<input type='checkbox' value='strawberry' name='fruit'>草莓
<input type='checkbox' value='banana' name='fruit'>香蕉
(1)name 必须写,一个name表示一个问题
(2)value 给浏览器一个多选框信息
5)数字框 number
<input type='number' min="5" max="15" step="3" value="6">
(1)min="" max="" 设置数字的范围
(2)step="3" 一次增加3,即5,8,11,14
(3)value="" 默认值,最开始出现的值
6)日期选择 (placeholder没有用)
(1)date 年月日 <input type='date'>
(2)month 年月 <input type='month'>
(3)week 周 <input type='week'>
(4)time 小时分钟 <input type='time'>
有些浏览器是24小时制 有些浏览器是12小时制
(5)datetime-local 你的时间 <input type='datetime-local'>
以你的地区为准 最具体 年月日 小时分钟
7)颜色 color (placeholder没有用)
<input type='color'>
选择颜色的模块 是操作系统提供
8)文件域按钮 file
(1)选择一个文件 <input type='file'>
(2)选择多个文件 <input type='multiple' multiple>
9)按钮
(1)提交 submit <input type='submit' value='提交'>
(2)重置 reset <input type='reset' value='重置'>
(3)普通按钮 button <input type='button' value='登录'>
10)隐藏输入框 hidden
<input type='hidden'>
name 控件的名称,只能英文,方便浏览器识别信息类别
value 控件的值,在没有输入的情况下,输入框会出现一个默认的值
placeholder 默认的提示信息(占位符),输入框里删除默认值,placeholder提示信息依然阴影显示
disabled 规定禁用input元素,输入框不能输入
required 必须输入的控件,不输入,点提交会提醒
autofocus 刷新页面后会光标自动聚焦在该输入框
checked 表示单选或多选框默认选中的内容
苹果
草莓
香蕉
2. 文本域 textarea
3.下拉框 select option
来创建菜单 他是一个区域 需要name 数据名字
选项 需要value 数据值
<select name="">
<optgroup label="月份">optgroup>
<option value="" selected>一月option>
<option value="">二月option>
<option value="">三月option>
<option value="">四月option>
select>
一月 二月 三月 四月
table标签内结构
表标题 一般不在表格的内部
表头
表正文
表正文 (注脚的内容 签名 年月日)
tr 元素定义表格行
th 元素定义表头
td 元素定义表格最小单元
<tr>
<th>th>
<td>td>
tr>
table样式
border-collapse 边框样式
(1)边框合并 collapse
table{border-collapse:collapse;}
不同的单元格边框不同情况下 粗的生效
同样的粗细的情况下 设置了颜色的生效
(2)边框分割 separate (默认)
table{border-collapse:separate;}
border-spacing 相邻单元格边框间的距离(仅用于“边框分离”模式)
table{border-spacing:3px 5px;}
第一个是水平间隔,第二个是垂直间隔
单元格的合并
(1)col 列 colspan 列合并 从左到右
数学两学期
(2)row 行 rowspan 行合并 从上到下
34期
<iframe src="" frameborder="" width="" height="" name="" scrolling="">iframe>
属性
样式 : 外边距生效 auto无效 支持内边距 支持定位
fieldset 分组 块级元素 双标签(区域标签)
<form>
<fieldset>
fieldset>
form>
legend 定义域的标题 双标签
<form>
<fieldset>
<legend>您的性别是:legend>
fieldset>
form>
您的性别是: label 绑定 为input标签定义标注,本身没有任何特殊的效果 ,增加了可用性和可选择的区域
通过input标签id名和label标签for进行绑
<form>
<label for="man">label>
<input type="radio" name="sex" id="man"/>
<label for="woman">label>
<input type="radio" name="sex" id="woman"/>
form>
button 按钮标签 双标签 我们一般input模拟 input的兼容性更好
登录
伪元素 2个冒号,伪类 1个冒号
语法
伪类给自己添加样式
.box:hover{
width:200px;
height:200px;
}
伪类给其他元素添加样式
.box1:hover(选择器).box2{}
鼠标需要放在的元素写在hover前面
需要改变的元素写在hover后面
只能是兄弟元素 或者子元素 或者是兄弟的子元素(只能是平级或者后级)
去掉:hover之后就是正常的选择器
表单的伪类
:checked
单选或者多选按钮被选择
:focus
获取焦点的状态
:focus-within
当某个后代元素获取焦点的时候,自身运用样式
tagname
(直接写标签名字)class
*
div#aa
空格
>
+
~
优先级
!important>行内样式>id>类>标签>通配符>默认>继承
选择器是怎么样选择一个元素的呢
从里往外看的(选择器是一个条件 是一个判断的名单)
1.先找到元素 往外开始判断
2.不满足条件就停止 满足条件就设置样式(减少工作量和搜索范围)
伪类选择器之状态类
:hover{}
鼠标悬停
:focus{}
处于被聚焦的状态
:checked{}
表单被勾选的状态
a标签一些选择器
a:link{}
未访问链接
a:hover{}
用户鼠标悬停
a:active{}
激活链接 鼠标按下去后
a:visited{}
已访问链接(前提是必须有hover和active)
伪类选择器之结构类
css3新增结构伪类选择器
e:first-line{} 表示我们e标签中第一行
e:first-letter{} 表示我们e标签中第一个字符
e::selection{} 被鼠标选中的文本(双冒号 唯一一个特殊的伪类)
e:not(.select){} 反选 选中.select之外的元素
e:empty{} 选择没有内容的e标签
e:target{} 选择当前锚点激活的p 结合我们的a标签一起使用
e:first-child{} 选择的e元素为父级的第一个子元素
e:last-child{} 选择的e元素为父级的最后一个子元素
e:nth-child(2){} 选择的e元素为父级的第2个子元素(2可替换成任意数字)
e:nth-child(3n){} 选择的e元素为父级的3的倍数子元素
e:nth-child(odd){} 选择的e元素为父级的奇数子元素
e:nth-child(2n-1){} 选择的e元素为父级的奇数子元素
e:nth-child(even){} 选择的e元素为父级的偶数子元素
e:nth-child(2n){} 选择的e元素为父级的偶数子元素
e:only-child{} 选择的e元素为父级的父级唯一子元素
e:first-of-type{} 选择的e元素为父级的第一个e元素(其他元素不算)
e:last-of-type{} 选择的e元素为父级的最后一个e元素(其他元素不算)
e:nth-of-type(3){} 选择的e元素为父级的第3个e元素(其他元素不算)
e:nth-of-type(3n){} 选择的e元素为父级的3的倍数的e元素(其他元素不算)
e:only-of-type{} 选择的e元素为父级的唯一e元素(其他元素不算)
伪类选择器之属性类
e[attr] attr
表示属性,即选择有属性的e元素
a[href]{}
即选择所有带href属性的a标签
e[attr=val]
匹配有attr属性等于"value"的e元素
e[attr=val][attr2=val2][attr3]
匹配三个属性的e元素
e[attr$=val]
匹配有attr属性以"value"结尾的e元素
e[attr^=val]
匹配有attr属性以"value"开头的e元素
e[attr*=val]
匹配有attr属性包含"value"的e元素
假的元素 不是代码自带的元素 通过css写的元素
伪类与伪元素的对比
伪类是一个冒号,伪元素是2个冒号
.box:hover::before{color} 能实现效果
.box::before:hover{color} 不能实现
元素样式变化的过程
过渡时间 transition-duration:
默认是0s ,单位:s秒 ms毫秒 1s=1000ms
过渡时间写在不同的位置 效果不一样
过渡时间满足的条件
bgc width height background-image 都可以
过渡延迟 transition-delay:
过渡属性 transition-property:
规定过渡作用于元素哪条样式上面
多个值用逗号隔开
过渡的速率 transition-timing-function:
自定义运动方式
网址:https://cubic-bezier.com
贝塞尔曲线 cubic-bezier , 横轴时间竖轴路程
越陡速度越快 越平缓速度越慢
cubic-bezier(x1,y1,x2,y2)
1.x1 x2取值范围是0-1
2.y1 y2 可以任意取值
过渡的复合属性
transition : property(属性) duration(时间) delay(延迟) timing-fuction(过渡速率);transition : all 4s -2s cubic-bezier(0,1.36,1,-1.42) , width 2s -1s linear;
只有时长不可以省略 其他都可以省略
过渡 transition 开始和结束状态的变化过程 需要手动触发
动画 animation 能够精确的描述各个时间进程的状态 自己运动
需要满足条件
语法
@keyframes animation-name{
keyframes-selector(关键帧){css-style}
keyframes-selector(关键帧){css-style}
}
属性
样式
逐帧动画 steps(n) n表示动画分为几个帧一个盒子搞不定 再加一个盒子,各控制一个运动
动画的复合样式
animation : animation-name(名称) animation-duration(时间) animation-delay(延迟) timing-function(速率) iteration-count(次数) direction(执行方向)
应用于 2D 或 3D 转换。
允许我们对元素进行旋转、缩放、移动或倾斜。
主体:页面的元素
方式:旋转 缩放 移动 或者倾斜
核心概念:使物体发生形状或者位置的变化
位移 transform:translate(偏移量1,偏移量2);
设置元素以自身初始位置为原点的偏移效果
旋转 transform:rotate(角度值);
设置元素绕着中心的旋转效果
角度值取值(正数是顺时针旋转的 负数的逆时针旋转的)
1.deg 度数
2.rad 弧度 1rad约等于57.3度
3.turn 圈 1turn=360deg
缩放 transform:scale(倍数1,倍数2);
0~1之间, 元素缩小(倍数为0元素消失不见)
1 , 元素放大
<0, 元素倒置( -1~0,倒置缩小;小于-1,倒置放大 )
倾斜 transform:skew(角度1,角度2);
设置元素基点 transform-origin: ;
默认值为transform-origin:50% 50%;
(中心点)
变化原点:水平位置 垂直位置
1. 关键词:
水平方向取值:left;center;right 对应百分值为left=0%;center=50%;right=100%
垂直方向的取值:top;center;bottom 对应百分值为top=0%;center=50%;bottom=100%;
2. 像素值 px
3. 百分数 %
变化样式复合写法
如 transform: scale() translate() skew() rotate() ;
顺序的不同会导致完全不一样的结果
box-shadow : h-shadow v-shadow blur spread color inset;
多个阴影的写法:逗号隔开
box-shadow:10px 10px 10px 10px #ffcc33,-10px -10px 10px 10px #9933ff;
text-shadow : x-shadow y-shadow blur color;
.box{
-webkit-filter:blur(5px); //谷歌浏览器兼容
filter:blur(5px);
}
伸缩容器:(父级)一个设有display:flex的元素
伸缩项目:(子级)伸缩容器的子元素
主轴:main axis 元素排列方向,向上,向下,向左,向右,4个
主轴起点:main start
主轴终点:main end
占据主轴的空间:main size
交叉轴:cross axis先主轴再有交叉轴即换行方向 共8个
交叉轴起点:cross start
交叉轴终点:cross end
占据交叉轴的空间:cros size
行内元素使用弹性布局 display: inline-flex;
order: 元素的排列顺序
用整数值来定义排列顺序,数值小的排在前面,可以为负值(-1 0 1)
flex-grow: 拉伸比列 (容器有空余空间才会拉伸)
用整数值来定义拉伸比列,数值小的拉伸越小,不可为负值,默认是0
flex-shrink: 压缩比列 (如果子元素的总宽度超过了主轴宽度)
用整数值来定义压缩比列,默认值是1,都压缩同样大小, 0是不压缩,不可为负数
flex-basis: 分配多余空间之前,项目占据的主轴空间
1)length 像素 不允许为负值
2)百分比 不允许为负值
3)auto 默认值 没有设置宽度的情况下 由内容撑开
4)content 由内容撑开
align-self 单个项目于其它项目的对齐方式 可以覆盖align-items
1)auto 默认值 继承父级交叉轴对齐方式
2)stertch 默认 项目被拉伸以适应整个容器
3)center 项目位于容器的中心
4)flex-start 项目位于容器的开始
5)flex-end 项目位于容器的结束
6)baseline 项目位于容器的基线
7)inital 设置该属性为它的默认值
8)inherit 继承父级
复合属性
flex : 第一个值flex-grow 第二个值flex-shrink 第三个值flex-basis ;
1)默认;其数值为 0 1 auto
2)flex:auto; 其数值为 1 1 auto
3)flex:none; 其数值为0 0 auto
4)flex:inherit; 继承父元素
详见
https://blog.csdn.net/m0_38099607/article/details/72614852?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158469662319724848362178%2522%252C%2522scm%2522%253A%252220140713.130056874…%2522%257D&request_id=158469662319724848362178&biz_id=0&utm_source=distribute.pc_search_result.none-task
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
涵盖市面上绝大多数的一些功能性图标(矢量图)
框架:将一些常用的重复的操作封装起来 使开发效率变高
https://www.swiper.com.cn/
操作步骤
标签 (组件参见标题栏’API文档’)
不同的设备有不同的尺寸 ,使用一套代码可能不适用所有的情况
一个网页 网页自动识别设备 然后展示对应的样式
核心逻辑
响应式触发点是宽度
核心技术是css技术,基于媒体查询属性@media(查询你的设备 跟进你的设备显示对应的网页)
媒体类型
语法
@media screen and (){}
具体语法
@media screen and (min-width:200px) and (max-width:600px){
.box{
background-color:#ffcc00;
}
}
媒体特性
如何引入响应式
内联样式
外部样式引入
1)link
"stylesheet" type="text/css" href="1.css" media="screen and (max-width:600px)">
2)@import
@import url("1.css") screen and (max-width:600px);
写在style标签里面的第一排
可以结合比例控制大小来完成移动端适配
"viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"> /* 值之间逗号隔开 */
1)width 控制视口的一个宽度 推荐写特殊值 device-width 表示页面宽度为屏幕的宽度;不推荐写像素值
2)initial-scale 初始比例
3)maximum-scale 允许缩放的最大比例,一般为1.0,禁止缩放 因为缩放页面布局会乱
4)minimum-scale 允许缩放的最小比例,一般为1.0,一般maximum-scale和minimum-scale写一个就可以
5)user-scalable 是否允许缩放, yes / no 或者 1 / 0 ,一般是no
不要写绝对宽度 用百分比来写
不要写高度 让子元素去撑开父元素高度
字体大小 用相对大小 em 或者rem
vw vh布局
100vw=浏览器的宽度
100vh=浏览器的高度
没有父级的概念 只跟浏览器窗口和百分比有区别, 百分比会受父级的限制
rem适配
em可以作为布局单位 但是会继承父级 所以em的值不一样,是结合js来做