CSS基础

CSS

  1. 概述:CSS(Cascading Style Sheets),层叠样式表,用于控制HTML标签的展示样式,美化页面
    如果学习了CSS,HTML标签的很多自带属性就可以不用了,都可以使用CSS代替,起到解耦的作用
  2. 使用:HTML定义元素,CSS控制展示样式
  3. CSS与HTML的结合方式
    (1)内联样式:将CSS属性写在HTML标签的style属性上,优点是控制强度大,缺点是一次只能控制一个标签,代码复用性差
<h1 style="color: aqua;font-size: 100px;font-weight:900;">内联样式</h1>

(2)内部样式:配合选择器,一次可以控制一个或多个标签,能提高代码的复用性
(3)外联样式:一次可以控制多个页面,开发中推荐使用,即创建一个CSS目录,再创建一个CSS文件,在该文件中通过CSS控制展示样式,在html文件中通过link标签将CSS和HTML关联起来,简单的说就是将内部样式的选择器单独写在一个CSS文件中,使HTML文件看起来简单

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/iconfont.css">
</head>

在这里插入图片描述

选择器

  1. 概述:选择器就是一种语法,为了选中一个或多个标签,进行样式的控制,以减少CSS代码的重复,一般写在head标签中的style属性里
  2. 常见的选择器
    (1)类选择器:选择多个class属性值一样的标签进行控制,用"."符号选择
<head>
	<style type="text/css">
		.myh1{
			color: #FF0000;
			font-size: 200px;
		}
	</style>
</head>
<body>
	<h1 class="myh1">内部样式</h1>
	<h1 class="myh1">类选择器</h1>
</body>

(2)id选择器:通过标签的id属性,一次选择一个或多个id名,用”#“符号选择

<head>
	<style type="text/css">
		#mydiv,#mydiv2{
			color: red;
			font-size: 100px;
		}
	</style>
</head>
<body>
	<div id="mydiv">内部样式</div>
	<div id="mydiv2">id选择器</div>
</body>

多个标签的id名不能一样,因为id是唯一的

(3)标签名选择器:直接选择标签名进行标签控制,可以一次选择多个标签同时控制

<head>
	<style type="text/css">
		h1{
			color: red;
		}
		div{
			color: red;
		}
		h1,div{
			font-size: 200px;
		}
	</style>
</head>
<body>
	<h1>内部样式</h1>
	<div id="">标签名选择器</div>	
</body>
  1. 选择器的优先级:内联样式>id选择器>类选择器>标签名选择器

以上是主要的选择器,除此之外,还有一些其他选择器
(1)包含选择器:标签嵌套,则层层往下选,因为CSS属性具有继承性,子类本身没有属性,可以继承父标签的属性

<head>
	<style type="text/css">
		div span b{
			color: red;
		}	
	</style>
</head>
<body>
	<div id="">
		<span><b>asdfasdfsdaf</b></span>
	</div>
</body>

以上代码中div span b是指所有b标签都被操作,如果span标签下嵌套其他标签,其他标签里再嵌套b标签,我们指想对span标签下的b标签内容进行操作,就需要">"符号,即写成div span>b,也就是子选择器

(2)伪类选择器:针对鼠标的几种状态(鼠标悬浮状态、鼠标按下的状态、链接的状态、链接被访问过后的状态)

<style type="text/css">
	/*  鼠标悬浮状态 */
	a:hover{
		color: #FFFF00;
	}
	/* 鼠标按下的状态 */
	a:active{
		color: aqua;
	}
	/* 链接的状态 */
	a:link {
		color: #FF0000;
		text-decoration: none; /* 去掉链接的下划线*/
	}
	/* 链接被访问过后的状态 */
	a:visited{
		color: pink;
	}
</style>
<body>
	<a href="https://www.baidu.com">一个链接</a>
</body>

(3)通配符选择器:选择所有标签进行控制

*{
				
}

选择器有很多种,这里就列举这几种使用最多的,在使用过程中可以在W3Schoo自学文档中查阅学习

常用属性

  1. 概述:直接在选择器中使用属性控制元素
  2. 属性:
    (1)overflow:scroll/visible/hidden/auto
    其中,scroll指若内容超出,提供上下拉条和左右拉条,拉动看内容
    visible指在边框外继续显示超出的内容
    hidden指隐藏超出的内容
    auto指若内容超出,提供拉条上下拉动看内容
<head>
	<style type="text/css">
		div {
			overflow: visible;
			}
	</style>
</head>
<body>
	<div id="">内容</div>
</body>

(2)行标签和块标签之间的转换
display:block; 把行标签变成块标签
display:inline-block; 把块标签变成行标签,但也留有一些块标签的特点,比如设置上下间距

display:none; 隐藏标签,即在浏览器中看不到该标签内的内容
除此之外,还有个隐藏标签的属性是:visibility:hidden
两者的区别是前者标签隐藏后占的位置不在,后者隐藏后占的位置还在

(3)div+CSS布局
在使用div标签时,配合选择器,可以得到一个方框

#div1{
	/* 方框的宽高 */
	width: 200px;
	height: 200px;
	/* 设置边框粗细,颜色,线的类别 */
	border: 1px blue solid;
	/* 背景颜色 */
	background: #008000;
	/* 背景图片 */
	background-image: url(图1.jpg);
	/* 图片填充满 */
	background-size:100% 800px ;
	/* 内部元素距离左边边框的距离 */
	padding-left:20%;
	/* 也可以设置距离右边,顶部,底部边框的距离
	分别是padding-right,padding-top,padding-bottom */
}
#div2{
	/* 该方框距离左边另一个方框的距离 */
	margin-left:20%;
	/* 也可以设置距离右边方框,顶部方框,底部方框的距离
	分别是margin-right,margin-top,margin-bottom */
}

这里拿div方框举例,当然也可以对整个页面背景操作,只需在body标签里操作即可

说HTML的时候说过div是块标签,那么,可不可以让多个div一行显示?
答案是可以的,使用浮动属性float,取值left指向左浮动,right指向右浮动
当使用float浮动属性时,在不需要浮动的标签内要清除浮动,用clear:both

<div id="" style="clear:both"></div>

(4)shadow,设置阴影,取值有4个,指阴影的左右位置,上下位置,阴影的范围和阴影的颜色

box-shadow:10px 10px 10px gray;

(5)如果元素设了绝对定位,有了重叠,那么想要设置重叠顺序可以使用z-index,值越大就在最上面

div {position: absolute;}
#div1 {z-index: 2220;}
#div2 {z-index: 120;}

如上图代码,假设定位重叠,那么div1标签里的内容就会在div2标签里的内容之上

(6)元素的定位方式
页面的左上角称为原点位置,第一个元素默认会在该位置
元素的定位有两种方式:
相对定位(position:relative):一个元素的位置会参考上一个元素的位置
绝对定位(position:absolute):所有元素都参考原点的位置,彼此之间没有参考关系
注:一般页面的元素默认采用相对定位,如果使用了绝对定位,那么设置元素距离原点的距离,用top left right bottom

(7)透明度,前三个取值代表颜色,第四个取值代表透明度,0~1,越低越透明

color: rgba(0,0,0,0.5);

(8)对背景图片的操作

body{
	background-image:url(图1.jpg) ;
	/* 设置背景图片是否重复  no-repeat代表不重复*/
	background-repeat: no-repeat;
	/* 背景图片的尺寸 左右的尺寸 上下的尺寸 */
	background-size: 100% 800px;
	/* 背景图片的位置 background-position */
	background-position:center 20px;
	/* 固定背景图片 */
	background-attachment:fixed;
}

(9)彩色变黑白

filter: grayscale(0%);
filter: gray;

其中,取值的百分比代表黑白程度,越高黑白程度越高

(10)缩进和行高

<head>
	p {
		/* 设置首行缩进 em代表倍数*/
		text-indent: 2em;
		/* 设置行高 */
		line-height:1.5em;
	}
</head>
<body><p>大量内容</p></body>

(11)过渡动画:监听鼠标hover,使用transition设置过渡后的div属性
例如当鼠标移到浏览器中的图片上时,实现图片拉大的效果,当鼠标移开图片,图片再还原成原来的大小

<head>
	<style type="text/css">
		div {
			width: 400px;
			height: 400px;
			background-image: url(图1.jpeg);
			background-size: 100% 100%;
			transition: all 1s; 
		}
		div:hover{
			transition:all 1s;
			background-size: 105% 105%;
		}
	</style>
</head>
<body>
	<div></div>
</body>

上面代码是对全部元素进行整体操作,还可以对单个属性进行操作
例如:
过度的属性 transition-property
过度的时长 transition-duration
过度延时 transition-delay
过度的速率 transition-timing-function: linear

(12)自定义动画(漂浮广告):Animation
格式:animation:myDH 5s;(myDH指动画名,5s指动画时间)

@keyframes myDH
{
	/* 自定义动画 */
	from{background:red;}
	to{background:blue;}
}
@keyframes myDH
{
	/* 自定义动画,也可以细分这个动画 */
	0%{background:red;}
	25%{background:yellow;}
	50%{background:blue;}
	75%{background:green;}
	100%{background:pink;}
}
/* 设置属性 */
div {
	width: 200px;
	height: 200px;
	background: #008000;
	/* animation: myDH 1s 1s reverse; */
	/* 单个使用属性 */
	/* 指定要绑定到选择器的关键帧的名称 */
	animation-name: myDH;
	/* 动画指定需要多少秒或毫秒完成 */
	animation-duration: 1s;
	/* 设置动画在启动前的延迟间隔。 */
	animation-delay: 0s;
	/* 	定义动画的播放次数。 infinite无限次 */
	animation-iteration-count: 1;
	/* 设置动画变动的速率 */
	animation-timing-function:1;
	/* 指定是否应该轮流反向播放动画。原路返回 */
	animation-direction:reverse;
	/*forwards 动画执行完之后,停留在最后一帧*/
	animation-fill-mode: forwards; 
}

(13)旋转:在选择器里使用transform: rotate()设置旋转,括号里取旋转度数

<style type="text/css">
	div{
		height: 400px;
		width: 400px;
		background-image: url(图1.png);
		transform: rotate(15deg);				
	}
</style>
<body>
	<div></div>	
</body>

以上代码就是把图片旋转15度显示在浏览器中

CSS属性跟选择器一样有很多,这里只列举了部分刚学习过的属性,其他的属性根据需要可在W3Schoo自学文档中查阅自学

盒子模型

  1. 概述:CSS 假定所有的HTML 文档元素都生成了一个描述该元素在HTML文档布局中所占空间的矩形元素框,可以形象地将其看作是一个盒子。CSS 围绕这些盒子产生了一种“盒子模型”概念
  2. 构成:内容区(content)、填充(padding)、边框(border)、空白边(margin)
  3. 作用:改善网页布局
<head>
	<style type="text/css">
		/* 把外层设置为一个盒子 */
		#box {
			width: 100%;
			height: 600px;
			border: 1px black solid;
			/* 把外层设置为一个盒子 */
			display: flex;
			/* 设置内层是横向排列 纵向排列 */
			flex-direction: row;
			/* 设置内层的对齐方式 */
			justify-content: center;
			/* 自动换行 */
			flex-wrap: wrap;
			overflow: hidden;
		}
		.nei {
			width: 100px;
			height: 100px;
			border: 1px black solid;
			margin-top: 50px;
			margin-left: 20px;
		}
	</style>
</head>
<body>
	<div id="box">
		/* order指定该方框排的顺序 */
		<div id="" class="nei" style="order: 2;">1</div>
		<div id="" class="nei" style="order: 1;">2</div>
		<div id="" class="nei" style="order: 3;">3</div>
	</div>
</body>

浏览器的兼容性

概述:有些属性对于个别浏览器来说是不兼容的,也就起不到效果,这时通过加浏览器的标志让标签起作用

-ms-transform:rotate(7deg); /* IE 9 */
-moz-transform:rotate(7deg); /* Firefox */
-webkit-transform:rotate(7deg); /* Safari and Chrome */
-o-transform:rotate(7deg); /* Opera */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值