前端自学笔记_CSS

一、CSS基础

1.CSS样式

样式是css最小的语法单元,每个样式包含两部分内容:选择器和声明(规则)。声明包含两个部分:属性和属性值

body { font-size: 12px; color: #333; }

body:选择器
{}:样式分隔符
font-size: 12px; :声明
font-size:属性
12px:属性值

2.CSS的注释

/*注释语句*/

3.CSS的应用

(1)行内样式

<!-- 行内样式一般放在html开始标签中的style属性中,
多个行内样式使用分号分隔,单个行内样式不用分号
其特点是:只能修饰该标签的内容 -->
<p style="background-color:#999900">行内样式</p>
<h2 style="background-color:#FF6633;color:#FFF">多个行内样式</h2>

(2)内嵌式

<!-- 内嵌式将CSS写在html的<style></style>标签对中,
其特点是:该样式只能在此页使用
例如下方的样式表示本页所有的<p>标签的样式 -->
<style>
p {
	text-align: left; /* 文本左对齐 */
	font-size: 18px; /* 字体大小18像素 */
	line-height:25px; /* 行高25像素 */
	width: 500px; /* 段落宽度 */
}
</style>

(3)链接式

<!-- 链接式通过html的<link>标签,将外部样式表文件链接到html文档中,
通过将html文档与css文件完全分离,实现结构层与表示层的彻底分离 -->
<link href="lianjie.css" type="text/css" rel="stylesheet" />
<link href="lianjie-2.css" type="text/css" rel="stylesheet" />
/* lianjie.css */
h3 {
	font-weight: normal; /* 取消标题默认加粗效果 */
	background: #66CC99;
	height: 50px;
}
span {
	color: #FF0000; /*字体颜色设置*/
	font-weight: bold; /*字体加粗*/
}

(4)导入样式

<!-- 导入样式使用@import命令导入外部样式表
导入样式的语句要放在之前所有的样式使用语句之前 -->
@import daoru.css
@import 'daoru.css'
@import "daoru.css"
@import url(daoru.css)
@import url('daoru.css')
@import url("daoru.css")

4.CSS特性

(1)css样式的优先级

不同位置的样式优先级:
行内样式 > 内嵌式 > 链接式 > 导入样式

不同选择器选择了同一个对象:(可以使用加权值)
标签选择器:1(p {} )
伪元素或伪对象选择器:1
类选择器:10 ( .cent {} )
属性选择器:10
ID选择器:100 ( #imp {} )
其他选择器:0
!important:正无穷 ( span { font-size: 18px !important; } ) (!important命令要在声明与分号之间)
被继承的值:0

二、CSS选择器

1.标签选择器

p {font-size: 18px;}

2.类选择器

.font36px {font-size: 36px;}

3.ID选择器

#box {font-size: 18px;}

4.通配选择器(所有元素定义相同的样式)

* {font-size: 18px;}

5.组合选择器

(1)包含选择器

#main p {font-size: 18px;} /* main包含框内的所有的段落字体大小为18px */

(2)子选择器

#main>p {font-size:20px;} /*main元素的直接子元素*/

子选择器和包含选择器的区别:>作用于元素的第一代后代,空格作用于元素的所有后代。

(3)相邻选择器

p+h3 {background-color: #0099FF;} /*影响的是h3;h3必须在p后面且相邻*/

(4)兄弟选择器

h5~h1 {background: #000;} /*影响h5后面所有同级的h1*/

(5)分组选择器

h1,h2,h3 {color: #000;} /*h1,h2,h3没有任何关系,仅仅为了减少代码量,统一设置*/

6.属性选择器

代码规则
E[attr]使用了属性名,但没有属性值
E[attr=“value”]指定了属性名和属性值
E[attr~=“value”]指定了属性名,并且具有属性值,此属性值为一个词列表,
并且以空格隔开,其中词列表中包含了一个value词
E[attr^=“value”]属性值以value开头
E[attr$=“value”]属性值以value结尾
E[attr*=“value”]属性值包含value
E[attr|=“value”]属性值为value或者以value-开头

E代表之前提到的4类基础选择器之一
eg: a[id] {background: #000;}

7.伪类选择器

伪选择器以冒号(:)作为前缀标识符,冒号前可以添加选择符,限定伪类应用的范围,冒号后为伪类和伪对象名,冒号前后没有空格。

a:link {color:red;}
a.selected:hover {color:blue;}

(1)动态伪类

锚点伪类: 一种在链接中常见的样式,如 :link(未访问)、:visited(已访问)
行为伪类: 用户操作伪类,如 :hover(鼠标覆盖)、:active(鼠标点击)

(2)结构伪类

伪类说明示例
:first-child选择某个元素的第一个子元素
本伪类在子元素后
li:first-child
:last-child选择某个元素的最后一个子元素li:last-child
:nth-child()选择某个元素的一个或多个特定的子元素li:nth-child(n)
:nth-last-child()选择某个元素的一个或多个特定的子元素
从这个元素的最后一个子元素开始计算
:nth-of-type()选择指定的元素
本伪类放在想要修饰的子元素后
p:nth-of-type(2n)
nth-last-of-type()选择指定的元素
从元素的最后一个开始计算
p:nth-last-of-type(2n)
:first-of-type选择一个上级元素下的第一个同类子元素
:last-of-type选择一个上级元素下的最后一个子元素
:only-child选择的元素是它的父元素的唯一 一个子元素
:only-of-type选择的元素是它的上级元素的唯一 一个相同类型的子元素
:empty选择的元素里面没有任何内容

nth-child( ):

代码说明示例
:nth-child(length)参数是具体数字li:nth-child(2)
表示选择列表中第二项
:nth-child(n)参数是n
n从0开始计算
li:nth-child(n)
表示选择所有li元素
:nth-child(n*length)n的倍数选择li:nth-child(2n)
表示选择li元素中2的倍数项(2、4、6、8)
:nth-child(n+length)选择大于或等于length的元素li:nth-child(n+2)
表示选择li中大于等于第二项的
:nth-child(-n+length)选择小于或等于length的元素li:nth-child(-n+2)
表示选择li中小于等于第二项的
:nth-child(n*length+1)表示隔几个选一li:nth-child(2n-1)
表示选择所有满足2n-1的项(1、3、5)

其余带括号的里面的参数与nth-child( )中的一致

(3)否定伪类

:not()表示否定选择器,即排除或者过滤掉特定元素(括号里面是另一个选择器)
eg: input:not([type=“submit”])

(4)状态伪类

伪类说明
:enabled表示匹配指定范围内所有可用的UI元素
UI元素一般指包含在form元素内的表单元素
:disabled表示匹配指定范围内所有不可用的UI元素
:checked表示匹配指定范围内所有可用的UI元素

三、CSS美化网页文本

1.字体样式

属性说明
font字体的复合属性,可设置多种字体属性
font-family指定文本的字体系列
font-style字体风格(斜体)
font-variant以小型大写字体或者正常字体显示文本
font-weight指定字体的粗细
font-size指定文本的字体大小

2.字体颜色

color: 设置字体颜色

3.文本样式

属性说明
text-aligh: left | right | center | justify
左对齐 右对齐 居中对齐 两端对齐
定义文本的对齐方式
vertical-align: auto |baseline | sub | super | top | text-top | middle | bottom | text-bottom | length定义垂直对齐
line-height: normal | length定义行高
text-indent :length定义首行缩进

四、CSS美化图像

1.图像边框

图像边框包括两种:虚线框和实线框
虚线框包括:点线和实线

img {width: 250px; margin: 12px; }
.dotted { /*点线*/
	border-style: dotted;
}
.dashed { /*虚线*/
	border-style:dashed;
}

实线框包括实现(solid),双线(double),立体凹槽(groove),立体凸槽(ridge),
立体凹边(inset),立体凸边(outset)

单独定义边框样式:border-top-style、border-right-style、border-bottom-style、border-left-style
快速定义四个边框样式:border-style: top right bottom left
或者:border-style: top/bottom right/left
border-style: top left/right bottom

边框颜色和宽度:

img {
	border-color:red blue green yello
	border-width:10px 20px 30px
}

图像的透明度:

opacity属性可以设置图像的透明度
opacity:0~1
取值范围在0到1之间,数值越低透明度越高

定义图像圆角:

border-radius属性可以设置圆角样式,
border-radius参数包含两个:水平半径/垂直半径
如果参数只有一个则表示两个半径相同

2.设置背景图像

代码说明参数
background-image定义背景图像见下
background-color定义背景颜色#fff
background-orgin指定背景的显示区域border-box:从边框区域开始显示背景
padding-box:从补白区域开始显示背景
content-box:仅在内容区域显示背景
background-clip指定背景的裁剪区域border-box:从边框区域向外裁剪(向外不要)
padding-box:从补白区域向外裁剪
content-box从内容区域向外裁剪
text从前景内容向外裁剪
background-repeat设置背景图像是否及如何重复铺排见下
background-size定义背景图像的大小<length>:长度值,不可为负
<percentage>0%~100%不可为负
cover:保持宽高比,缩放到完全覆盖所定义背景的区域
contain保持宽高比,缩放到正好适应背景区域
bakcground-position设置背景图像的位置两个参数分别定位x轴和y轴
background-attachment定义背景图像的显示方式fixed:背景图像相对于浏览器窗口固定
scroll:背景图像相对于元素固定
local:背景图像相对于元素内容固定

background-image参数

参数说明
none无背景图
url图像的地址
linear-gradient线性渐变
radial-gradient放射性渐变
repeating-linear-gradient重复的线性渐变
repeating-radial-gradient重复的放射性渐变

background-repeat参数

参数说明
repeat-x背景图像在横向上平铺
repeat-y背景图像在纵向上平铺
repeat背景图像在横向和纵向上平铺
no-repeat背景图像不平铺
round背景图像自动缩放直到适应且填充满整个容器
space背景图像以相同的间距平铺且充满整个容器或整个方向

五、网页排版

1.浮动显示

可以使用float属性定义元素向左侧或右侧浮动
float: none | left | right

2.定位显示

可以使用position属性定义元素位置
position: static | relative | absolute | fixed
static:表示不定位,元素遵循HTML默认的流动模型
absolute:表示绝对定位,将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父定位包含框(有position属性)进行绝对定位,如果不存在这样的定位包含框,则相对于浏览器窗口。其层叠顺序通过z-index来定义(值越大,图层越高)
fixed:表示固定定位,与absolute定位类似,但他的定位包含框为视图本身,由于视图本身是固定的,他不会随浏览器窗口的滚动条滚动而变化
relative:表示相对定位,它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。其本质是先按static生成一个元素,然后移动这个元素。元素偏移前的位置留白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值