前端HTML、CSS基础汇总

前端组成的三大部分:

​ Html: HyperText Markup Language 超文本标记语言 (页面的结构标准)

​ Css:Cascading Style Sheet层叠样式表 (页面的表现标准)

​ JavaScript:js脚本语言 页面动态效果

HTML:

标签的分类: 单标签(单独闭合的标签),双标签(成对的标签)

img标签的常用属性:

src=“” 设置图片地址

width=“” 设置图片宽度

height=“” 设置图片高度

实际开发 width 和 height 只需要设置一边即可 另一边系统会自动按比例缩放

title=“” 鼠标提示文本

alt=“” 图片占位文字(图片加载不出来显示的文本)

src图片地址路径问题:

相对路径:跟当前网页所在的文件夹为参考的路径 从当前html文件的路径出发去找图片

绝对路径:网络路径 带协议的网络路径

超链接标签a的使用:

target属性:

_blank 新标签页面打开

_self(默认值) 在当前页面直接打开目标页面

base标签的作用:

对所有后来的a标签进行 统一设置:

href 表示基础路径的统一配置

a标签最终的跳转地址 = base标签的href地址+a标签本身的href 组成完整地址

​ 如果a标签的href地址里面没有协议开头 那么回去找base标签的href 把地址拼上

​ 如果当前a标签的href地址 是以协议开头 那么当前地址就是完整地址

​ 不再去找base标签拼接

base标签除了 href 还有target属性

​ 表示对所有a标签统一设置跳转的目标位置

​ 如果a标签未设置target属性 则按照base标签的target属性生效

​ 如果当前a标签已经设置了 target 那么按照当前标签设置的target生效

a标签的四大功能:

1.页面跳转 2.回到顶部 3.锚点 4.下载功能

列表标记:

无序列表 ul,li

有序列表 ol,li

自定义列表 dl dt dd

meta使用:

charset=“utf-8” 设置当前网页编码

name=“keywords” content=“关键字列表”

name=“description” content=“描述信息”

table标签的常用属性:

table表格标签 tr 一行 td一列

border 边框宽度 默认是0

width 宽度

height 高度

align=“left | right |center” 表格在页面中的对齐方式

cellspacing 单元格之间的间距

cellpadding 单与格内部的内容到单元格周围的距离

tr标签的常用属性

align 当前行文本的横向对齐方式

​ left | right |center

valign 当前行文本垂直对齐方式

​ top | center |bottom

td标签的常用属性:

align 当前单元格文本的横向对齐方式

​ left | right |center

valign 当前单元格文本垂直对齐方式

​ top | center |bottom

bgcolor 当前单元格背景颜色

细线表格:border-collapse:collapse;

表格语义化:thead tbody tfoot

合并单元格:

rowspan=“” 合并的行数 高度变高

colspan=“” 合并的列数 宽度变宽

表单控件的通用属性:

name属性 提交用的

value 提交的值

disabled 禁用

readonly 只读

input标签

type=“text”

“password”

radio

checkbox

submit

reset

button

image

file

Html5语义化标签

header nav main aside section footer

标签的四大通用属性:

title 鼠标提示文本

id 除了锚点功能以外 还有 配合 CSS选择器 完成css功能

class 配合 CSS选择器 完成css功能

style 定义css的行内样式

基本选择器:

  • (通用选择器,通配符) ID class tag(标签)

复合选择器:

子代选择器 选择器1>选择器2

后代选择器 选择器1 选择器2

交集选择器 标签名.class名 标签名#id名

并集选择器 选择器1 , 选择器2 , …, 选择器n

font连写:

font:[weight] [style] size family;

​ font: style size family;

​ font: size family;

​ 连写中 前两个是可选 后两个是必须写

css三种引入方式:行内 内嵌 外链

块级元素:独占一行 可以设置宽高 默认有宽没高 h1~h6 div p ul>li ol >li dl dt dd

行内块:在一行内显示 可以设置宽高 默认没有宽高 img 表单中的控件 大部分都是 行内块(label不是行内块)

行内: 在一行内显示 不能设置宽高 默认有高度没有宽度 span a i/em u/ins b/strong s/del label

显示模式的转换

display: block; 转换成块级

display:inline; 转换成行内元素

display:inline-block; 转换成行内块

标签(元素)之间相互嵌套规则

块级标签可以嵌套一切其他标签

块级里面: 可以有行内 行内块 块级 都可以

ul ol里面只能出现 li标签 dl里面只能出现 dt和dd

li标签里面 可以嵌套一切

行内和行内块 之间可以互相嵌套 但是不能嵌套块级

p 不能嵌套其他任何块级元素 甚至包括自己

哪怕块级元素 通过display改变了显示模式也没用

一旦p标签嵌套块级元素 就会出现 被截断的情况 产生两个p标签

css三大特性:

层叠性:元素最终的样式 很可能由多个选择器 叠加而来的效果

继承性:某些css属性 给父元素设置以后 所有的后代元素都会生效(h标签不要设置字体大小,a标签不会继承文字颜色)

优先级:默认样式<通用选择器<标签(元素)选择器<class选择器<ID选择器<行内样式<!important(方便计算定义了额外的权值)

0 0110 100 1000<1000

伪类选择器:

选择器:link 普通链接状态
​ 选择器:visited 链接访问过后的状态

​ 选择器:hover 鼠标悬停状态

​ 选择器:active 鼠标按下状态

​ 选择器:focus 获取焦点状态 专门用在 表单控件

​ 方便记忆:驴哈lvha

background开头的css属性是专门针对 背景设置的

​ background-color: 背景颜色

​ background-image: 背景图片

​ background-image:url(图片路径) 如果图片路径中有特殊符号 最好是假双引号: url(“路径”)

​ 背景图片默认是按照图片原大小进行平铺

​ background-repeat 背景重复模式

​ repeat(默认值) 横纵都重复(平铺)

​ repeat-x 横向重复

​ repeat-y 纵向重复

​ no-repeat 不重复

​ background-attachment 背景依赖

​ scroll(默认值 会随着页面的滚动 跟着元素一起滚动)

​ fixed (固定 不会随着页面的滚动而滚动)

​ 设置fixed属性以后 表示当前图片的 position是按照当前浏览器窗口来进行位置计算

​ 浏览器窗口的左上角是0 0 点

​ background-position:

​ 背景图片的位置 主要针对 no-repeat

​ background-position:x y; 中间空格隔开

​ \1. 五个方向的单词

​ 横向: left right

​ 纵向: top bottom

​ 居中: center

​ \2. px值

​ background-position:xpx ypx

​ 如果 没有fixed属性 则按照当前盒子的左上角为0,0 点

​ 进行px值的位移

​ \3. 百分比

​ background-position: 数值% 数值%; 先横向 后纵向

​ 按照当前宽高减去图片宽高剩余距离的百分比计算

​ 如果只写一个方向 那么另一个方向默认值是 center

​ background-size:

​ image默认是按照图片原大小作为背景图片

​ 当前属性可以缩放图片大小

​ background-size:数值px 数值px; 先宽 后高

​ background-size:百分比 百分比; 先宽 后高

​ 百分比按照当前元素的宽高计算百分比

background属性连写:

background: color image repeat attachment position/size(可以只写一个 但是写size就必须写position)

单行文本在元素中纵向居中: line-height:当前元素高度;

css盒子模型:

什么是?盒子模型是把HTML中元素看作为一个矩形盒子,相当于一个装内容的容器。

盒子的最终宽高=盒子设置的宽高+padding+border

盒子模型一般分为两大类:

谷歌盒子模型:

​ 盒子最终的宽高=盒子自身的宽高+padding+border

​ 属性值:

​ box-sizing:content-box;

IE盒子模型:

​ 盒子最终的宽高就是设置的 width和height的值

​ padding和border浏览器自动计算并减去

​ 属性值:

​ box-sizing:border-box;

单个方向 三个属性的连写:

border-方向: width style color; style:solid 实线边框dotted 点线dashed 虚线double 双实线

四个方向 三个属性总连写:(四个方向统一设置)

​ border: border-width border-style border-color;

padding连写:

四个值: 上 右 下 左

三个值: 上 左右 下

两个值: 上下 左右

一个值: 上下左右

margin连写(和padding一样)

四个值: 上 右 下 左

三个值: 上 左右 下

两个值: 上下 左右

一个值: 上下左右

margin关于auto的使用

auto值只能针对左右外边距生效 上下不生效

​ 表示自动分配的意思

​ 表示当前横向剩余空余 自动分配

​ 前提:

​ 当前元素必须是块级

​ 块级元素必须设置宽度 宽度小于父容器的宽度

​ auto值才可以分配剩余空间

​ 一个块级元素在另一个块级元素里面横向居中:

​ 给里面的块级设置:margin: 上下px auto;

​ 文字/行内/行内块元素 在块级里面横向居中:

​ 给块级元素设置: text-align:center;

margin边框合并的问题: 相邻元素之间如果都有边框 那么有可能产生 相邻位置边框比较宽 需要进行边框合并 利用margin负数进行盒子的重叠 从而实现盒子边框合并

边框塌陷:

子元素设置margin-top 会带着父元素一起下沉

​ 根本原因:

​ 父元素没有上边框 导致 子元素的margin-top作用到了浏览器上边

​ 导致父子元素一起下沉

​ 解决:

​ \1. 给父元素设置上边框

​ 同时设置box-sizing:border-box

​ 边框颜色: transparent

​ \2. BFC(块级格式上下文)

​ overflow:hidden;

​ 该属性可以清除一些异常显示效果

块级元素 margin和padding四个方向都可以任意设置

行内元素 设置padding依然会撑大盒子 但是撑大的部分不占位 不会挤其他元素 会导致盖住之前的元素

行内元素上下margin会忽略 不生效

左右margin正常使用

使用样式初始化 解决部分元素(标签)自带padding和margin的问题

浮动

float:left(左浮动) right(右浮动) none(默认值 不浮动) 让块级元素才一行内显示 行内元素浮动后就有了行内块的特点 浮动的元素会脱标 一旦脱标 就不在占位

针对父元素带来的影响解决方式:

​ 1. 给父元素设置高度

​ 2.BFC(块级格式上下文)

​ 3. 给父元素设置 overflow:hidden;

​ 4.给当前浮动元素加一个 伪元素选择器 :after

​ 浮动元素选择器:after:{

​ content:“”;

​ width:0;

​ height:0;

​ opacity:0;

​ line-height:0;

​ display:block;

​ clear:both;

​ }

​ 针对给后面元素/文字带来的影响:

​ \3. 定义一个class类 写上以下属性:

​ .clear{

​ width:0;

​ height:0;

​ opacity:0;

​ line-height:0;

​ display:block;

​ clear:both;

​ }

​ 在浮动元素跟后面元素之间 插入一个新元素 设置该类名

定位

position定位属性:

relative(相对定位) 不会脱标

absolute(绝对定位) 脱标 绝对定位是按照最近的有定位的父元素进行位置设置 如果父系元素都没有定位 则按照body定位(一般子绝父相)

fixed(固定)脱标 按照浏览器可视区域窗口定位(简称: 视口) 不会随着页面的滚动而滚动

static(静态定位) 默认值 没有定位

所有的居中布局:

​ 1. 横向居中

​ 行内,行内块,文本在一个块级的元素里面居中:

​ 给当前块级元素设置 text-align:center;

​ 行内,行内块,文本在一个行内块元素里面居中

​ 给当前行内块级元素设置 text-align:center;

​ 块级元素在另一个块级元素里面横向居中:

​ margin:0 auto;

​ 前提: 内部的可以有宽度

2.纵向居中
​ 行内,文本在一个块级元素里面纵向居中:

​ 给当前块级设置line-height: 当前元素高度

​ 前提: 行内或者文本必须是单行

​ 如果是行内块非要在一个块级里面纵向居中 那么前提

​ 给当前行内块设置: vertical-align:middle;

​ 给外面的块级设置line-height:当前块级高度

​ 行内,文本在一个行内块里面纵向居中

​ 给当前行内块级设置line-height: 当前元素高度

​ 块级元素在另一个块级元素里面纵向居中:

​ 1. margin-top:(父元素高度-当前元素高度)/2 px;

​ 2. 使用绝对定位 top:50% margin-top:-自身高的一半

​ 3.绝对居中

​ 1. 子绝父相的前提下:

​ 给子元素设置 left:50% top:50%

​ margin-left:自身宽的一半

​ margin-top:自身高的一半

​ 2. 子绝父相的前提下:

​ 给子元素设置:

​ left:0;

​ right:0;

​ bottom:0;

​ top:0;

​ margin:auto;

解决文字基线的问题:

vertical-align:top| middle|bottom|baseline(默认值 基线) |px值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值