前端HTML
- 一、HTML 前端基础
- 二、css
- 1. 选择器
- 2. css属性
- * css默认样式 css reset
- 3. 文本属性
- 4. 背景图片样式 background
- 5. 元素浮动 float
- * 盒子模型
- * 改变盒子模型形态-box-sizing
- 6. 外边距 margin
- 7. 内边距 填充 padding
- 8. 边框 boder
- 9. 字体 font
- 10. 按类型划分标签 display - 显示框类型
- 11. 网页中定位 position
- 12. 鼠标划入样式 hover
- 13. 段落样式
- 14. 透明度与手势 opacity、rgba、cursor
- 15. 最大最小宽高设置 min/max-width/height
- 16.使用css自定义属性(变量)
- 三、css其他用法
一、HTML 前端基础
代码编写规范
空格、缩进、回车都代表一个字符
1. 页面组成
<html lang="en"></html> 英文页面 lang="zh-CN" 中文页面
2. 标签的作用
<h1>标题标签</h1> h1-h6从大到小 h1标签一个页面只有一个
<p>段落标签,文字独占一行</p>
<b>文字加粗标签</b>
<i>斜体标签</i>
<hr > 一条水平线,是单标签
<br> 换行,是单标签
一个 代表一个空格,多个就有多个空格
<img src="图片路径"> 图片,是单标签
<ul>无序列表
<li>列表中的一条<li>
</ul>
<ol>有序列表</ol>
<a href="">定义一个链接</a>
标签嵌套的规范:
1.组合标签使用规范 ul、li dl、dt、dd、 table、tr、td、th
2.块标签可以嵌套内联:
<div id="">
<span id=""> </span>
<a href=""></a>
</div>
3.块标签可以嵌套块标签
p标签不能嵌套 div
4.内联不能嵌套块
只有 a 标签 中 可以嵌套 块
3. 在Hbuilder中的快捷方式
直接输入 html 回车会显示网页基本信息
直接打标签回车即可
tab 可以快速补全
4.图片 img 单标签
图片默认从左到右,以底部对齐
img 的属性:
-
src 路径
输入图片的路径,可以是网址 -
width 宽度
输入图片的宽度,单位是 px 像素 -
height 高度
输入图片的高度,单位是 px 像素 -
title 鼠标放在图片上显示的内容
-
alt 图片加载失败后显示的内容
图片单位可以是px,如果图片太大可以是百分比
查看图片
如果网页有的图片无法保存,可以用网页调试工具,按f12,点击选择按钮,可以查看代码,右侧有下载路径,右键打开,可以保存图片
图片格式
jpg 色彩丰富
png 可以隐藏空白
gif 动图
psd 设计原稿文件
5. 超链接 a
点击超链接会打开网页
a的属性:
- target 目标
text-decoration:none 文本修饰:没有样式
text-decoration:underline 有下划线
<base target="_blank"> 在head标签中添加后,所有链接都是打开新窗口
跳转锚点:
<a herf="#abc">abc</a> 定义一个链接,点击后到达某个位置
<h2 id="abc"><h2>
6. 无序列表 ul
ul 的属性:
- type 可以确定图标的形状
<ul type="disc"></ul> 实心圆
<ul type="circle"></ul> 空心圆
<ul type="square"></ul> 实心方块
7. 有序列表 ol
ol 的属性:
- type 表示数字列表
<ol type="1"></ol> 默认,表示数字
<ol type="a"></ol> 表示大小写字母
<ol type="A"></ol>
<ol type="i"></ol> 表示大小写罗马数字
<ol type="I"></ol>
* 定义列表 dl
<dl>
<dt>标题</dt>
<dd>解释</dd>
</dl>
8. 路径地址
相对路径以当前页面为参考,打开地址
./当前路径
…/ 返回上一级目录
…/…/ 返回上两级目录
9. 表格 table
table 的元素:
- tr 一行
可以设置一行的对齐方式 居中 align=“center” - td 一列-行里面的表格单元
colspan=“” 整合几列
rowspan=“” 整合几行 - th 表头,自带加粗居中
- col 一列
可以设置一列的宽度
table 的属性:
- border 表格最外层边框大小
- cellspacing 单元格之间的空白大小
列标签 :可以设置一列的属性
10.表单 form
form
name属性只对表单有用,其他标签使用无效。
用于提交用户输入的信息
input 标签
提供用户输入的方式
input 需要在 form 表单中才能生效
input 属性
- type 类型 决定表单的属性 这些属性需要有 name 值才能提交成功
text 文本输入框
password 密码输入框
submit 提交输入框
button 普通按钮
reset 充值按钮
表单标签
<input>输入选择标签</input> 输入标签,有多种形式可以选择
<!-- placeholder:文本框中提示的内容 -->
<input type="text" placeholder="请输入" />
<input type="password" placeholder="请输入" />
<textarea cols="" rows=""></textarea>文本框标签 列和行代表多高多宽
<!-- disabled:此选项不能选择,selected:此选项出现在第一个 ,size:下拉菜单可以出现几项
multiple:多选,可以在文件中多选,也可以在下拉菜单中多选
select:下拉菜单
-->
<select size="2">
<option disabled="disabled" selected="selected" >请选择</option>
<option >tt</option>
<option >aa</option>
</select>
<input type="file" multiple="multiple" />
<!-- 单选:name相同可以让单选项同为一组,label 让字体和单选项进行映射
点击字体,就可以选择单选项,通过id 和for 的值来进行映射
-->
<input type="radio" name="sex" id="man"/> <label for="man">男</label>
<input type="radio" name="sex" id="woman" /><label for="woman">女</label>
11. 层叠样式表 css
样式决定如何显示 html 标签
12. 容器标签 span div
div 和span 没有任何样式,需要配合css才能显示
span 用来修饰文本
一个空的div 默认宽度是 100%,高度是0,在填写内容的时候才会有高度
13. 文本修饰标签
14.label
定义:
label 标签为 input 元素定义标注(标记)。
label 元素不会向用户呈现任何特殊效果。
不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
label 标签的 for 属性应当与相关元素的 id 属性相同。
属性
for :标签的 for 属性应当与相关元素的 id 属性相同。规定 label 与哪个表单元素绑定。
form:H5属性 规定 label 字段所属的一个或多个表单。
二、css
行内样式:在标签里的 css 属性
内部样式: 放在 style 标签的 css 属性。 style 标签放在 head 标签中
外部样式:放在一个单独的 css 文件中 通过link 引入
行内样式优先于内部样式
行内选择器》id选择器》类选择器》标签选择器》通用选择器 *
遇到的问题
1 css样式没有加载出来
引用的样式写错了,class 写错了,选择器写错了
复合样式和单一样式
复合样式和单一样式不要混写,如果非要混写,要先写混合样式再写单一样式
font : size width ;
font-size: ;
css样式可以继承
文字样式可以被继承,布局样式不可以被继承(默认不可以继承,可以设置)
单个样式:inherit ; 表示继承父样式
1. 选择器
选择器里放的是 css 样式
%换算宽高,根据父容器来计算
1.id选择器 #id{ } id="id"
一个页面只能出现一个id选择器。虽然不会有问题,但出现多个相同的id选择器不符合规范
命名规范:字母、数字、下划线组成 (数字不能作为开头)遵循驼峰命名规则
2.类选择器 .class{ } class="class"
class选择器可以复用,且一个标签可以使用多个class选择器
class 使用多个选择器 class="class1 class2",等同于class="class1"
class="class2", 可以同时用两个,也可以用于区分相同标签。
3.标签选择器 div{ }
4.群组选择器 div,.class,#id{ }
多个选择器使用同一个样式,达到代码的复用
5.通配选择器 *{}
选择器越精确,优先等级越高
可以根据权重值判断,权重值越大,优先级越高
通用选择器权重值为0,标签选择器权重为1,类选择器 权重为10,id选择器权重为100,行内选择器权重值为1000
1.1 层次选择器
1.后代选择器 M N{}
用空格隔开。作用于 M 里的 N 标签的样式。所有的后代 N 都有此样式
2.父子选择器 M>N{}
只作用于M 里的 N 标签,N的后代N没有此样式
3.兄弟选择器 M~N{}
M 同级标签下的 N 标签的样式,M 之上写的 N 没有此样式
4.相邻选择器 M+N{}
M同级标签 下 紧邻的第一个 N 标签 ,M 之上 的和 下面的第二个都没有此样式
p.class p标签且class=class的样式
p#id p标签且id=id的样式
p .class p标签下的class=class的样式
p #id p标签下的id=id的样式
1.2 属性选择器
1. M[attr]{}
M[class]{} M 标签中带有 class 元素的使用此样式
2.M[class="a"]{} 完全匹配
M 标签中带有 class="a" 的使用此样式
3.M[class*="a"]{} 部分匹配
M 标签中class 含有a 的使用此样式
4.M[class^="a"]{} 起始匹配
M 标签中 class 中 以 a 作为开始的使用此样式
5.M[class$="a"]{} 结束匹配
M 标签中 class 中以 a 作为结束的使用此样式
6.M[class][id]{} 组合匹配
M 标签中即有 class 又有 id 元素的使用此样式
1.3 伪类选择器–进行某项操作后的样式
div:after{ 某些文字后面添加文字,可以直接修改样式
content: "world"; color: red;
}
div:before{ 某些文字之前添加文字,可以直接修改样式
content: "world"; color: red;
}
1.4 结构伪类选择器
li:nth-of-type(1){ 单独让第一个 li 使用此样式,括号里的值可以是n,2n 偶数显示样式
background-color: red;
}
li:nth-of-type(){} 只对li有效
li:nth-child(){} 对li中夹杂的元素也有效
2. css属性
style 标签
放在head 里,有属性type=“text/css”,表示内容是标准的css
用来写css选择器
style 属性
放在 标签里,作为标签属性,一般放置css的属性和值
* css默认样式 css reset
div、span 没有默认样式
body 、h1、p、ul、a、 有默认样式设置css reset 清除一些默认样式
3. 文本属性
4. 背景图片样式 background
图片样式属性
background-image: url(); 可以为添加背景图片,url里面放入图片路径
background-repeat: no-repeat; 添加图片后,图片是平铺,有的图片会有多个,repeat 是重复。
background-position: center center; 调整图片的位置,第一个值是左右,第二个值是上下
background-attchment:fixed; 背景图随着滚动条变化
5. 元素浮动 float
为什么会有浮动?
因为在编写代码的页面中存在 文档流,页面的结构的文档流是从上到下,内联元素的文档流是从左到右
用了浮动,元素会脱离文档流,可以进行排版
float: left、right、none(默认值)
在页面中,元素的位置是由上到下。如果有的元素想横着放,就需要运用浮动样式。
1.浮动后父元素只有宽度没有高度
overflow:auto; 对父元素做溢出处理
2 . 有多个模块浮动,如果不想影响下面的模块,可以将多个模块,放到一个父模块中
5.1 溢出隐藏 overflow
overflow: visible(默认值)、 hidden、 auto、 scroll、
hidden:会对多出的内容裁剪,导致看不全
scroll:可以出现滚动条,可以设置横向滚动条和纵向滚动条。没有内容也会显示滚动条
auto:根据内容自动显示滚动条
overflow-x:设置 x 轴滚动条
overflow-y:设置 y 轴滚动条
5.2 清除浮动
1.兄弟模块用clear
清除浮动。
2.父子模块可以用after伪类配合clear清除
after伪类清除浮动原理
after 在元素后面增加文字,增加文字后属于内联样式,内联不能使用clear,只有块才可以清除,
所以要将 内联样式 改成 块样式
.clear:after{
content:"" ; display: block;clear: both;
}
* 盒子模型
width、height、不设置的时候,对盒子模型的影响,会自动计算容器大小,节省代码量
可见的宽高=内容+padding+border
总体的宽高=内容+padding+border+margin
margin有负值,padding和border没有负值
* 改变盒子模型形态-box-sizing
盒子自动计算宽高的距离
6. 外边距 margin
margin清除周围的元素(外边框)的区域。margin没有背景颜色,是完全透明的
margin 只能左右auto, 不能上下auto。
margin可以单独改变元素的上,下,左,右边距。也可以一次改变所有的属性。
写四个值:从上开始,顺时针走
写三个值:上、左右、下
写两个值:上下、左右
写一个值:全部
margin 会出现的问题
1.当上下两个盒子都margin的时候,会出现叠加,谁的间距大用谁的值。两个值不会相加。左右间距不会出现此问题,只有上下间距。
解决方法:把想要的间距设置给其中的一个
2.margin-top 传递问题
当一个盒子嵌套在一个盒子中,给里面的盒子设置 margin-top 值,父容器会获得子容器的 margin-top值,两个盒子同时有 margin 间距
解决方法:
给父容器加边框。
marigin 改成 padding-top 给父容器设置上,等同于里面的容器加了间距
7. 内边距 填充 padding
当元素的 Padding(填充)(内边距)被清除时,所"释放"的区域将会受到元素背景颜色的填充。
单独使用填充属性可以改变上下左右的填充。缩写填充属性也可以使用,一旦改变一切都改变。
写四个值:从上开始,顺时针走
写三个值:上、左右、下
写两个值:上下、左右
写一个值:全部
8. 边框 boder
边框各个边是斜着拼接在一起的,如果将一个div的边框(boder)高度和宽度设置为0,将边框的像素提高,会形成四个拼接在一起的三角。将四个边框的颜色设置成透明(transparent)
boder-left/right/top/bottom-style/width/color
可以根据方向和样式自行配置
div{
width: 0px; height: 0px;
border: solid;
border-top-color: transparent;
border-top-width: 30px;
border-right-color: transparent;
border-right-width: 30px;
border-left-color: transparent;
border-left-width: 30px;
border-bottom-color: red;
border-bottom-width: 30px;
}
9. 字体 font
font-family:字体类型; 根据计算机已有的字体进行显示,计算机没有的无法显示出来
可以设置多个字体,防止文字失效
font-size:16px; 默认字体大小16px,字体大小最好为偶数
10. 按类型划分标签 display - 显示框类型
类型及写法
元素就是标签,布局中常用的有三种标签,块元素(行元素)、内联元素(行内元素)、内联块元素(行内块元素),
块元素,也可以称为行元素,布局中常用的标签,如:div、p、ul、li、h1-h6等等都是块元素
(1)支持全部的样式
(2)如果没有设置宽度,默认的宽度为父级宽度100%
(3)盒子占据一行、即使设置了宽度
内联元素,也可以称为行内元素,布局中常用的标签,如:a、span、em、b、strong、i等等都是内联元素
(1)支持部分样式(不支持宽、高、margin上下、padding上下)
(2)宽高由内容决定
(3)盒子并在一行
(4)代码换行,盒子之间会产生间距
(5)子元素是内联元素,父元素可以用text-align属性设置子元素水平对方方式
内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和input元素的行为类似这种元素,但是也归类于内联元素,我们可以用display属性将块元素或者内联元素转化成这种元素。
(1)支持全部样式
(2)如果没有设置宽高,宽高由内容决定
(3)盒子并在一起
(4)代码换行,盒子会产生间距
(5)子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式。
这三种元素,可以通过display属性来相互转化,不过实际开发中,块元素用得比较多,所以我们经常把内联元素转化为块元素,少量转化为内联元素,而要使用内联元素时,直接使用内联元素,而不用块元素转化了。
内联样式显示margin-left/right,不支持margin-bottom/top。只有将内联设置成块元素才能支持margin-bottom/top。
改变元素类型
11. 网页中定位 position
绝对位置,根据相对位置进行定位,如果上层模块没有position样式,就一直网上找,position哪个值都可以做相对位置,最上层还没有,就根据网页定位绝对位置
出现定位层级嵌套的时候,同级的才会比较,只有父元素不写定位,里面的子元素才能和
外面的父元素同级进行比较
12. 鼠标划入样式 hover
.test{} test样式
.test:hover{} 鼠标划入test样式后的表现
13. 段落样式
p{
width: 300px;
}
p.wenben{
text-decoration: underline;
text-indent:32px; font-size: 18px;
text-indent:2em; font-size: 18px;
}
p#duiqi{
text-transform: uppercase;
text-align: justify;
}
13.1 文本装饰与大小写
13.2 文本缩进与对齐
13.3 行高 和词距
在一个模块中,一个英文单词过长,或者一串数字过长,会溢出显示,这时候用到折行。(如下图)
强烈折行的效果是单词会紧凑的在一起,然后折行。
不强烈的折行,长单词和短单词进行换行,会留出来部分空白。
14. 透明度与手势 opacity、rgba、cursor
opacity:0(透明)~1(不透明) 0.5半透明 里面的子元素都会变透明
rgba(255,0,0,0~1) 可以单独对背景颜色调节透明度
cursor: default(默认值) 鼠标到达区域所展示的鼠标样式
help、 帮助鼠标样式
url(),auto 自定义鼠标样式,图片格式为 ico、cur、png 注:url后面是逗号,
图片不能太大
15. 最大最小宽高设置 min/max-width/height
min-width:200px; 最小是200像素的宽,内容多了会自动增加宽度,少了不会变,内容不会溢出。
max-height:200px; 最大是200像素的高,内容少了会自动缩小高度,多了不会变,内容会溢出。
/* 设置屏幕自适应宽高 */
html,body{
width: 100%; height: 100%;
}
16.使用css自定义属性(变量)
自定义属性(有时候也被称作CSS 变量或者级联变量)是由 CSS 作者定义的,它包含的值可以在整个文档中重复使用。由自定义属性标记设定值(比如: --main-color: black;),由var() 函数来获取值(比如: color: var(–main-color);)
css变量名字必须由--
开头
一般在根伪类 :root 下
:root {
--main-bg-color: brown;
}
.one {
color: white;
background-color: var(--main-bg-color);
margin: 10px;
width: 50px;
height: 50px;
display: inline-block;
}
也可以内部覆盖使用变量是蓝色,在内部定义会覆盖
自定义属性备用值
函数的第一个参数是自定义属性的名称。如果提供了第二个参数,则表示备用值,当自定义属性值无效时生效。第二个参数可以嵌套,但是不能继续平铺展开下去了,例如:
.two {
color: var(--my-var, red); /* Red if --my-var is not defined */
}
三、css其他用法
1. css雪碧图 sptite
2. css3 圆角 border-radius
标签圆角的大小 是根据圆的半径相切而成,如果半径等于标签大小,就会变成一个圆。
四个值从左上角开始顺时针。
#box{width: 200px; height: 200px; background: red; border-radius:50px;}
#box{width: 200px; height: 200px; background: red; border-radius:50%;} 圆形
#box{width: 200px; height: 200px; background: red; border-radius:20px 30px;}
#box{width: 200px; height: 200px; background: red; border-radius:20px 0 0 30px;}
#box{width: 200px; height: 200px; background: red; border-radius:20px / 40px;} 椭圆切角