CSS必须掌握的基础

CSS基础

CSS

CSS(cascading style sheet) 汉译为层叠样式表,是用于控制网页样式
WEB标准中的表现标准语言,在网页中主要对网页信息的显示进行控制。
目前推荐遵循的是W3C发布的CSS3.0版本;
用来表现HTML或者XHTML等样式文件的计算机语言。
1998年5月21日由w3C正式推出的css2.0

HTML + CSS(DIV+CSS)

弥补html语言的不足
缩减页面代码,提高访问速度;
代码减少,页面文件就会小,占用网络带宽就少,客户端打开速度就快,用户体验就会更好
结构清晰,有利于seo优化
有利于搜索引擎优化
缩短改版时间
对网站的重构有很好的支持

CSS语法

CSS语法由两部分组成:选择符、声明。
	声明包括:属性和属性值
选择符 {属性: 属性值 ;属性:属性值}

选择符说明:CSS选择符(选择器)
选择符表示要定义样式的对象(标签名字),可以是元素本身,也可以是一类元素或者制定名称的元素,简单来说就是给对应的元素起个名称。

1)每个CSS样式由两部分组成,即选择符和声明,声明又分为属性和属性值;
2)属性必须放在花括号中,属性与属性值用冒号连接。
3)每条声明用分号结束。
4)当一个属性有多个属性值的时候,属性值与属性值不分先后顺序,用空格隔开。
5)在书写样式过程中,空格、换行等操作不影响属性显示。

CSS样式表

1、内部样式表

语法:
    <style type="text/css">
         css语句 
    </style>

注:使用style标记创建样式时,最好将该标记写在<head></head>;

2、外部样式

(1)  语法:<link rel="stylesheet" type="text/css" href="目标文件的路径及文件名全称" />

说明:使用link元素导入外部样式表时,需将该元素写在文档头部,即<head>与</head>之间。
      rel:用于定义文档关联,表示关联样式表;
      type:定义文档类型;
          
(2)、导入外部样式表
      <style type="text/css">
			@import  url("目标文件的路径及文件名全称");
	  </style>

说明:@和import之间没有空格 url和小括号之间也没有空格;括号内部加引号,必须结尾以分号结束;

link @import区别

差别1:老祖宗的差别:link属于XHTML标签,而@import完全是CSS提供的一种方式。 link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS。

差别2:加载顺序的差别:当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式。

差别3:兼容性的差别。:@import是CSS2.1提出的,所以老的浏览器不支持,@import只在IE5以上的才能识别,而link标签无此问题。

差别4:使用dom控制样式时的差别:当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的.

3、内联样式表

<标签    style="属性1:值1;属性2:值2; ……"></标签>

4、CSS样式表的权重关系

1)内联样式表的优先级别最高
2)内部样式表与外部样式表的优先级和书写的顺序有关,后书写的优先级别高。
3)同在一个样式表中的优先级和书写的顺序也有关,后书写的优先级别高。(被覆盖的只是相同属性的样式)

CSS选择符

	CSS基本选择符:类型选择符、id选择符、class选择符(类选择符)

	Css选择符分类:
	    类型选择符(标记选择器)
	    类选择符 (class选择符)
	    ID选择符 (id选择器)
	    伪类选择器
	    通配符(*)设置全局属性
	    群组选择符(集合选择器)
	    包含选择符(后代选择器)
	    属性选择符
	    伪对象选择符

1、类型选择符

类型选择符是根据html语言中的标记来直接定义
语法:标签名称 {属性:属性值;}

a)类型选择符就是以文档对象html中的标签作为选择符,即使用结构中元素名称作为选择符。例如body、div、p,img,em,strong,span......等。
b)所有的页面元素都可以作为选择符;
用法:
(1)如果想改变某个元素的默认样式时,可以使用类型选择符;(如:改变一个p段落样式)
(2)当统一文档某个元素的显示效果时,可以使用类型选择符;(如:改变文档所有p段落样式)

2、类(class)选择符

语法 :  .class名{属性:属性值;}

用法:class选择符更适合定义一类样式;
(1)当我们使用类选择符时,应先为每个元素定义一个类名称,
(2)类选择符的语法格式:
        如:<div class="top"></div>
               .top{属性:属性值;}

3、ID选择符

语法: <标签 id=“名”></标签>
      #id名{属性:属性值;}

(1)可以给每个元素使用id选择符,但id是元素的唯一标识符,不可出现重复的id名;
      如:<div id="top"></div>
(2)id选择符的语法格式是“#”加上自定义的id名
      如:#box{width:300px; height:300px;}
 (3) 起名时要取英文名,不能用关键字:(所有的标记和属性都是关键字)
      如:div标记
 (4)一个id名称只能在文档中出现一次,因为id是唯一的
 (5) 最大的用处:创建网页的外围结构。(唯一性、起名字不能使用关键字)

4、伪类选择器

:link {color: red;}                    /* 未访问的链接状态 */
:visited {color: green;}				/* 已访问的链接状态 */
:hover {color: blue;}                  /* 鼠标滑过链接状态 */
:active {color: yellow;}               /* 鼠标按下去时的状态 */

说明:
1)当这4个超链接伪类选择符联合使用时,应注意他们的顺序,正常顺序为:
a,a:link,a:visited,a:hover,a:active,错误的顺序有时会使超链接的样式失效;
2)为了简化代码,可以把伪类选择符中相同 的声明提出来放在a选择符中;
例如:a{color:red;}     a:hover{color:green;} 
表示超链接的三种状态都相同,只有鼠标划过变化颜色

5、通配符

语法:*{属性:属性值;}

说明:通配选择符的写法是“*”,其含义就是所有标签;    
		表示该样式适用所有网页元素;

用法:常用来重置样式。
例:*{margin:0;padding:0;}

6、群组选择符

语法:选择符1,……,选择符5 {属性:属性值;}

说明:当有多个选择符应用相同的样式时,可以将选择符用“,”分隔的方式,合并为一组。
   
     实例:.top, #nav, p{width:100px;}

7、包含选择器(后代选择器)

语法:选择符1(父)  选择符2(后代){属性:属性值;} 
                   选择符父级  选择符子级{属性:属性值;}

说明:选择符1和选择符2用空格隔开,含义就是选择符1中包含的所有选择符2;
	实例: div   ul  li{height:200px;}

选择符权重

css中用四位数字表示权重,
权重的表达方式如:0,0,0,0;
    权重规则:HTML标签(类型选择符)的权重是1,class的权重是10,id的权重是100。
    类型选择符的权重为0001
    class选择符的权重为0010
    id选择符的权重为0100
    属性选择符的权重为0010
    伪类选择符的权重为0010
    伪元素(对象)选择符的权重为0001
    包含选择符的权重:为包含选择符的权重之和
    内联样式的权重为1000
    继承样式的权重为0000
    群组集合选择符权重为他本身
    通配符的权重为0000
     注:如果权重相同时,则执行后写的样式;

css层叠性

css层叠指的是样式的优先级,当产生冲突时以优先级高的为准。

1. 开发者样式>读者样式>浏览器样式(除非使用!important标记 )
2. id选择符>(伪)类选择符>元素选择符
3. 权重相同时取后面定义的样式

小结

样式的三种写法:
	1: 内部样式
		<head>
			<style type="text/css">
				选择器{属性:值;}
			</style>						
		</head>
	
	2: 内联样式
		在标签中添加属性
		<div style="属性:值;"></div>
		
	3: 外部样式
		1: 创建页面
		2: 创建外部css文件
		3: 建立关系
			方式一:(推荐使用)
			<link rel="stylesheet" href="css文件地址">
			
			方式二:(作为了解)
			@import url(css文件地址);
样式权重:
		内联样式 > 内部样式 外部样式 (谁后面写,显示谁)
		就近原则
			
选择器:
	类型选择器(元素选择器  标签选择器): div span p h1...
	
	类选择器(class选择器):选中指定的标签
		1: 给标签添加属性 class="name"
		2: 选择器为           .name{}
		在一个页面中可以多次出现,提高样式的重用性,通常用来设置样式
				
	id选择器:选中指定的标签
		1: 给标签添加属性 id="name"
		2: 选择器为            #name{}
		在一个页面中相同的id值只允许出现一次,不能多次使用
		哎呀,你掉进井里了 id #
		
	伪类选择器:
		:link{}		未访问的状态
		:visited{}	访问过后的状态
		:hover{}	鼠标移入的状态
		:active{}	鼠标按下的状态
		
	通配符	*{}		匹配页面中所有的元素
	
	群组选择器  选择器1,选择器2,选择器3{} 都被选中
	
	包含选择器(后代选择器)
		选择器1  选择器2  选择器3{}	选中指定这个
		
选择器权重对比:
	加载顺序由上至下,相同权重值的选择器,加载最后写的
	
	id > class > 类型选择器
	100   10      1
	
	包含选择器权重值为 各个选择器权重值之和
	
	css层叠
		指的是优先加载权重值高的
		除非有添加 !important

CSS属性

属性:属性是指定选择符所具有的属性,它是css的核心,css2共有150多个属性
属性值:属性值包括法定属性值及常见的数值加单位,如25px,或颜色值等。

文本属性

1、文本大小 font-size

说明:
	1) 属性值为数值型时,必须给属性值加单位,属性值为0时除外。
	2)单位还可以是pt,9pt=12px;
	3)为了减小系统间的字体显示差异,IE Netscape Mozilla的浏览器制作商于1999年召开会议,共同确定16px/ppi为标准字体大小默认值,即1em.默认情况下,1em=16px,0.75em=12px; rem
	4)使用绝对大小关键字
         xx-small =9px
         x-small =11px
         small =13px
         medium =16px
         large =19px
         x-large =23px
         xx-large =27px

2、文本颜色 color

说明:

用十六进制(是计算机中数据的一种表示方法)表示颜色值:
	0 1 2 3 4 5 6 7 8 9
	0 1 2 3 4 5 6 7 8 9 A B C D E F
颜色模式:光色模式
	R G B
	FF 00 00
颜色值的缩写:
	当表示三原色的三组数字同时相同时,可以缩写为三位;
	当用十六进制表示颜色值时,需要在颜色值前加“#”
	# fa 00 00

4、文本类型 font-family:字体1,字体2,字体3…

说明:
	浏览器首先会寻找字体1、如存在就使用改字体来显示内容,如在字体1不存在的情况下,则会寻找字体2,如字体2也不存在,按字体3显示内容,如果字体3 也不存在;则按系统默认字体显示;
	当字体是中文字体时,需加双引号;
	当英文字体中有空格时,需加双引号如(“Times New Roman”)
	当英文字体只有一个单词组成是不加双引号;如:(Arial);
	Windows中文版本操作系统下,中文默认字体为宋体或者新宋体,英文字体默认为Arial.

5、文字加粗font-weight:bolder(更粗的)/bold(加粗)/normal(常规)/100—900;

说明:
在css规范中,把字体的粗细分为9个等级,分别为100——900,其中100对应最轻的字体变形,而900对应最重的字体变形,
100-400 一般 500常规字体 600-900加粗字体

6、ont-style:italic/oblique/normal(取消倾斜,常规显示);

说明:
italic和oblique都是向右倾斜的文字, 但区别在于Italic是指斜体字,而Oblique是倾斜的文字,对于没有斜体的字体应该使用Oblique属性值来实现倾斜的文字效果.

7、文字行高 {line-height:normal/value;}

说明:
当单行文本的行高等于容器高时,可实现单行文本在容器中垂直方向居中对齐;
当单行文本的行高小于容器高时,可实现单行文本在容器中垂直中齐以上;
当单行文本的行高大于容器高时,可实现单行文本在容器中垂直中齐以下(IE6及以下版本存在浏览器兼容问题)
*文字属性简写:font:12px/24px "宋体";
font属性的简写:字号,行高,字体
font-size:12px; line-height:24px; font-family:”宋体”;
font属性的简写:
说明:font的属性值应按以下次序书写(各个属性之间用空格隔开)
顺序: font-style font-weight font-size / line-height font-family
注意:

(1)简写时 , font-size和line-height只能通过斜杠/组成一个值,不能分开写。
(2) 顺序不能改变 ,这种简写法只有在同时指定font-size和font-family属性时才起作用,而且,你没有设定font-weight , font-style , 他们会使用缺省值(默认值)。

8、水平对齐方式

text-align:left/right/center/justify(两端对齐中文不起作用)

9、文本修饰

text-decoration:
说明:
	none:没有修饰
	underline:添加下划线
	overline:添加上划线
	line-through:添加删除线

10、首行缩进

1)text-indent可以取负值;
2)text-indent属性只对第一行起作用。

11、字间距、词间距

字间距{letter-spacing:value;}控制英文字母或汉字的字距。
词间距{word-spacing:value;}控制英文单词词距。

列表属性

1、定义列表符号样式
list-style-type:disc(实心圆)/circle(空心圆)/square(实心方块)/none(去掉列表符号);list-style-type:none===list-style:none;
2、使用图片作为列表符号
list-style-image:url(所使用图片的路径及全称);
3、定义列表符号的位置
list-style-position:outside(外边)/inside(里边);
list-style:none;去掉列表符号

边框属性

border:边框宽度 边框风格 边框颜色;
	例如:border:5px solid #ff0000

边框:border,网页中很多修饰性线条都是由边框来实现的。
边框宽度:border-width:
边框颜色:border-color:
边框样式:border-style:solid(实线)/dashed(虚线)dotted(点划线)double(双线)可单独设置一方向边框,

可单独设置一方向边框,
    border-bottom:边框宽度 边框风格 边框颜色;底边框
    border-left:边框宽度 边框风格 边框颜色;左边框
    border-right:边框宽度 边框风格 边框颜色;右边框
    border-top:边框宽度 边框风格 边框颜色;上边框

背景属性

1、背景颜色 {background-color:颜色值;}

2、背景图片的设置

background-image:url(背景图片的路径及全称); 背景图片的显示原则
1)容器尺寸等于图片尺寸,背景图片正好显示在容器中
2)容器尺寸大于图片尺寸,背景图片将默认平铺,直至铺满元素;
3)容器尺寸小于图片尺寸,只显示元素范围以内的背景图。

  网页上有两种图片形式:插入图片、背景图;
  *插入图片:*属于网页内容,也就是结构。
  *背景图:*属于网页的表现,背景图上可以显示文字、插入图片、表格等。

3、背景图片平铺属性{background-repeat:no-repeat/repeat/repeat-x/repeat-y }

4、背景图的位置性

{background-position:left/center/right/数值 top/center/bottom/数值;}
水平方向上的对齐方式(left/center/right)或值
垂直方向上的对齐方式(top/center/bottom)或值
background-position:值1 值2;
两个值 :第一个值表示水平位置的值,第二个值:表示垂直的位置。
当两个值都是center的时候写一个值就可以代表的是水平位置和垂直位置
说明:向左方向,向上方向是负值
背景属性的缩写语法:
background:属性值1 属性值2 属性值3;
背景缩写:background:url(背景图片的路径及全称) no-repeat center top #f00;
网页上常用的图片格式(压缩图片)

  1)jpg :有损压缩格式,靠损失图片本身的质量来减小图片的体积,适用于颜色丰富的图像;(像素点组成的,像素点越多会越清晰 )如果网页中
  2)gif:有损压缩格式,靠损失图片的色彩数量来减小图片的体积,支持透明,支持动画,适用于颜色数量较少的图像;
  3)png:有损压缩格式,损失图片的色彩数量来减小图片的体积,支持透明,不支持动画,是fireworks的 源文件格式,适用于颜色数量较少的图像;

5、背景图的固定性

{{background-attachment:scroll(滚动)/fixed(固定);}
fixed 固定,不随内容一块滚动;
scroll:随内容一块滚动。

css属性继承

不可继承的:display、margin、border、padding、background、height、min-height、max- height、、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align

所有元素可继承:visibility和cursor。
内联元素可继承:letter-spacing、word-spacing、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform。
块状元素可继承:text-indent和text-align
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
表格元素可继承:border-collapse。

浮动

float 常用值就 left、right、none 三个

  1. float 元素具有 BFC 模型特性
    当给元素添加 float 属性后,元素便会具有 BFC 模型的效果。比如给内联元素 span 等添加 float 属性后,内联元素也可以设置宽高和 margin。

  2. float 与 position
    当给元素添加了绝对定位 absolute 或者 fixed 后,元素的浮动效果就会消失,即便 float 属性设置在 position 属性之后。

  3. 脱离标准文档流
    浮动元素会脱离标准文档流,会给它后面的兄弟元素造成影响,如果要清楚对兄弟元素的影响,只需要给紧邻的兄弟元素添加 clear: both 就好,但是紧邻的兄弟元素的 margin 依然是相对于父元素的。

  4. 破坏父元素高度
    当父元素没有设置高度,也不是 BFC 模型时,如果给子元素添加浮动效果,那么便会造成父元素高度的坍塌。

要清除浮动给父元素带来的破坏效果,方案也有很多,最直接的是把父元素变成 BFC 模型的元素就行。
5. float 与 padding
浮动元素不会超过父元素的内边距 padding。

利用第五点与第三点,我们在方便的实现一些布局效果并减少层级嵌套。
6. float 与 margin
两个相邻的浮动元素,当第一个浮动元素的宽度为100%时,第二个浮动元素会被挤到下面,通过添加负的 margin-left 或者 margin-right 值(绝对值最少等于它自身的宽度),可以使它回到第一行。

小结

font-size:文本大小;
			px
			em
			rem
			默认大小16px
			最小显示12px
			
		color:文本颜色;
			颜色单词 red blue....
			十六进制	# 0-9 a-f  #aabbcc 简写 #abc
			rgb(0,0,0)	三原色表示 取值范围 0-255
			
		font-family:字体1,字体2;
			1: 多个字体用逗号隔开
			2: 中文表示的字体添加引号
			3: 单个单词表示的字体不需要添加引号,多个单词表示的需要添加引号
			4: 优先加载第一个
			
		font-weight:是否加粗;
			bold	加粗
			normal	常规字体
			border	更加粗
			100-400	变细
			500 常规字体
			600-900	加粗
			
		font-style:是否倾斜;
			normal	常规字体(不倾斜)
			italic	倾斜
			oblique	倾斜
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值