【css】层叠样式表基础

css 语法

1. css实例

h1 {color: skyblue;}
h1 是选择器
{} 中声明选择器的属性和值
color 是属性
skyblue 是值

2. css注释

注释后的代码,浏览器会忽略这个样式。

	h1 {
		/*  color: skyblue; */
	}

3. css Id 和 Class 选择器

id 选择器 只能在同一个page中出现一次,并且在css中使用要在前面添加”#“。
class 选择器 在同一个页面中可以出现多次,并且在css中使用要在前面加上”.“
注意:Id 和 class 不要使用数字为第一个字符。Mozilla或Firefox中不起作用。

4. css创建

css样式表有三类。1.外部样式表 2.内部样式表 3.内联样式表.

  • html中,外部样式表可以通过 link标签引入。
	<head>
		<link rel="stylesheet" type="text/css" href="mystyle.css">
	</head>
  • html中,内部样式表是书写在
	<head>
	<style>
	hr {color:sienna;}
	p {margin-left:20px;}
	body {background-image:url("images/back40.gif");}
	</style>
	</head>
  • html中, 内联样式表则是与dom元素混合在一起的,如下
	<p style="color:sienna;margin-left:20px">这是一个段落。</p>

若内联样式和外联样式想要修改内联样式需要在属性值后书写"!important".

还有多重样式的情况,同一个dom分别在内联样式,内部样式,外联样式中同时定义了相同属性的值。(任意两个样式表重复出现即为多重样式)。

多重样式的优先级
(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

5. CSS 背景

用于定义dom元素背景。

1. background-color	属性定义了元素的背景颜色.
	十六进制 - 如:"#ff0000"
	RGB - 如:"rgb(255,0,0)"
	颜色名称 - 如:"red"
2. background-image	属性描述了元素的背景图像. 
	默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体.
3. background-repeat 图片平铺 布满dom
	repeat-x  沿x轴平铺(横向)
	repeat-y	沿y轴平铺(纵向)
	no-repeat 不平铺
4. background-attachment  设置背景图是随dom翻滚还是固定不动
	scroll 跟随滚动
	fixed  不滚动
5. background-position  属性改变图像在背景中的位置
6. background-size	设置背景图片尺寸

简写方式(注意顺序)
background: background-color background-image background-repeat background-attachment background-position;

6. CSS 文本格式

1. color				设置文本颜色
	十六进制值 - : #FF0000
	一个RGB值 - : RGB(255,0,0)
	颜色的名称 - : red
2. direction			设置文本方向
	ltr	默认。文本方向从左到右。
	rtl	文本方向从右到左。
	inherit	规定应该从父元素继承 direction 属性的值。
3. letter-spacing		设置字符间距
4. line-height			设置行高
5. text-align			对齐元素中的文本
	center - 居中对齐
	right - 右对齐
	left - 左对齐
	justify - 左右对齐
6. text-decoration		向文本添加修饰(文本横线设置)
	none - 不设置任何线
	overline - 文字顶部线
	line-through - 穿过文字的线
	underline - 下划线
7. text-indent			缩进元素中文本的首行
	中文通常 - 2em 
	英文通常 - 使用px缩进
8. text-shadow			设置文本阴影
 	h-shadow	必需。水平阴影的位置。允许负值。
	v-shadow	必需。垂直阴影的位置。允许负值。
	blur	可选。模糊的距离。
	color	可选。阴影的颜色。
9. text-transform		控制元素中的字母
	uppercase - 文本大写
	lowercase - 文本小写
	capitalize - 单词首字母大写
10. unicode-bidi		设置或返回文本是否被重写
	要与direction属性一起使用,值为rtl
	normal	默认。不使用附加的嵌入层面。
	embed	创建一个附加的嵌入层面。
	bidi-override	创建一个附加的嵌入层面。重新排序取决于 direction 属性。
	initial	设置该属性为它的默认值。
	inherit	从父元素继承该属性。
	例子:
	direction:rtl;
    unicode-bidi:bidi-override;
    后文本从右往左读。
11. vertical-align		设置元素的垂直对齐
12. white-space			设置元素中空白的处理方式
	normal	默认。空白会被浏览器忽略。
	pre	空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
	nowrap	文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
	pre-wrap	保留空白符序列,但是正常地进行换行。
	pre-line	合并空白符序列,但是保留换行符。
	inherit	规定应该从父元素继承 white-space 属性的值。
	word-spacing		设置字间距

7. CSS 字体

1. font	在一个声明中设置所有的字体属性
2. font-family	指定文本的字体系列
 	font-family:"Times New Roman",Georgia,Serif;
3. font-size	指定文本的字体大小
4. font-style	指定文本的字体样式
	normal	默认值。浏览器显示一个标准的字体样式。
	italic	浏览器会显示一个斜体的字体样式。
	oblique	浏览器会显示一个倾斜的字体样式。
	inherit	规定应该从父元素继承字体样式。
5. font-variant	以小型大写字体或者正常字体显示文本。
 	normal	默认值。浏览器会显示一个标准的字体。
	small-caps	浏览器会显示小型大写字母的字体。
	inherit	规定应该从父元素继承 font-variant 属性的值。
	[效果传送门](https://www.runoob.com/try/try.php?filename=trycss_font-variant)

6. font-weight	指定字体的粗细。

8. CSS 链接

这四个链接状态是:
	a:link - 正常,未访问过的链接
	a:visited - 用户已访问过的链接
	a:hover - 当用户鼠标放在链接上时
	a:active - 链接被点击的那一刻
顺序规则:
	a:hover 必须跟在 a:link 和 a:visited后面
	a:active 必须跟在 a:hover后面

9. CSS 列表

无序列表 ul - 列表项标记用特殊图形(如小黑点、小方框等)
有序列表 ol - 列表项的标记有数字或字母

list-style			简写属性。用于把所有用于列表的属性设置于一个声明中
list-style-image	将图像设置为列表项标志。
list-style-position	设置列表中列表项标志的位置。
list-style-type		设置列表项标志的类型。

无序列表
	list-style-type: circle/square; 设置圆点/方框
有序列表
	list-style-type: upper-roman/lower-alpha; 设置罗马数字/英文字母

10. CSS 表格

 table 父元素 表格
 tr	   行
 th	   表头
 td	   单元格
	border-collapse:collapse; // 可以去除各个边框间的缝隙

11. CSS 盒子模型

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

Margin(外边距) - 清除边框外的区域,外边距是透明的。
	margin:topLfet topRight bottomRight bottomLeft;
	margin-top, margin-right, margin-bottom, margin-left
Border(边框) - 围绕在内边距和内容外的边框。
	Border: 线宽 线类型 颜色;
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
	padding:topLfet topRight bottomRight bottomLeft;
	padding-left, padding-top, padding-right, padding-bottom
Content(内容) - 盒子的内容,显示文本和图像。

12. CSS 边框

1. border-style: none/dotted/dashed/solid/double/groove/ridge/inset/outset
	none: 默认无边框
	dotted: 定义一个点线边框
	dashed: 定义一个虚线边框
	solid: 定义实线边框
	double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
	groove: 定义3D沟槽边框。效果取决于边框的颜色值
	ridge: 定义3D脊边框。效果取决于边框的颜色值
	inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
	outset: 定义一个3D突出边框。 效果取决于边框的颜色值
	[效果传送门](https://www.runoob.com/css/css-border.html)
	- 边框-单独设置各边
	- border-top-style:dotted;
	- border-right-style:solid;
	- border-bottom-style:dotted;
	- border-left-style:solid;
	border-style的简写
		4个值: 上右下左
		3个值: 上左右下
		2个值: 上下,左右
2. border-width 边框宽度
	- 边框-单独设置各边
	- border-top-width
 	- border-right-width
 	- border-bottom-width
 	- border-left-width
3. border-color 边框颜色
 	- border-top-color
 	- border-right-color
 	- border-bottom-color
 	- border-left-color
4. border-radius	设置圆角的边框。
边框-简写属性
	border: border-width border-style (required) border-color;

13. CSS 轮廓(outline)

轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
轮廓(outline)属性指定元素轮廓的样式、颜色和宽度。

outline	在一个声明中设置所有的轮廓属性	
	outline-color
	outline-style
	outline-width
	inherit	
outline-color	设置轮廓的颜色	
	color-name
	hex-number
	rgb-number
	invert
	inherit	
outline-style	设置轮廓的样式
	none
	dotted
	dashed
	solid
	double
	groove
	ridge
	inset
	outset
	inherit	
outline-width	设置轮廓的宽度	
	thin
	medium
	thick
	length
	inherit	

14. CSS margin(外边距)

margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。
margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。

 margin: auto/length/%;
 	auto	设置浏览器边距。
	length	定义一个固定的margin(使用像素,pt,em等)
	%	定义一个使用百分比的边距
 单边外边距属性
 	margin-top		设置元素的上外边距。
	margin-bottom	设置元素的下外边距。
	margin-right	设置元素的右外边距。
	margin-left 	设置元素的左外边距。
 margin简写
 	4个值: 上右下左
	3个值: 上左右下
	2个值: 上下,左右

15. CSS padding(填充)

当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。
单独使用 padding 属性可以改变上下左右的填充。

padding: length/%;
	length	定义一个固定的填充(像素, pt, em,)
	%	使用百分比值定义一个填充
 单边外边距属性
 	padding-top		设置元素的顶部填充
	padding-bottom	设置元素的底部填充
	padding-right	设置元素的右部填充
	padding-left 	设置元素的左部填充
 padding简写
 	4个值: 上右下左
	3个值: 上左右下
	2个值: 上下,左右

16. CSS 分组 和 嵌套 选择器

分组选择器
在样式表中有很多具有相同样式的元素

h1,h2,p
{
    color:green;
}

嵌套选择器
它可能适用于选择器内部的选择器的样式。
在下面的例子设置了四个样式:

p{ }: 为所有 p 元素指定一个样式。
.marked{ }: 为所有 class="marked" 的元素指定一个样式。
.marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式。
p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式。

17. CSS 尺寸 (Dimension)

height		设置元素的高度。
line-height	设置行高。
max-height	设置元素的最大高度。
max-width	设置元素的最大宽度。
min-height	设置元素的最小高度。
min-width	设置元素的最小宽度。
width		设置元素的宽度。

18. CSS Display(显示) 与 Visibility(可见性)

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

Display - 块和内联元素
	block:块元素是一个元素,占用了全部宽度,在前后都是换行符。
	inline:内联元素只需要必要的宽度,不强制换行。

19. CSS Position(定位)

position 属性的五个值:
	static		默认,即没有定位,遵循正常的文档流对象
	relative	相对定位元素的定位是相对其正常位置。
	absolute	绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>:
	fixed		元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动。
	sticky		基于用户的滚动位置来定位。 粘性定位的元素是依赖于用户的滚动。
	sticky详细说明
		它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。
		元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
		这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
		注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix

20 . CSS 布局 - Overflow

CSS overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条。

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

overflow-x 设置x轴滚动 scroll
overflow-y 设置y轴滚动 scroll

21. CSS Float(浮动)

CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
浮动元素之后的元素将围绕它。
浮动元素之前的元素将不会受到影响。

float: left/right/none/inherit; 指定一个盒子(元素)是否可以浮动。
clear:left/right/both/none/inherit; 指定不允许元素周围有浮动元素。

22. CSS 布局 - 水平 & 垂直对齐

1. 元素居中对齐
 	margin: auto;
2. 文本居中对齐
 	text-align: center;
3. 图片居中对齐
	 margin: auto;
4. 左右对齐 - 使用定位方式
	 position: absolute;
	 left:0;/right:0;
5. 左右对齐 - 使用 float 方式
 	float: left;/ float: right;
6. 垂直居中对齐 - 使用 padding
	padding: 上下高度一致即可 0;
   如果要水平和垂直都居中,可以使用 padding 和 text-align: center:
7. 垂直居中 - 使用 line-height
 	height 等于 line-height
8. 垂直居中 - 使用 position 和 transform
	margin: 0;
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

23. CSS 组合选择符

CSS组合选择符包括各种简单选择符的组合方式。
在 CSS3 中包含了四种组合方式:

1. 后代选择器(以空格     分隔)
 	后代选择器用于选取某元素的子元素。
2. 子元素选择器(以大于 > 号分隔)
 	与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素直接/一级子元素的元素。
3. 相邻兄弟选择器(以加号 + 分隔)
 	相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素
4. 后续兄弟选择器(以波浪号 ~ 分隔)
	后续兄弟选择器选取所有指定元素之后的相邻兄弟元素。

24. CSS 伪类(Pseudo-classes)

:checked				input:checked			选择所有选中的表单元素
:disabled				input:disabled			选择所有禁用的表单元素
:empty					p:empty					选择所有没有子元素的p元素
:enabled				input:enabled			选择所有启用的表单元素
:first-of-type			p:first-of-type			选择的每个 p 元素是其父元素的第一个 p 元素
:in-range				input:in-range			选择元素指定范围内的值
:invalid				input:invalid			选择所有无效的元素
:last-child				p:last-child			选择所有p元素的最后一个子元素
:last-of-type			p:last-of-type			选择每个p元素是其母元素的最后一个p元素
:not(selector)			:not(p)					选择所有p以外的元素
:nth-child(n)			p:nth-child(2)			选择所有 p 元素的父元素的第二个子元素
:nth-last-child(n)		p:nth-last-child(2)		选择所有p元素倒数的第二个子元素
:nth-last-of-type(n)	p:nth-last-of-type(2)	选择所有p元素倒数的第二个为p的子元素
:nth-of-type(n)			p:nth-of-type(2)		选择所有p元素第二个为p的子元素
:only-of-type			p:only-of-type			选择所有仅有一个子元素为p的元素
:only-child				p:only-child			选择所有仅有一个子元素的p元素
:optional				input:optional			选择没有"required"的元素属性
:out-of-range			input:out-of-range		选择指定范围以外的值的元素属性
:read-only				input:read-only			选择只读属性的元素属性
:read-write				input:read-write		选择没有只读属性的元素属性
:required				input:required			选择有"required"属性指定的元素属性
:root					root					选择文档的根元素
:target					#news:target			选择当前活动#news元素(点击URL包含锚的名字)
:valid					input:valid				选择所有有效值的属性
:link					a:link					选择所有未访问链接
:visited				a:visited				选择所有访问过的链接
:active					a:active				选择正在活动链接
:hover					a:hover					把鼠标放在链接上的状态
:focus					input:focus				选择元素输入后具有焦点
:first-letter			p:first-letter			选择每个<p> 元素的第一个字母
:first-line				p:first-line			选择每个<p> 元素的第一行
:first-child			p:first-child			选择器匹配属于任意元素的第一个子元素的 <p> 元素
:before					p:before				在每个<p>元素之前插入内容
:after					p:after					在每个<p>元素之后插入内容
:lang(language)			p:lang(it)<p>元素的lang属性选择一个开始值(只是插入了对应css文本啊?)

本文学习基于菜鸟教程css 传送门

css参考手册属性 传送门

前端MDN 传送门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值