复合选择器,背景,css三大特性,显示模式

CSS复合选择器,标签的显示模式,行高,背景,css三大特性

CSS复合选择器

复合选择器作用:更准确精细的选择目标元素标签,复合选择器是由两个或者多个基础选择器,通过不同的方式组合而成

后代选择器
后代选择器也成为包含选择器
作用:用来选择元素或者子元素的子孙后代
其他写法就是吧外层标签写在前面,内层标签写在后面,中间用空格隔开,先写父亲爷爷,在写儿子孙子
父级 子级(属性:属性值;属性:属性值:}
交集选择器
交集选择器是由两个选择器组成,找到的标签必须满足:既有标签一的特点,也有标签二的特点
语法:h3.class{color:red}其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格.
并集选择器
作用:如果某些选择器定义相同的样式,就可以利用并集选择器,可以让代码简洁
并集选择器(css选择器分组)是哥哥选择器通过,连接而成的,通常员工与集体声明
语法:.class,h3{color:red;font-size:25px;}任何选择器都可以作为并集选择器的一部分
记忆技巧:并集选择器通常用于集体声明,逗号隔开,所有选择器都会执行后面样式,逗号可以理解为和的意思
eg:.one,p,#test{color:red;}表示类名为one和p标签和id为test的这三个选择器都会执行颜色为红色
链接伪类选择器
伪类选择器写法:  :linl{}
作用:用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,比如可以选择第一个,第n个元素
因为伪类选择器很多,比如链接伪类,结构伪类.
链接伪类:
	a:link{} //未访问的链接
	a:visited//已访问的链接
    a:hover//鼠标移动到连接上
    a:active//选定的链接
注意:写的时候,他们的殊勋尽量不要颠倒,按照lvha的顺序,否则可能引起错误
复合选择器的总结
选择器 作用 特征 使用情况 隔开符号及用法
后代选择器 用来选择元素后代 是选择所有的子孙后代 较多 符号是空格.nava a
子代选择器 选择最近一级元素 只选亲儿子 较少 符号是> .nav>p
交集选择器 选择两个标签交集的部分 既是又是 较少 没有符号 p.one
并集选择器 选择某些相同样式的选择器 可以用于集体声明 较多 符号是逗号 .nav,header
链接伪类选择器 给链接更改状态 较多 重点记住a{}和a:hover{}

标签显示模式(display)

1:块级元素
常见的额块级元素有h1~h6,p,div,ul,ol,li,.
块级元素的特点:
	独占一行
	高度,宽度,外边距以及内边距都可以控制
	宽度默认是容器(父级)的宽度
	是一个容器级盒子,里面可以放行内或者块级元素,但注意p,h1~h6,dt属于文字标签不能放其他块级元素
2:行内元素
常见的行内元素有a,strong,b,em,i,del,s,ins,u,span
行内元素的特点:
	相邻行内元素在一行上,一行可以显示多个
	高宽直接设置是无效的(宽度为内容的长短)
     默认宽度就是内容的宽度
     行内元素只能容纳文本或者其他行内元素
 注意:
	链接里面不能再放链接
	特殊情况a里面可以放块级元素,但是给a转换一下块级模式最安全.
3:行内块元素
在行内块元素中有几个特殊的标签img,input,td可以对他们设置宽度高度个对齐属性,
行内块元素的特点:
	和相邻行内元素(行内块)在一行上,但是之间会有空隙,一行可以显示多个.
     默认宽度就是它本身内容的宽度
     高度,行高,外边距以及内边距都可以控制
三种模式总结
元素模式 元素排序 设置样式 默认宽度 包含
块级元素 一行只能放一个块级元素 可以设置高度宽度 容器的100% 容器可以包含任何标签
行内元素 一行可以放多个行内元素 不可以直接设置高度和宽度 他本身内容的宽度 容纳文本或其他行内元素
行内块元素 一行方多个行内块元素 可以设置宽度和高度 它本身内容的宽度
标签显示模式转换
块转行:display:inline;
行内专块:display:block;,行内元素转换为行内块:display:inline-block; 

行高那些事(line-height)

一个行高是有四条线(顶线,中线,基线,底线)组成,因为是四条线故此是三个区域分别为上距离,内容距离个地距离
行高和高度的三种关系:
	1:行高等于高度文字会垂直居中
	2:行高大于高度文字会偏下
	3:行高小于高度文字会偏上
理解文字的行高等于盒子高度文字会垂直居中:

CSS背景(background)

背景颜色
语法;background-color:颜色值;默认是transparent透明的
背景图片
background-image:none|url(url)
    eg:background-image:url(images/1.png)//不需要加引号
背景平铺
background-repeat:repeat|no-repeat|repeat-x|repeat-y
repeat:背景图像在纵向和横向上平铺(默认的)
no-repeat:背景图像不平铺
repeat-x:背景图像在横向上平铺
repeat-y:背景图像在纵向上平铺
背景位置(重点)
语法:background-position:length||length  background-position:position||position
	eg:background-position:x座标 y座标
	水平居中:background-position:center center
参数:length->百分数|有浮点数和单位标识符组成的长度值
	position->top|center|botton|left|center|right方位词
注意:
	必须先指定background-image属性
	position后面是x座标和y座标,可以施一公方位词或者精准单位
	如果只指定了一个方位词,另一个默认居中 50%
     如果只指定一个数值,那么该数值用于x座标,另一个默认为y座标,默认居中
     如果指定两个值,两个值都是方位名字,则两个值前后顺序无关,比如left,top和top,left效果一样
     如果指定两个值,精确单位和方位名字混合使用,则第一个值是x座标,第二个值是y座标
背景附着
背景附着就是解释背景是滚动的还是固定的
语法:background-attachment:scroll|fixed
参数:scroll:背景图像是随对象内容滚动的.fixed背景图像固定
背景简写
background:属性的值的书写顺序官方并没有强制标准的,为了可读性建议大家书写如下
background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
background:transparent url(image.png) repeat-y scroll center top;
背景透明
background:rgba(0,0,0,0.3)
最后一个参数是:alpha透明度取值范围0~1
我们习惯把0.30省略掉,这样写background:rgba(0,0,0,.3)
注意:背景半透明是指盒子背景半透明,盒子内容分不受影响.

背景总结
属性 作用
background-color 背景颜色 预定义的颜色值/十六进制RGB代码
background-image 背景图片 url(图片路径)
background-repeat 背景平铺 repeat/no-repeat/repeat-x/repeat-y
background-position 背景位置 length/position 分别是x和y座标,切记如果有精确数值单位,则必须按照先x后y的写法
background-attachment 背景固定还是滚动 scroll/fixed
背景简写 更简单 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置 他们没有顺序
背景透明 让盒子半透明 background:rgba(0,0,0,.3);后面必须四个值

CSS三大特性:层叠性,继承性,优先级

层叠性
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	a{
		color: red;
	}
	a{
		color: green;
	}
	</style>
</head>
<body>
<a href="http://xiaomi.com" class="y">网站首页</a>
</body>

效果为:绿色

继承性

作用:降低复杂性

text-,font-,line-这些元素开头的可以继承,以及color属性

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	div{
		color: red;
	}
	</style>
</head>
<body>
<div>
<p>网站首页</p>
</div>
</body>

效果:文字为红色

优先级(重点)

权重计算公式

!impnort(无穷大)>行内(1,0,0,0)>id(0,1,0,0)>(0,0,1,0)>标签(0,0,0,1)>继承(0,0,0,0)
eg:.class{color:red !import}
继承权重是0.
    如果选中了,那么谁权重大听谁得 
  	如果没有选中,那么权重是0,因为继承的权重是0
  	注意:有两个特殊标签链接和h标题,他们浏览器有自己默认的方式,继承的权重为0,所以我们还是要单独给链接和标题一个样式

权重叠加

.class a{}//类选择器的权重0,0,1,0+标签选择器的权重0,0,0,1=0,0,1,1 

看一下代码了解权重优先级:因为.nav p权重为0,0,1,1而.p1权重为0,0,1,0因为这种写法不能给p1渲染颜色最简单的写法是.nav .p1{color:yellow}权重为0,0,2,0因此p1会为黄色

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	.nav p{
		color: red;
	}
	.p1{
		color: yellow;
	}
	</style>
</head>
<body>
<div class="nav">
<p class="p1">网站首页</p>
<p>网站底部</p>
</div>
</body>
注意:0,0,0,5+0,0,0,5=0,0,0,10所以不会存在10个标签要不一个类权重高的问题

看一下代码说出最终颜色

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	div{/*给到p标签的权重为0*/
		color: red;
	}
	p{/*给到p标签的权重为0,0,0,1*/
		color: yellow;
	}
	/*因为demo没有选p标签,所以继承的权重为0 */
	.demo{/*给到p标签的权重为0*/
		color: blue;
	}
	</style>
</head>
<body>
<div class="demo">
<p>继承的权重为0</p>
</div>
</body>

结果为:黄色

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	div{/*给到p标签的权重为0*/
		color: red;
	}
	p{/*给到p标签的权重为0,0,0,1*/
		color: yellow;
	}
	/*因为demo没有选p标签,所以继承的权重为0 */
	.demo p{/*给到p标签的权重为0,0,1,1*/
		color: blue;
	}
	</style>
</head>
<body>
<div class="demo">
<p>继承的权重为0</p>
</div>
</body>

结果为:蓝色

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章