学习前端抓好三门 HTML+CSS+JS
一、CSS简介
1、什么是CSS
CSS:Cascading Style Sheet 层叠样式表
是一组样式设置的规则,用于控制页面的外观样式
2、为什么使用CSS
实现内容与样式的分离,便于团队开发
样式复用,便于网站的后期维护
页面的精确控制,让页面更精美
3、CSS作用
页面外观美化
布局和定位
二、基本用法
1.语法
<head>
<style>
选择器{
属性名:属性值;
属性名:属性值;
}
</style>
</head>
- 选择器:要修饰的对象(东西)
- 属性名:修饰对象的哪一个属性(样式)
- 属性值:样式的取值
注意:记得加分号 但是最后一个属性值后可以不加 但是便于规范 都加上分号 " ; " ;
演示:
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p {
color: red;
background: #cccccc;
}
h3 {
color: aqua;
}
</style>
</head>
<body>
<p>演示CSS</p>
<h3>演示样例</h3>
</body>
</html>
2、CSS应用方式
也称为CSS引用方式,有三种方式:内部样式、行内样式、外部样式
2.1 内部样式
也称为内嵌样式,在页面头部通过style标签定义
对当前页面中所有符合样式选择器的标签都起作用
2.2 行内样式/内联样式
也称为嵌入样式,使用HTML标签的style属性定义
只对设置style属性的标签起作用
2.3 外部样式
使用单独的 .CSS 文件定义,然后在页面中使用 link标签 或 @import指令 引入
href=“css样式文件的路径”
外部样式引用 有俩种方式
方法一:
<link>
标签
使用 link标签 链接外部样式文件
<link rel="stylesheet" type="text/css" href="CSS样式文件的路径">
这里的type 可以省略 我的就省略了
方法二:
@import
指令 导入外部样式文件
<style>
@import "CSS样式文件路径";
@import url(CSS样式文件路径);
</style>
样例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p {
color: red;
background: #cccccc;
}
h3 {
color: aqua;
}
</style>
<link rel="stylesheet" href="../../css+js/CSS/样式一.css">
</head>
<body>
<p>演示CSS</p>
<hr>
<h3>演示样例</h3>
<hr>
<h2>样式表一</h2>
</body>
</html>
css文件是
h2{
color: blue;
}
三,选择器
选择题 说白了 就是为了方便
1、基础选择器
1.1 标签选择器
也称为元素选择器,使用HTML标签作为选择器的名称 以标签名作为样式应用的依据
<style>
p {
color: red;
background: #cccccc;
}
h3 {
color: aqua;
}
</style>
这里的 p 标签和 h3 标签就是标签选择器
1.2 类选择器
使用自定义的名称,以 . 号作为前缀,然后再通过HTML标签的class属性调用类选择器
以标签的class
属性作为样式应用的依据
注意事项:
- 调用时不能添加 . 号
- 同时调用多个类选择器时,以 空格 分隔
- 类选择器名称不能以 数字 开头
让我来演示一手 举个梨子好吧
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p {
color: red;
}
.one{
color: blue;
}
.two {
color: aqua;
}
</style>
</head>
<body>
<p>演示一</p>
<p class="one">演示二</p>
<p class="two">演示三</p>
</body>
</html>
这里值得一提的是 在引用类标签的时候 后面的才是为主的 就比如我的p标签一开始颜色是红 但是我有引用了 蓝色 然后结果是蓝色的。 相当于 覆盖 了 但 如果类标签没有的之前的 那就不能覆盖 怎么说呢 我感觉我说的有点混了 希望你们能懂!
1.3 ID选择器
通过 id 选择器给指定 id 的元素添加样式,网页中 HTML 标记的 id 属性的值,任何的HTML标签都可以有id属性,其值必须是唯一的
id 属性一般是给 JS 使用的,id 选择器的名称,必须以 “#” 开头
这个标签的 id 属性值的命名规则:
- 只能有字母、数字、下划线
- 必须以字母开头
- 不能和标签同名;比如 id 不能叫做 body、img、a 等
一个HTML页面,不能出现相同的 id(id必须是唯一的),哪怕他们不是一个类型的标签,比如页面上有一个 id 为 myId 的 p标签,一个 id 为 myId 的 div 标签,是非法的!
来看梨子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
#one{
color: blue;
}
#two {
color: aqua;
}
</style>
</head>
<body>
<p>演示一</p>
<p id="one">演示二</p>
<p id="two">演示三</p>
</body>
</html>
区别
- id只能一对一
- class 区别于id 可以多个标签 使用同一个属性
- 标签选择器 没别的 就是麻烦…
2、复杂选择器
2.1选取所有元素
- 选择器选择所有元素。
- 选择器也可以选择另一个元素内的所有元素。
语法:
* 选择器名称 {
属性名1:属性值1;
属性名2:属性值2;
...
}
我想把所有标签的文字都改为红色
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p{
color: blue;
}
*{
color:red;
}
</style>
</head>
<body>
<p>演示一</p>
<h4>演示二</h4>
</body>
</html>
但是 这个只改了 h4标签的属性 p标签没有修改
所以 该选择器的目的 就是 修改没有修改属性的标签;
2.2 并集选择器
element,element 几个元素具有相同的样式,用逗号分隔每个元素的名称。 也是方便罢了
使用格式:
element1,element2 {
属性名1:属性值1;
属性名2:属性值2;
...
}
上例子 啊呸 上梨子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p,h3{
color: red;
background: aqua;
}
</style>
</head>
<body>
<p>演示一</p>
<h3>演示二</h3>
</body>
</html>
2.3 子选择器
这个 怎么说呢
大概意思就是 如果你只想改一部分的p标签 不是全部都改
那么你就有俩种方法
法一: 子选择器
法二:在你需要改的地方 行内修改
下面 我们来说一下子选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
div>p{ 这里就是告诉他们 在div标签下的p标签改为这个样式 其余的不变
background: antiquewhite;
color: blue;
}
p{
background: cadetblue;
color: red;
}
</style>
</head>
<body>
<p>演示一</p>
<div>
<p>
演示二
</p>
</div>
</body>
</html>
2.4 父选择器/后代选择器
这个应该也有喊 后代选择器的吧
标签之间 用空格分开
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
div p{
background: antiquewhite;
color: blue;
}
p{
background: cadetblue;
color: red;
}
</style>
</head>
<body>
<p>演示一</p>
<div>
<p>
演示二</p>
<p> 演示三</p>
</div>
</body>
</html>
然后你们发现 是不是一样的
其实我一开始也以为 然后试了好久
得出:
举例子 就是:
后代:
子选择器: 只能管一层
2.5 属性选择器
[attribute=value] 选择器用于选择指定了属性和值的元素。
使用格式:
元素名称[属性名="属性值"] {
属性名1:属性值1;
属性名2:属性值2;
...
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
a[target=_blank]
{
background: aqua;
}
</style>
</head>
<body>
<a href="#" target="_top">演示一 </a>
<a href="#" target="_blank">演示二</a>
</body>
</html>
2.6 伪类选择器
这里用 :link 选择器为例
:link向未访问的链接添加特殊的样式。
注意: :link 选择器对已经访问的链接没有样式。
提示:
使用 :
- visited 选择器设置访问过的页面链接的样式,
- :hover选择器当有鼠标悬停在其上的链接样式,
- :active 选择器设置当你点击链
使用格式:
元素:状态 {
属性名1:属性值1;
属性名2:属性值2;
...
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
a:hover
{
background: aqua;
}
</style>
</head>
<body>
<a href="#" target="_top">演示一 </a>
<a href="#" target="_blank">演示二</a>
</body>
</html>
这里就是 当鼠标放在上面的时候 进行背景填充 因为截图 然后鼠标标识不见了。
四、常用CSS属性
1.字体属性
1.1 font-size
取值:
- px像素 pixel
- %百分比,相对父标签字体大小的百分比
html 默认16px
1.2 font-weight
取值:
- normal普通(默认)
- bold粗体
- 自定义400 normal 700 bold
1.3 font-family
要求系统中要安装指定的字体
一般建议写3种字体:首选、其次、备用。以逗号隔开
1.4 font-style
取值:
- normal普通
- italic斜体
1.5 font 简写
简写属性:font:font-style|font-weight|font-size|font-family
必须按此顺序书写
说了这么多 来个梨子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示样例</title>
<style>
p{
font-family: 宋体;
font-size:25px;
font-weight: bold;
font-style: italic;
}
.one{
font-family: 华文细黑;
color: red;
}
.two{
font-style: normal;
font-weight: normal;
}
</style>
</head>
<body>
<p>演示一</p>
<p class="one"> 演示二 </p>
<p class="two">演示三</pc>
</body>
</html>
2.文本属性
color
取值,四种写法:
- 颜色名称:使用英文单词
- 16进制的RGB值:#RRGGBB // 不区分大小写
- rgb函数:rgb(red,green,blue) 取值范围[0-255]
- rgba函数:rbga(red,green,blue,alpha) 取值范围[0-255]
rgba可以设置透明度,alpha取值范围:[0,1] 0表示完全透明 1表示完全不透明
例如:
rgba(255,0,0,1)----->纯红
rgba(255,0,0,0.5)---->红色半透明
这里就不给大家一一演示了 用法和前面一样 只要添加属性 添加对应的属性值 就ok了
3.背景属性
3.1 background-color 背景颜色
好了 上梨子
取值:
transparent 透明
你需要什么背景再去修改对应的颜色
3.2 background-image 背景图片
- 必须使用url()方式指定图片的路径
- 如果是在css样式文件中使用相对路径,此时是相对于css文件,不是相对html文件
3.3 background-repeat 背景图片的重复方式
取值:repeat(默认),repeat-x,repeat-y,no-repeat
3.4 background-position 背景图片的显示位置
默认背景图显示在左上角
取值:
- 关键字:top、bottom、left、right、center
- 坐标:左上角为(0,0)坐标,向右为x正方向,向下为y正方向
原理:使用background-position进行背景定位,使用坐标精确地定位出背景图片的位置
3.5 background-attachment 背景图片是否跟随滚动
取值:scroll(默认)、fixed固定不动
3.6 background 简写
简写属性:
background:background-color|background-image|background-repeat|background-position
以空格隔开,书写顺序没有要求
例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
/* li{
list-style-type:decimal;
} */
.first{
list-style-type:circle;
}
.second{
<!-- list-style-image:url()inside; 里面放照片的url 因为我没有合适的照片 就没有放 -->
}
.third{
list-style-type:circle;
list-style-position:inside;
}
.fourth{
<!-- list-style:circle url()inside; 同上 -->
/* list-style:none; */
}
.nav{
/* list-style:none;
float:left; */
}
.nav li{
list-style:none;
float:left;
width:70px;
}
</style>
</head>
<body>
<ul>
<li class="first">hello</li>
<li class="second">hello</li>
<li class="third">hello</li>
<li class="fourth">hello</li>
</ul>
<hr>
<nav>
<ul class="nav">
<li>新闻</li>
<li>小说</li>
<li>政治</li>
<li>学习</li>
</ul>
</nav>
</body>
</html>
4 边框
这个就是 border
分为四个方向:
上top、右right、下bottom、左left
border-top、border-right、border-bottom、border-left
五、盒子模型
盒子模型是网页布局的基础,将页面中所有元素都看作是一个盒子,盒子都包含以下几个属性:
- width 宽度
- height 高度
- border 边框
- padding 内边距
- margin 外边距
2.1 border
表示盒子的边框
分为四个方向:
上top、右right、下bottom、左left
border-top、border-right、border-bottom、border-left
每个边框包含三种样式:
border-top-color、border-top-width、border-top-style
border-right-color、border-right-width、border-right-style
border-bottom-color、border-bottom-width、border-bottom-style
border-left-color、border-left-width、border-left-style
样式style的取值:
solid实线、dashed虚线、dotted点线、double双线、inset内嵌的3D线、outset外嵌的3D线
2.2 padding
表示盒子的内边距,即内容与边框之间的距离
同样也分为四个方向,也可以简写(按顺时针方向,默认上下一样,左右一样)
注意:如果上下冲突,则以上为准,如果左右冲突,则以左为准
2.3 margin
表示盒子的外边距,即盒子与盒子之间的距离
同样也分为四个方向,也可以简写(按顺时针方向,默认上下一样,左右一样)
浮动属性
通过float属性来实现元素的浮动,可以让块级元素脱离常规的文档流,向左或向右移动,在同一行显示,
如果一行显示不下,则会换行显示
常用取值:
- left左浮动
- right右浮动
- none不浮动,默认值
设置float属性后,元素会浮在页面上层,此时父容器无法计算自己尺寸,如果我们还想显示父容器通常会在末尾添加一个清除了float属性的空的div来解决
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#container{
/* width:800px; */
border:1px solid #000000;
}
.div1,.div2,.div3,.div4{
width:100px;
height:50px;
}
.div1{
background:red;
float:left;
}
.div2{
background:blue;
float:left;
}
.div3{
background:green;
float:left;
}
.div4{
background:cyan;
float:left;
}
.clr{
clear:left;
}
</style>
</head>
<body>
<div id="container">
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>
<div class="div4">div4</div>
<div class="clr"></div>
</div>
aaa
</body>
</html>
今天 大概就介绍到这里 其实 最后面的 说得不是特别全 然后就可能让大家没有更好的理解