html
html&c s s
HTML
HTML基本概念
什么是HTML?
超文本标记语言(
HyperText Markup Language
),标准通用标记语言下的一个应用超文本就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素
HTML
不是一种编程语言,而是一种标记语言
HTML基本语法
基本结构
如下所示,这是一个非常简单基本的html结构
在谷歌等浏览器中,也可以通过右键一个页面,查看元素获取到一个网站的基本html源代码
<!DOCTYPE html>
声明为 HTML
文档,HTML
文档也常称为网页
一个文档包含
HTML
标签和文本
<html>
与 </html>
之间的文本描述网页,同时 HTML
元素也是当前页面的根元素
<title>
元素描述当前文档页面的标题
<body>
与 <body>
之间的文本是可见的页面内容
<h1>
与 </h1>
之间的文本被显示为标题
与
之间的文本被显示为段落
标签规则
基本结构中诸多尖括号所组成的代码被称为 标记标签
(HTML标签),遵循如下基本规则
标签由尖括号
<>
包围标签经常
成对
出现,由开始标签与结束标签组成多数情况下,标签支持
互相嵌套
,用来实现更复杂的页面内容
注释语法
注释主要为页面代码进行标识标注,方便开发者进行代码阅读
本身解释器或编译器不会解释任何注释内容,只会当做空白处理,浏览器在遇到注释时同样如此
HTML常见标签
块级标签
块级标签最明显的特征为独占一行,不会和其他元素待在同一行
其次具备的特点是可以设置宽、高属性
标题标签
段落标签
块级标签
列表标签
表单标签
标题标签
呈现加粗,加大的字体样式,从h1~h6,越来越细越小
行级标签
行级标签不具备自动换行的属性
并且设置行级标签的宽高也是无意义的
跳转标签
文本标签
跳转标签
跳转标签使用 a
标签,通过标签的 href
属性指明在点击时跳转的地址
行内块标签
行内块标签拥有内在尺寸,可设置高宽
但是这样的标签不会自动换行
图片标签
按钮标签
图片标签
图片标签为 img
标签,可以在页面加载图片资源,使用相对、绝对、网路资源都是可以的
使用 src
属性指明图片资源地址,alt属性表示光标位于图片时所显示的内容,或是当图片加载失败时所显示的内容
样式标签
加粗
斜体
下划线
删除线
加粗
加粗文本可以使用 b
标签,也可以使用 strong
标签
HTML表格标签
表格标签由 table
标签进行定义,是在页面中表示数据时经常使用到的标签元素
每一行: tr
[table row
]
每一行有几个单元格: td
[table data
]
表头: th
[table header
]
表格外边框
表格边框覆盖
表格单元格合并
表格文字对齐
表格外边框
border
: 定义表格边框,数字越大,边框越粗
caption
: 定义表格标题
[tab name="表格单元格间距"]
表格单元格间距
cellpadding
: 表格单元边界与单元内容之间的间距
cellspacing
: 单元格之间间距
HTML表单标签
大部分表单标签(input
、textarea
、select
)属于行块级元素,具备内在尺寸,宽高属性等,但不会自动换行
表单用于收集不同类型的用户输入,表单由不同类型的标签组成
单行文本
单选框
复选框
文件框
多行文本
下拉菜单
多选下拉菜单
单行文本
普通文本输入框使用 text
类型
label
标签可以为表单框进行标识说明,为用户带来更好的体验,并且当光标点击label标签时,会自动将焦点移动至对应的输入框中
当type类型为 password
时,为密码输入类型,输入的内容以 *
号代替
value
: 表单框输入的实际内容
name
: 定义表单数据标识符,提交数据时声明该数据的键
placeholder
: 表单框输入前提示内容
Css基本概念
什么是Css?
css指层叠样式表(Cascading Style Sheets
),通俗的理解就是可以为标签元素带上颜色、大小、粗细状态等表现形式
样式通常存储在样式表中,也可以独立定义一个外部样式表文件,这些文件通常存储后缀为css
有了CSS
,html
中大部分表现样式的标签就可以不用了
html
可以专心的只负责文档的结构和内容,而表现形式完全交给CSS
,这样也就使得html
文档变得更加简洁
Css引入方式
在页面中集成使用css的方式有主要三种
内联式
嵌入式
外部式
内联式
直接在页面标签元素上进行编写,通过style
属性定义
优先级
在相同的样式定义时,会遵循如下优先级规则
内联式 > 嵌入式 > 外部式 (就近原则)
Css基本语法
css语法由两部分构成:选择器、一条或多条样式声明
当属性中的值为若干单词时,需要加引号
属性(property
)是您希望设置的样式属性(style attribute
),每个属性有一个值,属性和值之间被冒号分开
Css选择器
标签选择器
类选择器
属性选择器
层级选择器
ID选择器
伪类选择器
标签选择器
影响范围大,常做通用设置,或用在层级选择器中
CSS选择器权重
当有多个同类样式作用于同一个元素时,权重高的样式对元素起作用,权重相同时后写的样式覆盖前面写的
选择器权重值如下,遵循就近原则
内联式样式:
1000
ID
选择器:100
类选择器:
10
标签选择器:
1
还可以使用!important
语句将样式权重设置为10000
,!important
写到样式属性值后对该样式进行权重设置
Css样式属性
宽高属性
width
: 设置元素(标签)的宽
height
: 设置元素(标签)的高
背景属性
background
: 设置背景色或背景图
background
属性还可以分解为如下几个设置:
background-color
: 设置背景颜色background-image
: 设置背景图片地址background-repeat
: 设置图片如何重复平铺,可选参数有repeat
: 全局重复repeat-x
: 水平方向重复repeat-y
: 垂直方向重复no-repeat
: 图片只显示一次)
background-position
: 设置图片的位置,可选参数有left
、right
、center
: 设置图片是固定的还是会随页面滚动,可选参数有
scroll
: 背景图片会随着页面其余部分的滚动而移动fixed
: 页面的其余部分滚动时,背景图像不会移动
注意:在背景图片路径填写时,如果使用内联式写法则从当前页面路径开始查找相对路径,如写在外部CSS
文件中,则以CSS
文件为相对基础
文本属性
color
: 设置标签中的文字颜色
font-size
: 设置标签中的文字大小
font-family
: 设置元素中的文字字体
font-widght
: 设置元素中的文字是否加粗
line-height
: 设置元素中的文字行高
text-decoration
: 设置元素中文字的下划线 支持如下属性
underline
:定义文本下的一条线overline
:定义文本上的一条线line-through
:定义穿过文本的一条线blink
:定义闪烁的文本inherit
:规定应该从父元素继承text-decoration
属性的值
text-align
: 设置元素中文字对齐方式
text-indent
: 设置元素中文字的首行缩进
Css样式属性
宽高属性
width
: 设置元素(标签)的宽
height
: 设置元素(标签)的高
背景属性
background
: 设置背景色或背景图
background
属性还可以分解为如下几个设置:
background-color
: 设置背景颜色background-image
: 设置背景图片地址background-repeat
: 设置图片如何重复平铺,可选参数有repeat
: 全局重复repeat-x
: 水平方向重复repeat-y
: 垂直方向重复no-repeat
: 图片只显示一次)
background-position
: 设置图片的位置,可选参数有left
、right
、center
: 设置图片是固定的还是会随页面滚动,可选参数有
scroll
: 背景图片会随着页面其余部分的滚动而移动fixed
: 页面的其余部分滚动时,背景图像不会移动
注意:在背景图片路径填写时,如果使用内联式写法则从当前页面路径开始查找相对路径,如写在外部CSS
文件中,则以CSS
文件为相对基础
文本属性
color
: 设置标签中的文字颜色
font-size
: 设置标签中的文字大小
font-family
: 设置元素中的文字字体
font-widght
: 设置元素中的文字是否加粗
line-height
: 设置元素中的文字行高
text-decoration
: 设置元素中文字的下划线 支持如下属性
underline
:定义文本下的一条线overline
:定义文本上的一条线line-through
:定义穿过文本的一条线blink
:定义闪烁的文本inherit
:规定应该从父元素继承text-decoration
属性的值
text-align
: 设置元素中文字对齐方式
text-indent
: 设置元素中文字的首行缩进
Css盒子模型
在html标签中,所有的标签都有自身具备的大小款高,以及外边框、边距,这被称为盒子模型 一个盒子模型主要的构成是内容(content
)、内边距(padding
)、边框(border
)、外边距(margin
)
内边距
外边距
边框属性
内边距
padding
: 设置元素包含的内容和元素边框的距离,也叫内边距
这个样式属性也可以拆分成以下单独四种,可以分别设置对应位置的内边距
padding-top
:设置上内边距padding-bottom
:设置下内边距padding-left
:设置左内边距padding-right
:设置右内边距
Css浮动属性
通过浮动操作float
,可以使dom元素脱离文档流,在页面上具备居左、中和右的效果特点
移动后的元素,会导致其他元素随之重新排列在页面上的顺序位置,就相当于你不在的位置,别人会抢占
浮动通常利用与图像元素,或是对元素进行布局
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止
如果浮动方向空间不足,元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止
浮动常见属性
清除浮动
元素浮动之后,周围的元素会重新排列,为了避免这种情况,可以为浮动的元素使用clear属性
clear属性指定元素两侧不会出现浮动元素,也实现了独占一行的额效果
Css元素溢出
当子元素的大小超过所承载的父元素大小时,此时需要设置父元素对于溢出的子元素显示方式
可以通过overflow属性进行溢出属性的控制,可选项有如下这些
visible
: 默认值,内容不会被修剪,会呈现在元素框之外hidden
: 内容会被修剪,并且其余内容是不可见的scroll
: 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容auto
: 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
Css-Display
display
属性可以控制标签元素的类型显示方式,常见的有如下选项
none
: 元素不会显示,也就是藏起来block
: 元素将显示为块级元素,此元素前后会带有换行符inline
: 此元素被显示为内联元素,元素前后没有换行符list-item
: 元素作为列表显示
table
: 元素作为块级表格来显示,表格前后带有换行符inline-table
: 元素作为内联表格来显示,表格前后没有换行符table-cell
: 此元素会作为一个表格单元格显示table-caption
: 此元素会作为一个表格标题显示
每个元素都有一个默认 display 值,并且可以被覆盖
除了display: none
可以隐藏元素之外,也可以使用visibility: hidden
但是visibility: hidden
隐藏的元素还会在文档流中占据自己的一席之地,虽然元素被隐藏,但是还会影响实际的布局效果
Css定位属性
什么是文档流?
CSS定位通过position属性进行规定,可选项有如下这些
static
属于css的默认值,默认定位方式,遵循标签元素的块、行特点
从上到下,从左到右
relative
是相对定位方式,会按照元素的原始位置对该元素进行移动
可以通过方向移动其位置,并且原本位置也会保留,不会被周围元素侵占
absolute
绝对定位元素,当前元素会脱离文档流,相当于飘起来了
可以通过方向移动其位置,原本位置会被周围元素侵占,而他本身将会覆盖在侵占元素之上
设置了absolute的元素将会基于当前元素
的父元素进行偏移,而且这个父元素还是设置过定位的
如果父元素均未设置position属性,那么将相对于body元素进行位置偏移
fixed
固定定位元素,元素脱离文档流,不占据文档流的位置,相对于浏览器窗口进行定位
不管页面如何滚动,都会固定在页面的位置,比如导航条
sticky
是一种新的定位方式,相当于包含fixed与relative结合,元素最初会被处理为相对定位
当元素距离浏览器窗口一定位置时,可以使当前元素固定在一定位置,成为固定定位
其余情况,则还可以跟随窗口滚动
设置了定位的元素的偏移方式
top
: 定位元素的上外边距边界与其包含块上边界之间的偏移bottom
定位元素下外边距边界与其包含块下边界之间的偏移right
: 定位元素右外边距边界与其包含块下边界之间的偏移left
: 定位元素左外边距边界与其包含块下边界之间的偏移
除此之外,还可以通过z-index属性设置元素的堆叠属性,当两个或多个元素因为定位导致叠在一起时
Css伪类
css伪类可以定义元素的特殊状态,比如设置鼠标悬停在元素上时的样式,或者控制连接访问前后的样子
基本语法
锚伪类
可以控制连接在不同的访问情况下的显示样式
未访问的连接
访问过的连接
悬停在元素处
已选择的连接
first-child
匹配元素是另一个元素的第一个子元素
任何一个子元素,并且是第一个,且是p标签,将被如下规则匹配
比如如下的html,所有第一个元素为p的,将会生效上面的效果
Css-flex布局
Flex可以使元素成为一种容器,而在容器内的子元素将会成为容器成员
设置为flex属性后,子元素的float
、clear
和vertical-align
属性将失效
通俗的来说,flex需要设置父级元素,像是这样,成为flex容器
在这种样式下的子元素,将会处于flex容器之中,可以支持进行便捷的布局样式控制,如排列等
当设置为容器后,容器内将会拥有两个轴,大家常称为主轴和侧轴
一般主轴是x轴方向的,侧轴是y轴方向的
父级属性
父级可以设置的属性
flex-direction
: 控制容器内子元素排列方向flex-wrap
: 控制一行排列不下时,换行的属性控制justify-content
: 设置子元素在主轴上的排列方式align-items
: 设置子元素为单行时,在侧轴上的排列方式align-content
: 设置子元素为多行时,在侧轴上的排列方式flex-flow
: 是flex-direction
和flex-wrap
的复合属性
flex-direction
控制容器内元素排列方向
row
row-reverse
column
column-reverse
row
:主轴在水平方向,顺序排列
flex-wrap
控制多个元素的排列方式,如果一行排列不下,如何进行排列,是互相挤着?还是另起一行
flex默认的子元素,在摆放时是不会换行的,在一行放不下时,只会元素的大小进行缩放,将其适应能放到这一行大小上
nowrap
: 默认值,不换行
比如在row
情况下,如果一行放不下,那么第四个元素出现
容器内一行的四个元素都会有适当的宽度缩小,让其可以真正可以在一行存放得下
wrap
wrap-reverse
wrap
: 换行
如果一行内元素摆放不下,那么另起一行从头开始摆放
注意
: 换行之后,行之间会额外多空行
justify-content
控制子元素在主轴上的对齐方式
flex-start
flex-end
center
space-around
space-between
flex-start
: 默认值,从左到右,如果主轴是y轴,那么从上到下
设置子元素在侧轴上的对齐方式,可以与justify-content
属性配合使用
注意
: 适合在子元素单行时使用
flex-start
flex-end
center
stretch
flex-start
: 从上到下
如果希望可以将一行元素整个容器内居中,可以分别设置主轴和侧轴居中
align-content
设置子元素在侧轴上的对齐方式,适用于多行子元素的情况下,也就是子元素换行属性flex-wrap: wrap;
单行情况下是无效的
flex-start
flex-end
center
space-around
space-between
stretch
flex-start
: 从侧轴开头进行换行排列,并且还可以取消默认wrap
换行带来的空行
flex-flow
是flex-direction
和flex-wrap
的复合属性
设置主轴方向子元素排列方式以及是否换行(换列)
换行并采用row方向排列子元素
子元素属性
flex
: 设置子元素在剩余空间内所占的份数,默认为0align-self
: 控制子项目在侧轴的排列方式,可以让单独某个子元素拥有不一样的对齐方式order
: 元素位置顺序,越小越靠前,默认为0
flex
设置子元素在剩余空间内可以占的空间,分配的空间也是剩余的空间,主要针对于单行子元素进行布局控制
比如三个子元素处于单行,现在可以让第二个子元素占据整个剩余空间,那么可以使用
一般来说,如果设置了flex
属性,那么元素本身的宽的意义就不太大了,要按照flex
分割好的块数进行元素的宽度维护
align-self
让某个子元素有自己的侧周排列方式,和align-items
类似,可以单独让某个元素在侧周的排列位置上不同
覆盖align-items
属性
order
定义子元素先后排列顺序,数值越小,越靠前(前后位置上靠前),默认为0
最后更新于