CSS-1

认识 CSS

CSS:层叠样式表

引入方式

方式一

CSS代码,直接写在 HTML 的 style 标签里

<style>
    p {
        color:red; /* 颜色大小控制 */
        font-size:30px; /* 字号大小 */
    }
</style>

方式二

在 HTML 使用 link 标签引入

<link rel="stylesheet" href="./test.css">

rel 属性(了解)
    1. rel 属性规定当前文档与被链接文档之间的关系
    2. 只有 rel 属性的 "stylesheet" 值得到了所有浏览器的支持。其他值只得到了部分地支持

方式三

CSS代码,直接写在标签的 style 属性值里(不推荐)

<div style="color:red; font-size:20px;"> 这是div标签 </div>

行内样式,配合 JavaScript 使用

CSS 注释

/* 这是注释,CSS代码 */

CSS 特性

继承性、层叠性、优先级

作用:简化代码 ( 定位问题 ),并解决问题

1.继承性:
	子级默认继承父级的文章控制属性,当然,如果子级自己有则生效自己的样式,不继承。
2.层叠性:
	相同的属性会覆盖:后面的CSS属性覆盖前面的CSS属性
	不同的属性会叠加:不同的CSS属性都生效
3.优先级:
优先级也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则
规则内容:选择器优先级高的样式生效

公式详情:
/*
通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important 
*/

即:选中标签的范围越大,优先级越低
!important 提权功能,提高权重/优先级提到最高,慎用!!

举例:

<style>
    .box {
        color:blue !important;
    }
</style>

选择器

作用:查找标签,从而能够设置样式

基础选择器

1.标签选择器

<style>
    p {
        color:red;
    }
</style>

使用"标签名"(如:p、div、h1...)作为选择器->选中"同名标签"设置"相同的样式"

2.类选择器

<style>
    .to-red {
        color:red;
    }
    .TO-big {
        font-size:20px;
    }
</style>

<body>
    <p class="to-red">111111</p>
    <p>222222</p>
    <p class="to-red TO-big">333333</p>
</body>

查找标签,差异化设置标签的显示效果(一个标签可以使用多个类名,当 class 属性值要写多个类名时,类名与类名之间用空格隔开)

3.id选择器

<style>
    #d1 {
        color:red;
    }
</style>
<body>
    <div id="d1">111111</div>
    <div>222222</p>
    <div>333333</div>
</body>

id 选择器一般配合 JavaScript 使用,很少用来设置 CSS 样式(注意,同一个id 选择器在一个页面只能使用一次)

4.通配符选择器

<style>
    * {
        color:red;
    }
</style>

不需要调用,浏览器自动查找页面所有标签,设置相同的样式

复合选择器

定义:由两个或多个基础选择器,通过不同的方式组合而成

作用:更准确、高效的选择目标元素(标签)

类型:
	1.后代选择器
	2.子代选择器
	3.并集选择器
	4.交集选择器

1.后代选择器

作用:
	选中某元素的后代元素(包括儿子、孙子、重孙子...)
写法:
    父选择器 子选择器 {
        css属性:;
    }

2.子代选择器

作用:
	选中某元素的子代元素(最近的子级)
写法:
    父选择器 > 子选择器 {
        css 属性:值;
    }

3.并集选择器

作用:
	选中多组标签设置相同的样式

写法:
    选择器1, 选择器2, 选择器3 {
        css属性:值;
    }

4.交集选择器

作用:
	选中同时满足多个条件的元素(了解)
    注意:标签选择器必须书写在最前面

写法:
    <style>
        /* 既是P标签,又是box类 */`
        p.box {
            color:red;
        }
    </style>
    <body>
        <p class="box">p标签,使用了类选择器</p>
        <p>p标签</p>
        <div class="box">div标签,使用了类选择器</div>
    </body>

伪类选择器

  • 伪类表示 “元素状态”,选中元素的某个状态,设置样式!
鼠标悬停状态:

选择器:hover {
	CSS属性:属性值;
}

<style>
    /* 任何标签都可以设置鼠标悬停的状态 */
    a:hover {
        color: red;
        text-decoration: none;
    }
    .box:hover {
        color:blue;
    }
</style>

<body>
    <a href="#">a标签</a>
    <div class="box">div标签</div>
</body>
伪类---超链接

超链接共有四个状态,分别是:

		:link		访问前
		:visited	访问后
		:hover		鼠标悬停
		:active		点击时(激活)

提示:如果要给超链接设置以上四个状态,需要按LVHA的顺序书写

文字属性

字体大小

font-size:20px

字体粗细

font-weight:400

正常:400,加粗:700

字体倾斜

font-style

不倾斜:normal,倾斜:italic

行高

line-height:20px;

直接写数字的话,将作为当前标签 font-size 属性值的倍数

字体族

font-family:Microsoft YaHei, Heiti SC;

从左往右,有这个字体就执行这个字体,没有就向右继续执行备胎字体,建议在工作中使用无衬线字体进行兜底 sans-serif

字体复合属性

font:italic 700 30px/2 楷体;

文字倾斜、文字加粗、字体大小30px、行高2倍、楷体
(注意:字号和字体必须书写,否则不生效)

文本属性

文本缩进

text-indent:2em;

推荐使用em ,若当前标签的字号的大小为16px,则1em=16px,2em=32px。
当然也可以使用"数字+px",但是不推荐。
首行缩进两个字实例:text-indent:2em;

文本对齐

text-align:center;

文本对齐方式: left、center、right
居中的本质是文字居中,而不是标签居中
扩展:图片居中

<style>
    div {
        text-align:center;
    }
</style>

<div>
    <img src="./images/pic.jpg" alt="这是一张猫的图片">
</div>

修饰线

text-decoration:none;

none		     清除所有效果
underline	       下划线
line-through 	   删除线
overline	   	   上划线
例子: 清除"a标签"的下划线

<style>
    a {
        text-decoration:none;
    }
</style>

<a>点击前往</a>

颜色

color: red;

rgb 表示法(了解)
    1. rgb(r,g,b)
    2. 三元色取值(0-255)

rgba 表示法(开发使用)
    1. rgba(r,g,b,a)
    2. a 表示透明度,其取值为(0-1)

十六进制表示法(开发使用)
	1. #000000、#ffcc00...
	2. 简写形式:#000、#fc0...

背景属性

属性大全

背景色				 background-color
背景图				 background-image
背景图平铺方式		 background-repeat
背景图位置			 background-position
背景图缩写			 background-size
背景图固定			 background-attachment
背景复合属性		     background

背景图

引用背景图

<style>
    div {
        width: 400px;
        height: 400px;
        /* 背景图默认是平铺(复制)的效果 */
        background-image: url();
    }
</style>

<body>
    <div>div标签</div>
</body>

平铺方式

属性名: background-repeat(bgr)

属性值:
    no-repeat	不平铺
    repeat		平铺
    repeat-x	水平方式平铺
    repeat-y	垂直方式平铺

代码演示:
<style>
    div {
        width: 400px;
        height: 400px;
        background-image: url();
        background-repeat: no-repeat;
    }
</style>

<body>
    <div>div标签</div>
</body>

背景图位置

属性名:background-position

属性值:水平方向位置,垂直方向位置,具体如下:
1.属性值方式一:关键字
    left	 左
    right	 右
    center	 居中
    top		 顶部
    bottom	 底部
2.属性值方式二:坐标(数字+px,正负都可以)
3.属性值方式三:上面两者混用

代码演示:
<style>
    div {
        width: 400px;
        height: 400px;
        background-color: pink;
        background-image: url(./images/1.png);
        background-repeat: no-repeat;
        
        background-position:center bottom; 
        background-position:50px -100px;
        bakcground-position:50px center;
    }
</style>

<body>
    <div>div标签</div>
</body>

背景图缩放

属性名:background-size

属性值:
cover:等比例缩放背景图片以完全覆盖区域,可能背景图片部分看不见
contain:等比例缩放背景图片以完全装入背景区,可能背景区部分空白
百分比:根据盒子尺寸计算图片大小
数字 + 单位(例如:px)

代码演示:
<style>
    div {
        width: 600px;
        height: 400px;
        background-color: pink;
        background-image: url(./images/1.png);
        background-repeat: no-repeat;
        
        background-size:100%;
        background-size:cover;
        background-size:contain;
    }
</style>

背景图固定

作用:背景不会随着元素的内容滚动

属性名:background-attachment

属性值:fixed

图片挤压变形

img {
	width: 100%;
	height: 100%;
	
	/* 缩放img,图片比例与父级盒子比例不同,避免图片挤压变形 */
	/* cover 完全覆盖 */
	object-fix: cover;
}

显示模式

1.块级元素(例如:div)
	* 独占一整行
	* 宽度默认是父级的100%
	* 添加宽高属性会生效
	
2.行内元素(例如:span)
	* 一行共存多个
	* 尺寸由内容撑开
	* 加宽高不生效
	
3.行内块元素(例如:img)
	* 一行共存多个
	* 默认尺寸由内容撑开
	* 加宽高属性会生效

转换显示模式

属性名:display

属性值:
    block			块级		(独占一行,宽高生效)		例如:div
    inline-block	行内块	(一行共存,宽高生效)		例如:img
    inline			行内		(一行共存,宽高无效)		例如:span