CSS

CSS语法

CSS样式由两个部分组成:选择器和声明.声明又包括属性和属性值.每个声明之后用分号结束.

CSS注释

/*这个是注释*/

CSS的几种引入方式

1. 行内样式

行内式是在标记的style属性中设定CSS样式,不推荐大规模使用.

<p style="color:red">你好!</p>

2.内部样式

内部样式,也就是嵌入式是将CSS样式集中写在网页的标签中标签中.

<head>
	<meta charset="UTF-8">
	<title>标题</title>
	<style>
		p {
        	background-color: #2b99ff;    
		}
	</style>
</head>

3.外部样式

外部样式就是将css写在一个单独的文件中,然后在页面进行引入即可.推荐使用

<link href="样式名.css" rel="stylesheet" type="text/css/"/> # 引入语句

CSS选择器

基本选择器

/*元素选择器*/
p {color:red;}
/*ID选择器*/
#id {background-color:red;}
/*类选择器*/
.class {font-size: 15px;}
/*通用选择器*/
* {color:red;}
@注意:
    样式类名不要用数字开头(有的浏览器不认识).
    标签中的class属性如果有多个,要用空格分隔.

组合选择器

/*后代选择器*/
li a {color:green;} --li标签中的所有a标签设置字体颜色为绿色(包括下下级等所有的a标签)
/*儿子选择器*/
div>p {font-size:10px} --div标签中的下一级的p标签的字体为10px.(不包括下下级)
/*毗邻选择器*/
div+p {font-size:10px} --紧挨着div标签的一个p标签的字体为10px.
/*弟弟选择器*/
div~p {fond-size:10px} -- div标签之后的所有p标签字体为10px,不管中间穿不穿差其他标签

属性选择器

p[title] {color:red;} -- 含有title属性的p标签的颜色为红色.(属性也可以携带参数,更加精确找到标签) 

分组和嵌套

/*分组*/ --> 当多个元素的样式相同的时候,我们没有必要重复地为每个元素设置样式,可以用逗号隔开
div,p {color: red;} -- 所有div和p标签的颜色都为红
/*嵌套*/ --> 多个选择器混合使用
.c1 p {color: red;} -- .cl下面的所有p标签的颜色都为红色

伪类选择器

a:link {color:red;} -- 未被访问过的连接为红色
a:hover {color:blue;} -- 鼠标悬停到链接上方的颜色为蓝色
a:active {color:yellow;} -- 鼠标右键选中后的颜色为黄色
a:visited {color:pink;} -- 已经被访问过的颜色为粉色
input:focus {background-color:red;} -- 文本框被选中后的样式

伪元素选择器

1. first-letteer
p:first-letter {font-size:48px;color:red;} -- p标签的第一个字符的字号为48px,颜色为red红

2. before
p:before {content="我是超哥!"} -- 在所有p标签前面插入"我是超哥!"这几个字符

3. after
p:after {content="我是超哥!"} -- 在所有p标签之后插入"我是超哥!"这几个字符

选择器 的优先级

内联选择器 --> id选择器 --> class选择器 --> 元素选择器 [--> 继承来的属性]

除此之外还可以通过!importent的方式来让样式强制生效(最好不要使用)

CSS属性相关

文字属性

1. 文字对齐
text-align 
    - left:左对齐,
    - right:右对齐,
    - center:居中对齐,
    - justfy:两端对齐
2. 文字装饰
text-decoration 
	- none:定义标准的文本
	- underline:定义文本下的一条线
	- overline:定义文本上的一条线
	- line-through:定义穿过文本中心的一条线
	- inherit:继承父类到的tetx-decoration
3. 首行缩进
text-indent:32px; -- 首行缩进32px
4. 文字间的距离
letter-spacing: 5px; -- 将文字的间距调整为5px
5. 去掉li标签的样式
list-style:none;

背景属性

1. 背景颜色
background-color:red
2. 背景图片
background-image:url("1.jpg")
3. 背景重复
	- repeat(默认):背景图片平铺排满整个网页
	- repeat-x:背景图片只会在水平方向上平铺
	- repeat-y:背景图片只会在垂直方向上平铺
	- no-repeat:背景图片不平铺
4. 背景位置 -- 对精灵图的设置
	background-position: left top;
	background-position: 200px 200px

@注意:还可以简写
    background:red url('1.png') no-repeat left top;

边框

1. 边框属性
	- border-width
	- border-style
	- border-color
	- 通用简写方式 p { border: 2px solid red;}
2. 边框样式 border-style
	- none:无边框
	- dotted:点状虚线边框
	- dashed:矩形虚线边框
	- solid:实线边框

@边框还可以单独的为某方向的边框设置样式
    
3. 边框设置圆角(这个也可以把一个矩形变为圆形,参数为50%就可以)
    border-radius

display属性

1. 用于控制HTML元素的显示效果
	- display:none : HTMl文档中元素存在,但是浏览器中不显示
	- display:block : 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充下面的部分
	- display:inline : 按行内元素显示,此时再设置元素的width,height,margin-top,margin-bottom和float属性都不会有什么影响
	- display:inline-block : 使元素同时具有行内元素和块级元素的特点

2. display:none 和 visibility:hidden的区别:
visibility:hidden : 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间.也就是说,该元素虽然被隐藏了,但是仍然会影响布局.
display:none : 可以隐藏某个元素,并且隐藏的元素不会占用任何空间.也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失.

盒子模型

1. margin: 用于控制元素与元素之间的距离;margin的最基本的用途就是控制元素周围空间的间隔,从视觉角度上达到隔开的目的.
2. padding: 用英语控制内容和边框之间的距离.
3. border(边框): 围绕在内边距和内容外的边框
4. content(内容): 盒子的内容,显示文本和图像

______________________________________________
|				margin(外边框)				|
|	_______________________________________  |
|	|			border(边框)			   |  |
|	|	____________________________	  |  |
|	|	|		padding(内填充)	|	  |  |
|	|	|	___________________	   |      |  |
|	|	|	|				  |	  |     |  |
|	|	|	|	content(内容)	 |   |      |  |
|	|	|	|				  |	  |     |  |
|	|	|	|___________________|  |      |  |
|	|	| 						 |      |  |
|	|	|___________________________|     |  |
|	|   							    |  |
|	|______________________________________|  |
| 										   |
|______________________________________________|

float浮动

在css中任何元素都可以浮动
浮动元素会生成一个跨级框,而不论本身是什么元素
浮动的两个特点:
	1. 浮动框可以向左或者向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止.
	2. 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在
三种取值:
	1. left: 向左浮动
	2. right: 向右浮动
	3. none: 默认值,不浮动

clear

clear属性规定元素的那一侧不允许其他浮动元素
	- left: 在左侧不允许浮动元素.
	- right: 在右侧不允许浮动元素
	- both: 左右两侧都不允许浮动元素
	- none: 默认值,允许两侧浮动
	- inherit: 规定应该从父元素继承clear属性
@注意: clear属性只会对自身起作用,而不会影响其他元素

清除浮动:
清除浮动的副作用(父类塌陷问题)
    主要有三种方法:
    	1. 固定高度
    	2. 伪元素清楚法 (使用较多)
    	3. overflow:hidden
    
    .clear:after {content=""; display=block; clear:both;}

overflow溢出属性

visible: 默认值.内容不会被修剪,会呈现到元素框之外
hidden: 内容会被修建,并且其余内容不可见
scroll: 内容会被修建,则浏览器会显示滚动条以便查看其余内容
auto: 如果内容被修建,则浏览器会显示 滚动条以便查看其余内容
inherit: 规定应该从父类继承overflow属性的值

	- overflow (水平和垂直都设置)
	- overflow-x (设置水平方向)
	- overflow-y (设置垂直方向)

max-width:最大宽度
min-width:最小宽度

定位(position)

static:
	默认值,无定位,不能当做绝对定位的参照物,并且设置标签对象的left,top等值是不起作用的
relative(相对定位):
	相对定位是相当于钙元素在文档流中的原始位置,即以自己原始位置为参照物.有趣的是,即使设置了元素的相对定位以及偏移值,元素还站着原来的位置,即占据文档流空间,对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档中的偏移位置.而其层叠通过z-index属性定义

	@注意: position: relative的一个主要方法:方便绝对定位元素找到参照物
    
absolute(绝对定位):
	设置为绝对定位的元素框从文档流完全删除,并且相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么他的位置相对于最初的包含块(即body元素).元素原先在长长文档流中所占的空间会关闭,就好像该元素原来不存在一样.元素定位后生成一个块级框,而不论原来他在正常流中生成何种类型的框.
        
fixed(固定):
	对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。
	@注意:在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。

脱离文档流: 绝对定位,固定定位
不脱离文档流: 相对定位

z-index

设置对象的层叠顺序。
    - z-index 值表示谁压着谁,数值大的压盖住数值小的,
    - 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
    - z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
    - 从父现象:父亲怂了,儿子再牛逼也没用

opacity设置透明效果

用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。

posted @ 2019-10-13 19:27  cheerxiong  阅读(176)  评论(0编辑  收藏  举报