css第一部分

一、CSS选择器

1.基础选择器

· 标签选择器

标签选择器:用标签名做选择器,可以把某一类标签全部选出来。

<html>
<head>
	<style>
		p {
			color: pink;
		}
		div {
			color: red;
		}
	</style>
</head>
<body>
	<p>这是一段文字</p>
	<p>这是另一段文字</P>
	<div>你好</div>
	<div>早上好</div>
</body>
</html>

效果图:
在这里插入图片描述

优点:能快速为页面中同类型的标签统一设置样式。
缺点:不能设计差异化样式,相同标签的样式是一样的。

· 类选择器

类选择器:用class类名选出一个或者几个标签。

<html>
<head>
	<style>
		.pink {
			color: pink;
		}
		.font-35 {
			font-size: 35px;
		}
	</style>
</head>
<body>
	<p class="pink">这是一段文字</p>
	<p class="pink font-35">这是另一段文字</P>
	<div class="pink font-35">你好</div>
	<!--class中可以写多个类名,但是类名之间要有空格-->
	<!--复合词构成的类名,可以在复合的词之间加上“-”将两个词连起来-->
	<!--一个类名可以给多个标签使用-->
</body>
</html>

效果图:
在这里插入图片描述

· id选择器

id选择器:用#定义做选择器,一个id只能一个标签使用

<html>
<head>
	<style>
		#pink {
			color: pink;
		}
		#font {
			font-size: 35px;
		}
	</style>
</head>
<body>
	<p id="pink">这是一段文字</p>
	<p id="font">这是另一段文字</P>
	<!--一个id名只能一个标签使用-->
</body>
</html>

效果图:
在这里插入图片描述

· 通配符选择器

通配符选择器:用*做选择器,选取页面中的所有元素。

<html>
<head>
	<style>
		* {
			color: pink;
			font-size: 35px;
		}
	</style>
</head>
<body>
	<p>这是一段文字</p>
	<p>这是另一段文字</P>
	<div>你好</div>
	<div>早上好</div>
</body>
</html>

效果图:
在这里插入图片描述

基础选择器总结
基础选择器作用特点使用情况用法
标签选择器可以选出所有相同的标签,比如p不能差异化选择较多p{color:red}
类选择器可以选出1个或者多个标签可以根据需求选择非常多.nav{color:red}
id选择器一次只能选择1个标签id属性只能在每个html文档中出现一次一般和js搭配#nav{color:red}
通配符选择器选择所有的标签选择的太多,有部分不需要也选上了特殊情况使用*{coler:red}

2.复合选择器

1)复合选择器可以更精准、更高效的选择目标元素(标签);
2)复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。

· 后代选择器

后代选择器:选择父元素中的子元素,把外层标签写在前面,内层标签写在后面,中间用空格隔开。

语法:元素1 元素2 { 样式声明;}

  • 元素1和元素2中间用空格隔开
  • 元素1是父级,元素2是子级,最终选择的是元素2
  • 元素2可以是儿子,也可以是孙子等,只要是元素1的后代即可
  • 元素1和元素2可以是任意基础选择器
<html>
<head>
	<style>
		ul li {
			color: red;
		}
		/*选择的是所有的ul中的li*/
		.nav li{
			color: pink;
		}
		/*选择的是类名为nav的ol中的li*/
	</style>
</head>
<body>
	<ul> <li>第一个</li> <li>第二个</li> </ul>
	<ul> <li>123</li> <li>456</li> </ul>
	<ol class="nav"> <li>one</li> <li>two</li> </ol>
	<ol> <li>123</li> <li>456</li> </ol>
</body>
</html>

效果图:
在这里插入图片描述

· 子选择器

子选择器:只能选择作为某元素的最近一级子元素。

语法:元素1>元素2 { 样式声明;}

  • 元素1和元素2中间用大于号隔开
  • 元素1是父级,元素2是子级,最终选择的是元素2
  • 元素2必须是元素1最近的一级子级,其他的隔了代的都不行
· 并集选择器

并集选择器:可以选择多组标签,同时为他们定义相同的样式。通常用于集体声明。各选择器之间通过英文逗号连接,最后一个选择器后面不需要逗号。

语法:元素1,元素2 { 样式声明;}

<html>
<head>
	<style>
		ul>li,
		.nav li {
			color: red;
		}
	</style>
</head>
<body>
	<ul> <li>第一个</li> <li>第二个</li> </ul>
	<ol class="nav"> <li>one</li> <li>two</li> </ol>
</body>
</html>

效果图:
在这里插入图片描述

· 伪类选择器

伪类选择器:用于某些选择器添加特殊效果。

链接伪类选择器

链接伪类选择器说明
a:link选择所有未被访问的链接
a;visited选择所有已被访问的链接
a:hover选择鼠标指针位于其上的链接
a:active选择活动链接(鼠标按下还没松开的链接)

为了确保链接伪类选择器生效,按照LVHA的顺序声明

<html>
<head>
	<style>
		a {
			color: blue;
		}
		a:hover {
			color: red;
		}
	</style>
</head>
<body>
	<a href="#">链接1</a>
	<a href="#">链接2</a>
</body>
</html>

效果图:
在这里插入图片描述

:focus伪类选择器

选择获得焦点的表单元素,一般情况表单元素才能获取,该选择器主要针对表单元素。

<html>
<head>
	<style>
		input:focus {
			background-color: yellow;
			color: red;
		}
	</style>
</head>
<body>
	<input type="text">
	<input type="text">
</body>
</html>

效果图:效果图

复合选择器总结
选择器作用特征使用情况隔开符号及用法
后代选择器用来选择后代元素可以是子孙后代较多符号是空格 .nav li
子代选择器选择最近一级元素只选亲儿子较少符号是大于号 .nav>li
并集选择器选择某些相同样式的元素可以用于集体声明较多符号是逗号 .nav,.pink
链接伪类选择器选择不同状态的链接跟链接相关较多重点是a{}和a:hover
:focus伪类选择器选择获得光标的表单跟表单相关较少input:focus

二、CSS引入方式

1.行内样式表(行内式)

例如:< div style=“color:red;font-size:12px;” >这是一个盒子< /div >

  • style其实就是标签的属性
  • 在双引号中间,写法要复合CSS规范
  • 可以控制当前的标签设置样式
  • 由于书写繁琐,并没有体现出结构与样式相分离的思想,不推荐大量使用,只有对当前元素添加简单样式的时,可以考虑使用
  • 这样的写法优先级高

2.内部样式表(嵌入式)

写到html页面内部,将所有css代码抽取出来,单独放到一个< style >标签中,如:上面所有的代码举例

  • 理论上< style >可以放到任何地方,但是一般放到< head >中
  • 方便控制当前整个页面中的元素样式设置
  • 代码结构清晰,但并没有实现结构与样式完全分离

3.外部样式表(链接式)

将样式单独写到css文件中,把css文件引入html页面中使用
首先新建一个后缀名为.css的样式文件,把css代码放入文件中,文件中只有样式,没有标签
然后使用< link >标签引入
如:
< head >
< link rel=“stylesheet” href="css文件名” >
< /head >
属性rel:定义当前文档与被链接文档之间的关系,在这里需要指定为“stylesheet”,表示被链接的文档是一个样式表文件。
属性href:定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径。

css引入方式总结

样式表优点缺点使用情况控制范围
行内样式表书写方便在,权重更高结构样式混写较少控制一个标签
内部样式表部分结构和样式相分离没有彻底分离较多控制一个页面
外部样式表完全实现结构和样式相分离需要引入很多控制多个页面

三、CSS三大属性

1.层叠性

相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠行主要解决样式冲突的问题。
层叠行原则:

  • 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
  • 样式不冲突,不会层叠,会显示出来
<html>
<head>
	<style>
		p {
			color: red;
			font-size: 35px;
		}
		p {
			color: pink;
		}
	</style>
</head>
<body>
	<p>这是一段文字</p>
</body>
</html>

效果图:
在这里插入图片描述

2.继承性

子元素会继承父元素的某些样式,如文本颜色和字号(text-,font-,line-这些元素开头的可以继承,还有color属性)

<html>
<head>
	<style>
		div {
			color: red;
			font-size: 35px;
		}
	</style>
</head>
<body>
	<div> <p>这是一段文字</p> </div>
</body>
</html>

效果图:
在这里插入图片描述

3.优先级

当同一个元素被指定多个选择器,就会由优先级的产生。

  • 选择器相同,则执行层叠行
  • 选择器不同,则根据选择器权重执行
选择器权重
继承或者*0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
id选择器0,1,0,0
行内样式style1,0,0,0
!important 重要的无穷大

!important用法:p{color:red!important;}
继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。

<html>
<head>
	<style>
		p {
			color: red;
			font-size: 35px;
		}
		.nav {
			color: pink;
		}
	</style>
</head>
<body>
	<p class="nav">这是一段文字</p>
</body>
</html>

效果图:
在这里插入图片描述
权重叠加

如果是复合选择器,则会有权重叠加,需要计算权重
例:
div ul li——0,0,0,3
.nav ul li——0,0,1,2
a:hover——0,0,1,1
.nav a——0,0,1,1

四、CSS元素显示模式

1.块级元素

块元素:< h1 >-< h6 >,< p >,< div >,< ul >,< ol >,< li >
块元素特点:

  • 独占一行
  • 高度,宽度,外边距以及内边距都是可以控制的
  • 宽度默认是容器(父级宽度)的100%
  • 是一个容器(盒子),里面可以放行内或者块级元素

注意:

  • 文字类的元素内不能使用块级元素
  • < p >标签主要用于存放文字,因此< p >里面不能放块级元素,特别是不能放< div >

2.行内元素

行内元素又称内联元素:< a >,< strong >,< b >,< em >,< i >,< span >
行内元素特点:

  • 相邻行内元素在一行上,一行可以显示多个
  • 高、宽直接设置是无效的
  • 默认宽度就是它本身内容的宽度
  • 行内元素只能容纳文本或其他行内元素

注意:

  • 链接里面不能再放链接
  • 特殊情况链接< a >里面可以放块级元素,但是给< a >转换一下块级模式最安全

3.行内块元素

  • 和相邻行内元素(在内块)再一行上,但是他们之间会有空白缝隙。一行可以显示多个(行内元素特点)
  • 默认宽度就是它本身内容的宽度(行内元素特点)
  • 高度,行高,外边距以及内边距都可以控制(块级元素特点)

4.显示模式总结

元素模式元素排列设置样式默认宽度包含
块级元素一行只能放一个块级元素可以设置宽度和高度容器的100%容器级可以包含任何标签
行内元素一行可以放多个行内元素不可以设置宽度和高度它本身内容的宽度容纳文本或则其他行内元素
块级元素一行只能放一个行内块元素可以设置宽度和高度它本身内容的宽度

5.显示模式转换

一个模式的元素需要另一个模式的特性,比如增加< a >的触发范围

  • 行转换为块元素:display:block;
  • 块转换为行内元素:display:inline;
  • 转化为行内块:display:inline-block;

增加链接的触发范围举例

a {
	display:block;
	width:50px;
	height:50px;
}

五、CSS Fonts(字体)属性系列

1.文本字体(font-family)

格式: p { font-family: “micosoft yahei”,"宋体”,Arial }
如果字体由含有空格的多个单词组成,则单词外需要加引号(单引号,双引号都可以)

2.字体大小(font-size)

格式:p { font-size: 20px; }
后面的数字一定要带单位。

3.字体粗细(font-weight)

格式:p { font-weight: normal }

属性值:normal(正常粗细,400),bold(加粗,700),bolder(特粗体),lighter(细体),number(直接写数字,100-900,后面没有单位)

4.字体倾斜(font-style)

格式:p { font-weight: normal }

属性值:normal(正常,没有倾斜),italic(斜体)

5.字体复合属性(font)

格式:font: font-style font-weight font-size/line-height(行高) font-family
例:font: italic 400 16px “宋体”;
不需要设定的可以省略,但是font-size和font-family必须有,否则font属性不起作用

六、CSS Text(文本)属性系列

1.文本颜色(color)

格式:p { color: red; }

颜色有很多种表示方式:用英文单词表示;用十六进制表示(#FF0000);用rgb代码表示(rgb(255,0,0)或rgb(100%,0%,0%)

2.文本对齐(text-align)

格式:p { text-align: center; }

属性值:left(左对齐),right(右对齐),center(居中对齐)

3.装饰文本(text-decoration)

格式:p { text-decoration: none; }

属性值:none(默认,没有装饰线),underline(下划线,链接a自带下划线),overline(上划线),line-through(删除线)

4.文本缩进(text-indent)

格式:p { text-indent: 20px; }

指定文本第一行算进,通常将段落的首行缩进
数字后面的单位还可以是em,em是相对单位,1em是当前字体1个字体的大小。如果该段font-size没有设置,则会按照父元素的文字大小缩进。

5.行间距(line-height)

格式:p { line-height: 26px; }

当行间距line-height=高度height时可以理解为设置垂直居中

七、CSS Background(背景)属性系列

1.背景颜色(background-color)

格式:background-color: red;
默认transparent(透明)

设置背景颜色的透明度可以用rgba(0,0,0,0.3)
a=alpha(透明度,值是0-1,小数的0可以省略,写成.3)
背景透明,内容不会透明

2.背景图片(background-image)

格式:background-image: none/url(图片地址)

3.背景平铺(background-repeat)

格式:background-repeat: repeat;

属性值:repeat(平铺,默认),no-repeat(不平铺),repeat-x(横向平铺),repeat-y(纵向平铺),

4.背景图片位置(background-position)

格式:background-position: x y;

position:top,center,bottom,left,center,right
length:数(20px)

1.参数是方位名词

  • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如:left top和top left效果一样
  • 如果只制定了一个方位名词,另一个值省略,则第二个值默认居中对齐

2.参数是精确单位

  • 如果参数值是精确坐标,那么第一个一定是x坐标,第二个一定是y坐标
  • 如果只指定一个数值,那该数值一定是x坐标,另一个默认垂直居中

3.参数是混合单位

  • 如果指定的两个值是精确单位和方位名词混合使用,则第一个值是x坐标,第二个值是y坐标

5.背景图片固定(background-attachment)

格式:background-attachment: fixed

属性值:scroll(背景图象是随对象内容滚动的),fixed(背景图像固定)

6.背景复合属性(background)

格式:background: background-color background-image background-repeat background-attachment background-position(一般是这个顺序,没有固定的顺序)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值