CSS基础

目录

CSS简介

选择器 

常见选择器

选择器的优先级

文本样式

背景样式

元素类型

盒子模型

相关属性

盒子类型

布局

其它:

弹性盒子  

响应式布局

加个小阴影

圆角 


CSS简介

        中文名:层叠样式表

         作用:美化HTML标签

书写位置:

1.在标签的style属性中书写 这样的方式,编写的样式无法给别的标签使用,如果网页中有多个该样式的标签,此时代 码就会较为冗余(内联样式)

2.在style标签中书写

3.在css文件中书写,通过link标签引入到需要使用的html文件中,一般这种方式最标准

选择器 

作用::寻找指定的html标签

常见选择器

1.统配选择器

                        作用:给当前网页中所有标签都使用

                语法: *{

                                 css样式

                           }

例如:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				font-size: 50px;
			}
		</style>
	</head>
	<body>
		<font>
			JAVA
		</font>
	</body>
</html>

2.标签选择器

                作用:给当前网页指定标签设置样式

                语法:

                        标签名{

                                css样式 }

例:给font标签指定属性

font{
    font-size: 50px;
	color: #0079F5;
}
<font>
	JAVA
</font>

3.class选择器

                作用:给当前网页class属性值为xxx的设置样式

                语法: .class的属性值{

                                                css样式 }

例:

.text{
    font-size: 80px;
    color: red;
}

<font class="text">font01</font>
/**
text为自己命名的
*/

4.id选择器 作用:给当前网页中id属性值为xxx的设置样式.

                语法: #id的属性值{

                                css样式 }

例:

#f{
    font-size: 80px;
}
<font id="f">Java</font>

5.伪类选择器

        鼠标悬浮:hover

                语法: hover{

                                鼠标悬浮在该标签上,该标签的样式}

例:

#f{
    font-size: 80px;
}
#f:hover{
    color: red;
}
<font id="f">Java</font>

效果为鼠标放在上面,字体就会变红,不放就是正常颜色

获取焦点:focus

        语法:     选择器:focus{

                                css样式}

                border::点击后框框大小

                color:颜色

input:focus{
    border: 10px ;
    color: #0079F5;
}
<input type="text" />

选择器的优先级

优先级:内联>id选择器>class选择器>标签选择器>统配选择器

如果多个优先级相同的给同一个标签设置样式,谁在后使用谁的

文本样式

大小:font-size

字体:font-family :例 宋体,楷体...

颜色:color       

                  rgb(红色,绿色,蓝色);

                  rgba(红色,绿色,蓝色,透明度)

                        透明度取值范围:0~1,0表示全透明,1表示不透明

/*color: #FF9900;*/
/*color: rgb(255,0,0);*/

格式:font-style

normal默认值。浏览器显示一个标准的字体样式。
italic浏览器会显示一个斜体的字体样式。
oblique浏览器会显示一个倾斜的字体样式。

笔画粗细:font-weight

装饰:text-decoration

none默认。定义标准的文本。
underline定义文本下的一条线。
overline定义文本上的一条线。
line-through定义穿过文本下的一条线。

文本位于标签的位置:text-align

一行字所占高度:line-height

背景样式

background-color:背景颜色

background-image: 背景图片

background-size:背景大小

background-repeat:是否平铺

background-position:背景位置

background:背景

/*background-color: #FF0000;*/
background-image: url("img/qianfeng.png");
background-size:10% 10%;
background-repeat:no-repeat;
background-position:center center;

元素类型

1.行内元素:

                特点:设置宽高无效,标签大小由标签中内容决定,不会独占一行

                 如:font标签

2.行内块元素:

                特点:设置宽高有效,不独占一行

                如:img,input

3.块级元素

                特点:设置宽高有效,独占一行

                如:h1,h2,p,div,li

修改改标签的元素类型

                通过display属性进行修改

                                 inline-block:行内块元素

                                 inline:行内元素

                                  block:块元素

                                  none:隐藏

                                  flex:弹性盒子

盒子模型

相关属性

宽/高 width/height

内边距:标签内,内容距离边框的距离 padding

边框:边框厚度 border

border:10px solid #0000CC

顶部没了为html自带bug 

边框的大小,solid为实现的意思

外边距:当前标签距离父容器或兄弟标签的距离 margin

可以设置距离其它距离的位置

盒子类型

标准盒子:

                计算标签占用大小:左外边距+左边框+左内边距+宽+右内边距+右边框+右外边距 = 真实 的宽 默认的就是该类型的盒子

        上述的就为标准盒子

IE盒子:

                 计算方式:左外边距 + 宽 + 右外边距 = 真实的宽

                设置盒子类型为IE盒子:box-sizing: border-box;

与标准盒子相比

			#box01{
    			background: red;
    			width: 200px;
   				height: 200px;/*
   				               * 本来盒子的大小
   				               */
    			padding: 30px;
    			/*加了内边距,盒子变大   */
    			
    			border: 20px solid black;
    			/* 加了边框 */
    			
    			margin: 50px;
			}
		#box02{
    			background: red;
  			    width: 200px;
    			height: 200px;
    			/* 盒子大小不变*/
    			
  				 padding: 30px;/*内容变小了,边框,内边距被减去了 */
  				 
    			border: 20px solid black;
    			margin: 50px;
    			box-sizing: border-box;/* 设置为ie盒子*/
			}

布局

浮动:

                float:left从左向右

                           right 从右向左

                                给所有需要子标签加

#box{
				width: 300px;
				height: 200px;
				background: orange;
			}
			.box_item{
				width: 100px;
				height: 100px;
				border: 1px solid black;/* 整一个属性*/
				/*float: left;*/ /* 悬浮自带补齐,但是因为边框也有大小会折到下一行 */
			}
<div id="box">
			<div class="box_item"></div>
			<div class="box_item"></div>
			<div class="box_item"></div>
			<div class="box_item"></div>
			<div class="box_item"></div>
			<div class="box_item"></div>
			
		</div>

效果如图 

 独占一行所以从上到下排列

float: left;/* 悬浮自带补齐,但是因为边框也有大小会折到下一行 */

 这时候把class属性的width: 100px; height: 100px;都变为98px即可解决

空间塌陷:不使用浮动时,使box属性为0,填入内容,内容会填满空间。

#box{
				width: 300px;
				/*height: 200px;*/
				background: orange;
			}

 

 使用浮动后:

       高度不定义也是希望用内容撑起来,让其更加灵活,给定后也可能导致边框与后面的叠加

        但是高度没了,父容器没了,导致空间塌陷,具体原因我也不知道,毕竟我不是专业前端

解决方案:

.clearAfter:after{
            content: ".";
            overflow: hidden;
            clear: both;
            height: 0;
            display: block;
}
在其浮动的标签的父容器的class属性值中加入clearAfter即可

反正是解决了

定位:属性:position

1.浏览器窗口定位:fixed

相对与浏览器窗口的位置,不会保留标签的原位置

#gg{
width: 240px;
height: 160px;
background: red;
position: fixed;
right: 0;//距离右边的距离
bottom: 0;//距离底部的距离
      //  left  左边
	  //	top   顶部
}

<div id="gg">
<font>这是一个广告</font>
</div>

2.相对定位:relative 相对于标签的原位置,  注意:会保留标签的原位置

	#box02{
				background: greenyellow;
				position: relative;
				left: 50px;//一般用这两个,
				top: -50px;


                   //bottom  reight这两个可能有的浏览器不适配
			}

给其加入层级     z-index: -1;//层级可以让其去任意一层,有个定位才能用

3.绝对定位:absolute,相对与最近一层做过定位的父容器的位置,不会保留原位置

                父容器定位随便做,每填值都行

注意:里面的坐标类似于这样

其它:

       弹性盒子     应用在手机端比较多

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#box{
				width: 300px;
				height: 200px;
				background: brown;
				display: flex;/*弹性布局,会默认平分*/
			}
			.div{
				width: 100px;
				height: 100px;
				border: 1px solid black;
				box-sizing: border-box;	
			}
		</style>
	</head>
	<body>
		<div id="box">
				
		<div id="box01" class="div">1</div>
		<div id="box02" class="div">2</div>
		<div id="box03" class="div">3</div>
		<div id="box04" class="div">4</div>
		<div id="box05" class="div">5</div>
		<div id="box06" class="div">6</div>
		<div id="box07" class="div">7</div>
		
		</div>
	</body>
</html>

                display: flex;/*弹性布局,会默认平分*/
				flex-wrap: wrap;/*会自动换行,按给的宽度自动排列,此时不设置父容器高度也不会空间塌陷*/

不设置高度

 

 居中:

	<style type="text/css">
			#box{
				width: 300px;
				height: 200px;
				background: orchid;
				display: flex;/*设置为弹性盒子*/
			}
			#div{/*此标签就在父标签中居中,只有一个时有效*/
				width: 100px;
				height: 100px;
				background: palevioletred;
				margin:auto;/*自动居中*/
			}
		</style>

响应式布局

检测窗口的大小,不同大小有不同的页面,这样可以适配多种屏幕大小

<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			html,body{
				width: 100%;
				height: 100%;
			}
			#content{
				width: 100%;
				width: 100%;
			}
			@media only screen and (min-width: 100px) and (max-width: 640px) {
				#content{
					background: black;/*例如在这个区间背景为黑*/
				}/*显示器屏幕100px到640px用这个 */
            }
				
			@media only screen and (min-width: 640px) and (max-width: 1400px) {
				#content{
					background: red;/*例如在这个区间背景为红*/
				}/*显示器屏幕640px到1400px用这个 */
					
			}

                ....不同尺寸写一套不同的css这样就可以适应不同的屏幕大小
			
			
			
		</style>

加个小阴影

box-shadow

        box-shadow(X轴偏移量 Y轴偏移量  blur阴影模糊半径 spread阴影扩展半径 阴影颜色 position投影方式 )

         x :值为正数时,阴影在右侧;值为负数,阴影在元素左

        y:值为正数时,阴影下方;值为负数,阴影在上方

        blur 值越大,阴影则更不锋利而更朦胧 / 模糊。负值是不合法的,会被修正成 0

        spread:阴影扩展半径,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值是,则缩小。前提是存在阴影模糊半径。

        position:默认为外投影,可设置为  inset  变为内投影

圆角 

border-radius 10%就是这个效果

 


                transform:rotate(45deg) ;/*例如顺时针旋转45°*/
                transform:translateX(x轴平移)translateY(y轴平移) scale(0~1缩小,大于1变大);

设置背景变化

@keyframes anim{
				0%{
					background-image: url(img/IMG_20221024_222535.jpg) ;
					background-size: 100% 700px;
				}
				50%{
					background-image: url(img/QQ图片20220325160444.jpg);
					background-size: 100% 700px;
				}
				100%{
					background-image: url(img/IMG_20221024_222535.jpg);
					background-size: 100% 700px;
				}
				
			}
			body{
				animation: anim 2s linear infinite;
			}
//anim 2s表示循环2s,linear infiite表示不停线性循环背景

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值