Web前端-CSS语言

CSS语言

1.CSS语言是什么?

CSS是CascadingStyle sheet的缩写。译作”层叠样式表单“。适用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记语言

2.HTML与CSS的关系?

html是网页的内容,而css定义页面的样式。

3.基本语法

a.行内样式表

行内样式表(内联样式,行间样式,内嵌样式。):通过标签的style属性来设计元素样式。在标签中写,并且在一行内。

举例:<p style="color:red;font-size:30px;font-family:隶书"> 在style中有color(字体颜色),font-size(字体大小),font-family (字体形式)等属性。

b.内嵌样式表

内嵌样式表是将CSS代码集中写在HTML文档的head头部标签中,并且用style标签定义。

举例:

<head>
		<meta charset="utf-8" />
		<title></title> 
		<!--内嵌表从这里开始,style type="text/css"是声明格式为样式表 -->
		<style type="text/css">
		<!-- p{}为选择器,功能是为所有p标签赋予p{}中的属性。-->
		   p{
			  color: red; 
			  font-size: 20px; 
		   }
		</style>
	</head>

内嵌样式表通常和选择器一起使用,选择器将在下文讲解。

c.外部样式表

外部样式表是将所有的样式放在一个或多个以.CSS为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中。看起来较为美观。

举例:

	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入名为out.css外部样式表文件  rel声明格式为样式表-->
		<link href="css/out.css" rel="stylesheet" />
	</head>

d.选择器

要使用CSS对HTML页面中的标签实现一对一,一对多的控制,这就需要用到CSS选择器。通常与内部样式表一起搭配使用。

常用选择器:

1.标签选择器:通过标签选择器可以选择页面中的所有指定标签。

​ 使用方式:标签名{}

2.类选择器:通过标签的class属性值选中一组标签。

​ 使用方式:.class{}

3.id 选择器:通过标签的id属性值选中唯一的一个标签。

​ 使用方式:#id:{}

4.选择器组合:通过选择器分组可以同时选中多个选择器对应的标签。

​ 使用方式:.选择器1,.选择器2,.选择器N{}

5.通配选择器:可以用来选中页面中的所有的标签。

​ 使用方式:*{}

Ⅰ.后代选择器:选中指定标签的指定后代标签 。

​ 使用方式:祖先标签 后代标签{}

Ⅱ.子标签选择器:选中指定父标签的指定子标签。

​ 使用方式:父标签 > 子标签 {}

Ⅲ.相邻标签:选中指定标签的相邻标签。

​ 使用方式:选择相邻选择器:选择器 + 相邻{}

Ⅳ.兄弟选择器:选中指定标签的兄弟标签。

​ 使用方式:选择器 ~ 兄弟{}

父标签:直接包含子标签的标签
子标签:直接被父标签包含的标签
祖先标签:直接或间接包含后代标签的标签,父标签也是祖先标签
后代标签:直接或间接被祖先标签包含的标签,子标签也是后代标签
兄弟标签:拥有相同父标签的标签叫做兄弟标签

注:在CSS中,祖先标签上的样式,也会被他的后代标签所继承, 利用继承,可以将一些基本的样式设置给祖先标签,这样所有的后代标签将会自动继承这些样式。

e.样式表的基本属性

文本:

​ color:字体颜色
​ font-size:字体大小
​ font-family:字体
​ text-align:文本对齐
​ text-decoration:line-through:定义穿过文本下的一条线
​ text-decoration:underline:定义文本下的一条线
​ text-decoration:none:定义标准的文本
​ font-style: italic;斜体文本
​ font-weight:字体粗细
​ line-height:设置行高
​ letter-spacing可以指定字符间距
​ text-indent用来设置首行缩进

背景:

​ background-color背景颜色
​ background-image背景图片:
​ background-repeat背景重复
​ background-size背景尺寸
​ background- position 背景位置

f.列表的基本属性

列表属性可以改变列表项标志(图标),或者将图像作为列表项标志(图标) 。

1.list-style-image 将图象设置为列表项标志(图标)。
2.list-style-position 设置列表中列表项标志(图标)的位置。
3.list-style-type 设置列表项标志(图标)的类型。

list-style 可以简写。例如:<list-style imgae="";position="";type="">

g.伪类

CSS伪类专门用来表示标签的一种特殊状态,例如:未访问过的标签。当我们需要为标签设置样式时,就可以使用伪类。

1.普通的链接(未访问过)(超链接专属):

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
	.a1:link{
				/*语句*/
			}
	</style>
</head>
<body>
	<div><a class="a1" href="">百度</a></div>
</body>

在link中可以写一些属性,例如:<font>或者<color>属性来表示超链接未被访问时的状态。

2.访问过的链接(超链接专属):

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
	.a1:visited{
					/* 语句 */
				}
		</style>
</head>
<body>
	<div><a class="a1" href="">百度</a></div> 	
</body>

在visited中可以写一些属性,用来表示超链接访问后的状态。

3.停留状态:

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
	.a1:hover{
				/* 语句 */
			}
	</style>
</head>
<body>
	<div><a class="a1" href="">百度</a></div> 	
</body>

在hover中的属性就是当鼠标停留在标签上的时候的状态。

4.点击状态:

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
    .a1:active{
					/* 语句 */
			}
	</style>
</head>
<body>
	<div><a class="a1" href="">百度</a></div> 	
</body>

active中的属性就是当标签被点击时的状态。

5.聚焦状态(表单专属):

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
	.a1:focus{
				background-color: red;
			}
	</style>
</head>
<body>
	<div><input class="a1" type=""/></div> 	
</body>

focus中的属性就是鼠标点击在表单中时的状态。

注意:visited放在hover之前
active 必须被置于hover 之后,才是有效的
hover和active也可以为其他标签设置

h.透明

定义透明效果的属性是 opacity。
opacity 属性设置标签的不透明度。
从 0.0 (完全透明)到 1.0(完全不透明)。

<style type="text/css">
	.标签名{
			opacity:(0-1) ;
		}
</style>

4.行级,块级,行级块

块级标签:无论内容多少都会独自占据一行。

行级标签:只占自身大小的标签,不会占一行。

行级块:在一行中只占用一块。

注意: 一般情况下使用块级标签包含行级标签,不使用行级标签包含块标签;

​ a可以包含任何标签,除去a本身;

​ p标签不可以包含任何的块标签。

a.Display

用display样式可以修改标签的类型。

​ block :设置标签为块标签
​ inline :设置标签为行级标签
​ inline-block :设置标签为行级块标签
​ none :隐藏标签(标签将在页面中完全消失)

5.div和span

a.div标签

div是块级标签,可以放置任何标签。div是最纯净的块级标签,没有任何附加属性。

b.span标签

span是行级标签,可以放置任何标签。span是最纯净的行级标签,没有任何附加属性。

6.盒子模型

CSS处理网页时,它认为每个标签都包含在一个不可见的盒子里。
如果把所有的标签都想象成盒子,那么我们对网页的布局就相 当于是摆放盒子。
我们只需要将相应的盒子摆放到网页中相应的 位置即可完成网页的布局。

盒子模型一般分为:边框 内边距 外边距 内容区

a.内容区

内容区就是平时我们写在标签中的内容。

子标签也在内容区中。

如果没有为标签设置内边距和边框,则内容区大小和盒子默认大小一致。

通过width和height两个属性可以设置内容区的大小而不是整个盒子的大小。
width和height属性只适用于块标签(包含行级块)。

b.内边距

内边距就是内容区和边框之间的距离。

内边距会影响整个盒子的大小。

用法:padding-left:10px;

​ padding-right:10px;

​ padding:10px 20px 30px 40px;/上右下左/

c.边框

边框是标签外可以看到的最外部。

可以用border属性来设置盒子的边框:border:1px red solid;

也可以使用border-top/left/right/bottom分别指定上右下左 四个方向的边框。

边框的样式: 1.dotted(点线)

​ 2.dashed(虚线)

​ 3.solid(实线)

​ 4.double(双线)

​ 5.groove(槽线)

​ 6.radius(圆角)

d.外边距

外边距是标签边框和相邻的标签的间距。

margin-top/right/bottom/left。(可为负值)

margin的值还可以auto,设置外边距为最大值,当将左右外边距设置为auto时,浏览器会将左右外边距设置为相等.

外边距不会影响盒子的整体大小,但是会影响盒子的位置,会影响盒子的实际控制范围。

7.清除浏览器的默认样式

浏览器为了在页面中没有样式时,也可以有一个比较好的显示效果,所以为很多的标签都设置了一些默认的margin和padding,而它的这些默认样式,正常情况下我们是不需要使用的。
所以我们往往在编写样式之前需要将浏览器中的默认的margin和padding统统的去掉。

*{
margin: 0;
padding: 0;
}

8.文档流

文档流指的是文档中的标签在排列时所占用的位置。 将窗口自上而下分成许多行 ,并在每行中按从左至右的顺序排放标签,即为文档流。
也就是说在文档流中标签默认会紧贴到上一个标签的右边,如果右边不足以放下标签,标签则会另起一行,在新的一行中继续从左至右摆放。
这样一来每一个块标签都会另起一行,那么我们如果想在文档流中进行布局就会变得比较麻烦。

9.浮动

浮动就是让标签脱离原来的文档流,去到“二楼’’

用法:

<head>
	<meta charset="utf-8" />
	<title></title>
	<style type="text/css">
	.a1{
			float: left;
		}
	</style>
</head>
<body>
	<div>text</div> 	
</body>

使text向左浮动到第二层,脱离原来的文档流。相似的,还有:float:right float: none(不浮动)

块级标签和行级标签都可以浮动,当一个行级标签浮动以后将会自动变为一 个块级标签。当一个块级标签浮动以后,宽度会默认是内容的宽度,所以当漂浮一个块级标签时我们 都会为其指定一个宽度。

当一个标签浮动以后,其下方的标签会上移。标签中的内容将会围绕 在标签的周围。
浮动会使标签完全脱离文档流,也就是不再在文档中在占用位置标签浮动以后即完全脱离文档流,这时不会再影响父标签的高度。也就是浮动标签不会撑开父标签。

浮动带来的问题:浮动后的标签没有撑开父标签,下面的标签会上移,影响网页布局(高度塌陷)

解决方法:1.给父标签设置具体的高度。

​ 2.清除浮动,清除浮动后,会默认将父标签撑开与浮动标签一致。<div style=" clear:left"></div>

10.定位

定位的基本思想很简单,它允许你定义的标签相对于其正常位置,或者相对于父标签、另一个标签甚至浏览器窗口本身而出现的位置。

a.相对定位

顾名思义,相对于起初的位置进行移动。移动后原来的位置还被占用。

用法:通过position:relative;开启定位。通过left right bottom top 来设置标签的偏移量。

特点:

当标签的position设置为relative时,开启标签的相对定位。

1.开启标签定位后不设置偏移量时,标签不发生变化。

2.相对定位是相对于标签在文档流原来位置进行定位。

3.相对定位回事标签提升一个层级。

4.相对定位的标签不会脱离文档流。

5.相对定位不会改变标签性质。

b.绝对定位

绝对定位不占用空间,绝对定位的标签会脱离原来的文档流,浮动起来。

用法:通过position:absolute;开启绝对定位。通过 left right top bottom 来设置标签偏移量。

特点:

1.开启绝对定位,会使标签脱离文档流。

2…开启标签定位后不设置偏移量时,标签不发生变化。

3.绝对定位是相对于离他最近的开启了定位的祖先标签进行定位(一般情况,开启了子标签的绝对定位都会同时开启父标签的相对定位。如果所有的祖先标签都没有开启定位,则会相对于浏览器窗口进行定位。)

4.绝对定位会使标签提升一个层级

5.绝对定位会改变标签的性质,行级标签变成块标签

c.z-index

z轴的堆叠。设置标签的堆叠顺序。

如果标签层级一样,下面的标签会盖住上面的标签。可以通过z- index来设置标签的层级。

z-index是指定一个正整数作为值,该值将会作为当前标签的层级
层级越高,越优先显示。

对于没有开启定位的标签不能使用z-index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值