CSS总结(一):选择器、层叠、文本样式与背景

一:CSS简介

       CSS:Cascading Style Sheets  层叠样式表

       CSS负责描述HTML页面的样式;从审美的角度描述页面的样式

       1,CSS语法:

selector {
	property: value;
	property: value;
	}

       2,CSS创建:

<!-- 1,外部(外联)样式表;最常用的方式 -->
<link rel="stylesheet" type="text/css" href="mystyle.css" />

<!--2,内部(内嵌)样式表 -->
<style type="text/css">
	p {color:red;}
</style>

<!-- 3,行内(内联)样式;不推荐使用,尽量别用 -->
<p style="color:red,font-size:20px">我用了行内样式,呵呵</p>

<!-- 4,使用@import加载外部样式表 -->
<!-- 注:@import指令出现在样式表中的其他规则之前 -->
<style type="text/css">
	@import url("mystyle.css");
	p {color:red;}
</style>

<!-- 在外部样式表中导入其他样式表,这些代码写在CSS文件内 -->
@import url("mystyle1.css")
@import url("mystyle2.css")
body {
	color:red;
}

       3,CSS特性:

       3.1,层叠性

       样式可以层叠,即多重样式将按某种规则层叠为一个;样式的覆盖与样式的调用顺序无关,与样式的定义顺序有关

       3.2,继承性

       前提:标签之间属于一种嵌套关系

       与文字有关的属性大都可以实现继承,除了<a>、<h1>-<h6>,这几个标签是例外

       3.3,优先级

       层叠规则,优先级高的样式可以覆盖优先级低的样式。

       行内(内联)样式 > 内部样式 > 外部样式 > 默认样式(浏览器缺省设置)

       默认样式 < 标签选择器< 类选择器 < id选择器< 行内(内联)样式 < !important
           0                  1                10            100             1000                 1000以上
       上面用数字来表示优先级(权重),只是一个类比,10个标签选择器的优先级还是不如1个id选择器的,其他类推

       继承来的样式的权重为0;权重可以叠加,即10个标签选择器的权重为10


二:CSS选择器

       1,标签选择器(元素选择器)

       语法:标签名 {属性: 值;}

body {margin:0;}
p {color:red;}

       2,通配选择器

/* 通配选择器使用通配符*来匹配所有标签 */
* {
	padding: 0;
	margin: 0;
}

       3,类选择器

       在css文件或<style>标签内定义:.类名 {属性:值;}   ; 在开始标签内以属性的方式调用:class="类名"

       类的命名规范:不能以数字开头定义类名;不能以特殊符号开头,下划线_除外;不推荐使用汉字、标签名和属性名定义类名。

<style type="text/css">
	.c1 {
		color: red;
	}
	.c2 {
		text-decoration: underline;
	}
</style>

<body>
	<p class="c1">我是一条咸鱼</p>
	<p class="c1 c2">我也是一条咸鱼</p>
</body>

       4,ID选择器

       在css文件或<style>标签内定义:#id名 {属性:值;}   ; 在开始标签内以属性的方式调用:id="id名"

       注意:id名唯一性,即一个id名在整个文档内只使用一次;一个标签只能调用一个id选择器;id主要用来和JS配合使用

#d1 {
	color: red;
}
#d2 {
	text-decoration: underline;
}

<p id="d1">我是一条咸鱼</p>
<!-- 一个标签只能调用一个id选择器,所以下面的用法是错误的 -->
<p id="d1 d2">我也是一条咸鱼</p>

       5,复合选择器

<style type="text/css">
	/* 1,标签指定式选择器 */
	p.c1 {
		color: red;
	}
	p#d1 {
		color: blue;
		text-decoration: underline;
	}

	/* 2,选择器分组/声明分组,以逗号分隔,同时为多个选择器定义样式 */
	h3,p.c2,p#d2 {
		color: deeppink;
	}

	/* 3,后代选择器:选择上所有的某种后代,如选择所有是h3的后代 */
	.div1 h3 {
		font-style: italic;
		font-size: 50px;
	}

	/* 4,子元素选择器:只选择到下一级相应的元素,无法选择上下下一级及更下面的相应元素 */
	div>h3 {
		color: red;
	}

	/* 5,相邻兄弟选择器:只选择上同一级紧跟在后面的一个相应元素,之间不能有其他的元素 */
	div+h3 {
		color: red;
	}
	
	/* 6,兄弟选择器:选择上同一级后面的所有相应元素 */
	div~h3 {
		color: red;
	}
</style>

<body>
	<p>我是一条咸鱼</p>
	<p>我也是一条咸鱼</p>
	<h3>hehehhe</h3>
	<div class="div1">
		<h3>自我介绍</h3>
		<p class="c1">我是一条咸鱼</p>
		<p id="d1">我是一条咸鱼</p>
		<ul>
			<li>
				<h3>我躲在这里</h3>
			</li>
		</ul>
		<h3>自我介绍结束</h3>
	</div>
	<p>我来隔开你们</p>
	<h3>hehehhe</h3>
	<h3>hehehhe</h3>
	<div class="div2">
		<h3>自我介绍</h3>
		<p class="c2">我是一条咸鱼</p>
		<p id="d2">我是一条咸鱼</p>
		<h3>自我介绍结束</h3>
	</div>
	<h3>hehehhe</h3>
	<h3>hehehhe</h3>
</body>

       6,属性选择器

1,简单属性选择器
img[alt] {}
*[title] {}
a[href][title] {}

2,具体属性值选择(完全匹配)
a[title="baidu"] {}
p[class="car"][id="ben"] {}
p[class="urgent warning"] {}

3,部分属性值选择;属性值含有该部分就能匹配上
p[class~="figure"] {}

4,子串匹配属性选择器
[foo^="bar"]    --选择foo属性值以"bar"开头的所有元素
[foo$="bar"]    --选择foo属性值以"bar"结尾的所有元素
[foo*="bar"]    --选择foo属性值包含"bar"的所有元素
[foo|="bar"]    --选择foo属性值等于"bar"的或以"bar"开头的所有元素

       7,伪类选择器

<style type="text/css">

	a:link {
		color: gray;
		text-decoration: none;
	}
	a:visited {
		color: blue;
	}
	/* a:focus {
		text-decoration: overline;
	} */
	/* :focus,:hover,:active IE6只允许超链接使用,IE7允许应用于所有元素 */
	a:hover {
		text-decoration: underline;
		color: red;
	}
	a:active {
		color: yellowgreen;
	}
	
	input:focus {
		background-color: green;
		
	}
	/* 取得第一个p元素,IE7开始支持 */
	p:first-child {
		color: deeppink;
	}
</style>

       8,伪元素选择器

p:first-letter {
	color: red;

}
p:first-line {
	text-decoration: underline;
}
P:before {
	color: green;
}
p:after {
	color: blue;
}

三:层叠

       特殊性:使用0,0,0,0表示法表示特殊性,左边为高位,可以叠加,但不能进位,数字越大则特殊性越高。

* 通配选择器 0,0,0,0
标签/伪元素选择器 0,0,0,1
类/伪类/属性选择器 0,0,1,0
ID选择器 0,1,0,0
内联(行内)样式 1,0,0,0
继承的样式  无特殊性         

       继承值无特殊性,即0特殊性的通配选择器都比继承值强

       重要声明:p {color: #333 !improtant;}    其特殊性最高!

       样式层叠规则分析:


四:文本样式

       1,字体

       写在前面:文档显示的字体取决于用户机器上安装了的字体系列;如果用户机器上安装的字体与你设计使用的字体不同,那么文档看上去会大不同!

       5种通用字体系列:

Serif 字体:字体成比例且有上下短线;包括 Times、Georgia、New Century Schoolbook
Sans-serif 字体:成比例但没有上下短线;包括 Helvetica、Geneva、Verdana、Arical
Monospace 字体:不成比例,每个字符的宽度都完全相同;包括 Courier、Courier New、Andale Mono
Cursive 字体:模仿人的手写体;包括 Zapf chancery、Author、Comic Saus

Fantasy 字体:Western、Woodblock、Klingon

       推荐写法:

/* 按字体的优先级排序;字体名中有空格或#/$之类符号需加引号 */
/* 通过结合特定字体名和通用字体系列,可以创建与你预想的基本相同的文档 */
p {
	font-family: Times,TimesNR,'New York',serif;
}
/* 设置字体的粗细使用font-weight */
/* font-weight:normal(400)|bold(700)|bolder|lighter|100-900 */
       font 联写:  font:style  weight  size/line-height  family;
       联写时,size和family必须有且顺序不能变,即size要在family前面

       注:在使用简写属性font时,所有被忽略的值都会重置为其默认值!


       2,字体颜色:

方式一:使用命名颜色,如 red,green,blue
方式二:rgb(0,0,0)   rgb(255,255,255)  rgba(0,0,0,0.7)   a为alpha 透明度
方式三:rgb(100%,100%,100%) 
方式四:使用十六进制数 #RRGGBB,如#FFFFFF,可简写为#FFF

       web安全颜色:RGB值20% 和 51 的倍数,0% 和 0也是安全值;十六进制中,使用值00、33、66、99、CC、FF的三元组


       3,文本属性


       基线:是英文字母"x"的下端沿
       内容区:底线和顶线之间的区域

       行高 line-height:是文本行基线之间的距离  (能继承)
       line-height  -  font-size  = 行间距

       text-indent   文本缩进  应用于块级元素
       text-align: left |  center  |  right  |  justify

       vertical-align: sub  | super  |  top  | middle  |  bottom
       应用于行内元素和表单元格、替换元素  (不能继承)

       text-transform: uppercase  |  lowercase  |  capitalize  | none

       text-decoration: none |  underline  |  overline  |  line-through  | blink  (无继承性)


五:背景

       前景色:color  ①影响边框  ②影响表单元素

       背景:内容框和内边距是元素背景的一部分,且边框画在背景之上。

       background-color:  背景颜色
       background-image: url();  背景图像  

       background-repeat: repeat (平铺,默认) | repeat-x  | repeat-y | no-repeat 

       background-position: left | right | top | bottom | center | 百分数 | 长度值
       决定原背景图像的放置位置
       其相对于元素的内边框边界放置原图像

       background-position:top; 只写一个关键字,则认为等同于 background-position:top center;

       background-attachment: scroll (滚动,默认) | fixed (固定)

       背景图像关联,相对于视窗

       background 联写:
       background: white url() top left repeat-x fixed;  无顺序要求
       注:在使用简写background属性时,所有被忽略的值都会重置为其默认值,从而覆盖先前给定的值!


猜你喜欢

转载自blog.csdn.net/hua1011161696/article/details/80456149