层叠样式表(英文全称:Cascading Style Sheets) *层叠:多个样式可以作用在同一个html的元素上,同时生效
是一种用来表现HTML或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS很像化妆,通过不同的CSS将同样的HTML内容打造为不同的呈现结果。
所以,前端程序员相互表白的时候可以说:you are the CSS to my HTML.
这是不是CSS是对HTML进行美化和布局作用的最好总结?
根据定义CSS的位置不同,分为行内样式、内部样式和外部样式
也称为内联样式
直接在标签中编写样式,通过使用标签内部的style属性;
一般在测试的时候使用居多:
语法:
<html标签 style="样式1:值1;样式2:值2;....样式N:值N;">hello my css</html标签>
案例:
<div style="color: red;">hello my css</div>
弊端:只能对当前的标签生效,没有做到内容和样式相分离,耦合度太高。
定义在head标签内,通过style标签,该标签内容就是CSS代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>内部样式</title>
<style>
div{
color: red;
}
</style>
</head>
<body>
<div>hello my css</div>
</body>
</html>
1、提前定义css资源文件
2、在head标签内,定义link标签引入外部样式文件。
lina.css文件,放在与html页面同级的css文件夹中:
div {
color: red;
}
html页面中的引入
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>外部样式</title>
<link rel="stylesheet" href="css/lina.css" />
</head>
<body>
<div>hello my css</div>
</body>
</html>
作用域的范围:外部样式表>内部样式表>行内样式表
优先级:外部样式表<内部样式表<行内样式表;
同样的样式作用在同一个标签身上:就近原则;不同样式作用在同一个标签身上:叠加生效。
基本格式:由两个主要的部分构成:选择器,以及一条或多条声明:
选择器 {
属性1:值1;
属性2:值2;
...
}
选择器:筛选具有相似特征的元素
属性和属性值之间用冒号分割,不同的属性之间用分号隔开。
例如:
注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
CSS注释以 /* 开始, 以 */ 结束
/*这是CSS的注释*/
div {
color: red; /*文字颜色是红色*/
}
选择具有相同id属性值的元素,建议html页面中的id值唯一
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。
PS: ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
虽然多个元素可以使用同一个id选择器控制样式,但是不推荐。如果需要同样的样式对多个标签生效,使用class选择器。
选择具有相同的class属性值的元素。
class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。
class 选择器在HTML中以class属性表示, 在 CSS 中,类选择器以一个点"."号显示:
PS:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。
选择具有相同标签名称的元素。
定义选择器语法:标签名称{};PS:标签名称必须是html提供好的标签。
使用标签选择器:自动使用在所有的同名的标签上
ID选择器 > 类选择器 > 标签选择器
当多个选择器作用在同一个标签上的时候,如果属性冲突,看优先级;如果不冲突,样式叠加生效。
行内样式 > 内部样式 >外部样式
同样,三个样式表中都有内容作用在同一个html标签的时候,如果属性冲突,看优先级;如果不冲突,样式叠加生效。
跟颜色相关的取值分3种:
1、颜色的单词 red blue...
2、rgb(红,绿,蓝)三色的取值范围是0-255 rgb(255,0,0)
rgba(红,绿,蓝,透明度),透明度取值:0-1 0 全透明 1-不透明 0.5 半透明rgba(255,0,0,0.4)
3、#值1值2值3 :值的范式是00-FF 十六进制数字组成的 例如:#FF0000
PS:只有块状元素可以设置宽高,行级元素设置不生效。
取值方式有2种:
1:数值 绝对数字 单位是像素PX
2:百分比:占据父元素的比例
以谷歌浏览器为例说明。
快捷键F12或者工具条中的开发者工具调出以下内容。
在elements中可以看到当前页面的所有标签,在styles中可以看到html元素对应的样式。
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
盒子模型说明图:
元素的实际宽度和高度:
当我们计算一个元素实际在页面占有的总宽度计算公式是这样的:
总元素宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
元素的总高度最终计算公式是这样的:
总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动元素之后的元素将围绕它。
浮动元素之前的元素将不会受到影响。
如果你把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。
元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。
clear 属性指定元素两侧不能出现浮动元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>浮动</title>
<style>
div{
width: 400px;
height: 200px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<!--没有浮动属性的元素都属于常规文档流:从上往下从左往右依次显示
浮动的元素都脱离了常规文档流;
为了好理解:大家可以认为浮动元素属于一层,非浮动元素属于一层
如果想要非浮动元素不受浮动元素的影响,需要使用clear属性
-->
<div style="background: rgba(255,0,0,0.5); float: left;">
div1-左浮动,脱离常规文档流,紧贴父元素或者上一个同方向浮动
</div>
<div style="background: lawngreen; width: 600px; height: 350px; ">
div2-未浮动,常规文档流,
<br/>PS:此时div1在div2的上方显示,因为div1和div2是不同文档流中的元素,显示互不影响
如果不想让div2被浮动元素影响,需要添加clear属性。
添加clear: left;之后div2就会忽略div1浮动的影响,在div1层后面显示,不会重叠了,大家可以自己试验一下
</div>
<div style="background: lightblue; float: right; width: 1800px;">
div3-右浮动,脱离常规文档流,紧贴父元素或者上一个同方向浮动
</div>
<div style="background: lightcoral; width: 600px; height: 350px; ">
div4-未浮动,常规文档流,
<br/>PS:此时div3在div4的上方显示,因为div3和div4是不同文档流中的元素,显示互不影响
如果不想让div4被浮动元素影响,需要添加clear属性。
添加clear: right;之后div4就会忽略div3浮动的影响,在div3层后面显示,不会重叠了,大家可以自己试验一下
clear属性有三个取值:left、right、both;分别是取出左浮动、有浮动和所有浮动元素的影响
</div>
<div style="background: lavender;">
div5-未浮动,常规文档流,
</div>
</body>
</html>
控制内容溢出元素框时显示的方式。
overflow属性有以下值:
值 | 描述 |
visible | 默认值。内容不会被修剪,会呈现在元素框之外。 |
hidden | 内容会被修剪,并且其余内容是不可见的。 |
scroll | 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 |
auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 |
inherit | 规定应该从父元素继承 overflow 属性的值。 |
注意:overflow 属性只工作于指定高度的块元素上。
注意: 在 OS X Lion ( Mac 系统) 系统上,滚动条默认是隐藏的,使用的时候才会显示 (设置 "overflow:scroll" 也是一样的)。
display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏。
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。
visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
CSS样式有以下三个:
由两个或多个基础选择器,通过不同方式组合而成的。
可以更准确更精细的选择目标元素标签。
语法:* {} 一般去掉标签的一些默认效果的时候使用,或者整站通用效果时使用。但是不推荐,一般将 * 替换为常用标签的名称,并用逗号分隔,其实就是使用并集选择器。
并集选择器(CSS选择器分组)是各个选择器通过,连接而成的,通常用于集体声明。
语法:选择器1,选择器2,......选择器N{}
意思是多个选择器都是通用的样式。任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分。
条件:交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点。
语法:h3.class{ color:red; }
其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,例如div.list。
交集选择器是并且的意思。 即...又...的意思
例如: table.bg 选择的是: 类名为 .bg 的 表格标签,但用的相对来说比较少。
概念:后代选择器又称为包含选择器。
作用:用来选择元素或元素组的子孙后代。
其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔,先写父亲爷爷,在写儿子孙子。
格式:父级 子级{属性:属性值;属性:属性值;}
语法:.class h3{color:red;font-size:16px;}
当标签发生嵌套时,内层标签就成为外层标签的后代。
子孙后代都可以这么选择。 或者说,它能选择任何包含在内 的标签。
作用:子元素选择器只能选择作为某元素子元素(亲儿子)的元素。
其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接。
语法:.class>h3{color:red;font-size:14px;}
比如: .demo > h3 {color: red;} 说明 h3 一定是demo 亲儿子。 demo 元素包含着h3。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>复合选择器</title>
<style>
/*全局选择器:
一般去掉标签的一些默认效果的时候使用,或者整站通用效果时使用。但是不推荐,
*/
*{
color: #333;/*定义全局文字颜色,统一色彩基调*/
}
/*并集选择器:通常用于集体声明
替换全局选择器;
*/
div,p,dldt,dd{
/*去掉浏览器的默认样式*/
margin: 0;
padding: 0;
color: #333;/*定义全局文字颜色,统一色彩基调*/
}
/*交集选择器*/
li.myli{
color: red;
}
/*后代选择器*/
ul li{
font-size: 28px;
}
.myUL li{
font-family: "微软雅黑";
}
.myUL li a{
text-decoration: line-through;
}
/*子元素选择器*/
.demo>h3{
color: red;
}
</style>
</head>
<body>
<ul>
<li>li11111111111</li>
<li class="myli">li22222222222</li>
<li>li33333333333</li>
<li>li44444444444<a href="">点击我试试</a></li>
<li class="myUL">
<ul>
<li>li11111111111</li>
<li class="myli">li22222222222</li>
<li>li33333333333</li>
<li>li44444444444
<a href="">点击我试试</a>
</li>
</ul>
</li>
</ul>
<ol>
<li>li11111111111</li>
<li>li22222222222</li>
<li>li33333333333</li>
<li>li44444444444</li>
</ol>
<div class="demo">
div1
<h3>静夜思</h3>
<ul>
<li><h3>静夜思----li</h3></li>
</ul>
</div>
</body>
</html>
伪类选择器:和类选择器相区别类选择器是一个点 比如 .demo {} 而我们的伪类 用 2个点 就是 冒号 比如 :link{} 。
作用:用于向某些选择器添加特殊的效果。比如给链接添加特殊效果, 比如可以选择 第1个,第n个元素。
因为伪类选择器很多,比如链接伪类,结构伪类等等。我们这里先给大家讲解链接伪类选择器。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>伪类选择器</title>
<style>
/*伪类选择器*/
a:link{
color: red;/*默认颜色是红色*/
}
a:visited{
color: blue;/*访问过的页面是蓝色*/
}
a:hover{
color: green;/*鼠标悬浮是绿色*/
font-size: 28px;
}
a:active{
color: gold;/*按下鼠标不放手是金色*/
font-family: "微软雅黑";
}
</style>
</head>
<body>
<a href="03-常用样式.html" target="_blank">常用样式</a>
<a href="04-盒子模型1.html" target="_blank">盒子模型</a>
<a href="05-综合练习.html" target="_blank">综合练习</a>
</body>
</html>
注意**
a { /* a是标签选择器 所有的链接 */
font-weight: 700;
font-size: 16px;
color: gray;
}
a:hover { /* :hover 是链接伪类选择器 鼠标经过 */
color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
}
选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
后代选择器 | 用来选择元素后代 | 是选择所有的子孙后代 | 较多 | 符号是空格 p .one |
子代选择器 | 选择 最近一级元素 | 只选亲儿子 | 较少 | 符号是> .nav>p |
交集选择器 | 选择两个标签交集的部分 | 既是 又是 | 较少 | 没有符号 p.one |
并集选择器 | 选择某些相同样式的选择器 | 可以用于集体声明 | 较多 | 符号是逗号 .nav, .header |
链接伪类选择器 | 给链接更改状态 | 较多 | 重点记住 a{} 和 a:hover 实际开发的写法 |
数对于任何编程语言来说都是核心部分。通过函数可以封装任意多条语句和表达式,而且可以在任何地方、任何时候调用函数方法来执行。
在JavaScript中的函数使用function关键字声明,然后就是函数的参数和函数体。
函数的语法如下:
function functionName(arg0,arg1,arg2,...){ statements }
示例:
定义了一个hello方法, 这个函数通过其函数名来调用,函数输出结果是"Hello World"。函数中定义中的命名参数h和w被作用了字符串拼接的两个操作数,最终结果通过控制台打印显示出来。
JavaScript中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候都通过return语句后跟要返回的值来实现返回值。
带有返回函数的语法如下:
function functionName(arg0,arg1,arg2,...){ statements return result; }
示例:
凡是带有返回值的函数,在return之后写其它代码块是不会在执行的,因为已经把结果都返回出去了相当于这个函数已经结束了。
在严格模式对函数存在一些限制:
1、不能把函数名命名为eval或者arguments;
2、不能把参数命名为eval或arguments;
3、不能出现两个命名参数同名的情况。
如果发生以上的情况,会导致语法错误,代码执行不下去。
JavaScript函数的参数与大多数语言的函数参数有一点区别。JavaScript函数不介意传递进来多少个参数,也不在乎传递进来的参数是什么类型。即使定义的函数带有接收两个参数,在调用这个函数时也不一定要传这两个参数。可以不传参数、可以传一个参数、可以传两个参数甚至跟多。但是对于JavaScript解析器来说是不会报错的,完全正常解析。
原因在于JavaScript内部接收参数始终都是以数组来接收,实际上我们可以通过arguments对象来访问这个参数数组,从来获取传递函数的每一个参数信息。
访问arguments对象数组可以使用方括号来访问它的每一个元素,使用length属性来确定传递进来多少个参数。在前面的hello函数可以通过arguments[0]来获取参数。
示例:
arguments获取参数也是有顺序的,第一个参数传进来的是什么就是什么。
还可以不定义参数传递的值
如果值传递了一个值,然后通过arguments[1]获取参数,其实结果是undefined。arguments[0]是正常的参数值,因为只传了一个值。
JavaScript中除了对象类型参数,其它参数都是值传递,不可能通过引用参数传递
而且JavaScript中的函数不存在重载,定义多个函数名相同并且参数个数不同的方法进行调用,永远都是拿最后定义的那个函数作为方法调用。
调用的是带两个参数的函数,因为我这里只传了一个值,第二个值默认是undefined。
所以说JavaScript不存在方法重载的这一方法。
页是什么,大家打开的任何一个页面都是网页,那么网页是怎么做的呢?那我们在学习html之后,我们能不能做出想这么漂亮的网页呢?
我们大数据学的偏向后端的学习,而html是比较前端的知识。不怕,我们通过10天的学习,完全可以做出比学习h5的同学更好的页面,一点问题都没有。关注一下,带你上车。
HTML就是描述网页的一种语言,它具体指的就是超文本标记语言,在这里我们需要注意的一点是,html不是编程语言,而是一种标记语言,这是我们需要明确的。标记语言又是一套标记标签。
那么,准确的说,HTML就是使用标记标签来描述网页的一种标记类型的语言。一个完整的HTML文档中包含了HTML标签和文本的内容,这也就我们说的web页面。
创建一个页面,我们只需要新建一个.txt文件,我们将后缀名改成.html或者htm就可以了。
我们想要使用超文本标记语言,那就得服从人家的标准。
我们看到顶部的头DOCTYPE,DOC就是document的缩写,第一句话我们声明的文档类型为html。
下面是一个html网页的简单结构,我们在<head>中可以放一些<style>样式,<scrip>t脚本以及<meta>元数据等标签去丰富我们的页面,在<body>体内我们存放着可视化的内容。
这就是我们html的一个简单的网页结构,通过这个可以让你对html语言更加的清晰。
在上面的<html></html>或者<p></p>等成对出现的代码,就是我们的标签,有开始有结束。
只要是标签,我们都是以间括号修饰(大部分),而结束标签多了一个反斜线"/"。
HTML元素与HTML标签区别:
这两个名词通常都是描述同样的意思,严格意义上,HTML元素包含了开始的标签和结束的标签,有两部分组成。
下面标签我们不强调的都是双标签。
标题<h1...h6>
htm中的标题是通过<h1...h6>标签来定义的,数字越大,字体越小。最小只有到6,再小也没有什么意义了。
h标签我们一般用在文章的标题。
段落<p>
段落标签我们一般会使用在 新闻类的文章中使用居多。使用此标签我们可以将文章分段输出。
链接<a>
html中使用呢<a>标签来链接目标的地址,而我们在href写入我们的连接。
在a标签中还有一个重要的属性叫做target,它定义了我们以什么样的形式去打开我们网页。默认是会在当前页面打开链接,而我们给它一个值“_blank”,我们再去点击的时候就会发现,浏览器打开了一新页面。
图片<img>
html中我们用img来显示一张图片。img中有一重要的属性,src,我们给src一个图片的地址路径。<img></img>是一个成对的标签,但是我们一般不会再标签中间再去写文字,所以我一般这么使用图片标签<img src=“ ” />,将后面的img省略掉。所以img元素是自闭元素,不需要结束标记。
height:定义图片的高 , width:定义图片的宽
文本格式化标签
水平线和折行标签
在html中我们使用<hr/>,给我们的web页面中加一条水平线。我们使用<br/>来折行,也就是换行标签。
我们可以看到折行标签的行间距比起段落标签来更小。
表格(重要)
表格在HTML中是有<table>标签来定义的,每个表格都是由<tr>标签定义的行和每行被<td>标签分割的单元格组成的。
这里我们使用rowspan合并单元格
我们使用colspon来合并列。
列表
表单
完成之后,我们的网页效果图如下:
Head头部
上面就是对javaweb中html框架的简单介绍,在没有css样式情况下,我们的页面还仅仅只是比较简单的。后续我们将继续进行讲解,10篇文章我们就可以超h5的学生。一起加油~爱学习的人都会关注呦~
感谢坚持关注的朋友~
世界很大,幸好有你~
欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。
聚焦最新科技咨讯,探寻未来智能领域,我是Mario女陶。
*请认真填写需求信息,我们会在24小时内与您取得联系。