——CSS

1CSS的概念

层叠样式表 ( 英文全称: Cascading Style Sheets)
        *层叠:多个样式可以作用在同一个 html 的元素上,同时生效
是一种用来表现 HTML XML (标准通用标记语言的一个子集)等文件样式的计算机语言。
  • 样式定义如何显示 HTML 元素
  • 样式通常存储在样式表
  • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
  • 外部样式表可以极大提高工作效率
  • 外部样式表通常存储在 CSS 文件
  • 多个样式定义可层叠为一个

2CSS的优势

1. 功能强大
2. 将内容展示和样式控制分离
  • 降低耦合度。解耦
  • 让分工协作更容易
  • 提高开发效率

3CSS的使用:CSShtml结合使用

根据定义 CSS 的位置不同,分为行内样式、内部样式和外部样式

3.1 行内样式

也称为内联样式
直接在标签中编写样式,通过使用标签内部的 style 属性;
一般在测试的时候使用居多:
语法:
<html标签 style="样式1:值1;样式2:值2;....样式N:值N;">hello my css</html标签>
案例:
<div style="color: red;">hello my css</div>
弊端:只能对当前的标签生效,没有做到内容和样式相分离,耦合度太高。

3.2 内部样式

定义在 head 标签内,通过 style 标签,该标签内容就是 CSS 代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>内部样式</title>
        <style>
            div{
                color: red;
            }
        </style>
    </head>
    <body>
        <div>hello my css</div>
    </body>
</html>

3.3 外部样式

1 、提前定义 css 资源文件
2 、在 head 标签内,定义 link 标签引入外部样式文件。
lina.css文件,放在与html页面同级的css文件夹中:
div {
    color: red;
}
html页面中的引入
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>外部样式</title>
        <link rel="stylesheet" href="css/lina.css" />
    </head>
    <body>
        <div>hello my css</div>
    </body>
</html>
作用域的范围 : 外部样式表 > 内部样式表 > 行内样式表
优先级:外部样式表 < 内部样式表 < 行内样式表 ;
同样的样式作用在同一个标签身上:就近原则;不同样式作用在同一个标签身上 : 叠加生效。

4CSS语法

基本格式:由两个主要的部分构成:选择器,以及一条或多条声明 :
选择器 {
    属性1:值1;
    属性2:值2;
    ...
}

选择器:筛选具有相似特征的元素
属性和属性值之间用冒号分割,不同的属性之间用分号隔开。

5CSS注释

注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
CSS 注释以 /* 开始 , */ 结束
/*这是CSS的注释*/ 
div {
    color: red; /*文字颜色是红色*/ 
}

6、基本选择器:筛选具有相似特征的元素

6.1 id选择器

选择具有相同 id 属性值的元素,建议 html 页面中的 id 值唯一
id 选择器可以为标有特定 id HTML 元素指定特定的样式。
HTML 元素以 id 属性来设置 id 选择器 ,CSS id 选择器以 "#" 来定义。
PS ID 属性不要以数字开头 ,数字开头的 ID Mozilla/Firefox 浏览器中不起作用。
虽然多个元素可以使用同一个 id 选择器控制样式,但是不推荐。如果需要同样的样式对多个标签生效, 使用 class 选择器。

 6.2 class选择器

选择具有相同的 class 属性值的元素。
class 选择器用于描述一组元素的样式, class 选择器有别于 id 选择器, class 可以在多个元素中使用。
class 选择器在 HTML 中以 class 属性表示 , CSS 中,类选择器以一个点 "." 号显示:
PS :类名的第一个字符不能使用数字!它无法在 Mozilla Firefox 中起作用。

 6.3 元素选择器/标签选择器

选择具有相同标签名称的元素。
定义选择器语法:标签名称 {} PS :标签名称必须是 html 提供好的标签。
使用标签选择器:自动使用在所有的同名的标签上

7 优先级 

7.1 选择器的优先级

ID 选择器 > 类选择器 > 标签选择器
当多个选择器作用在同一个标签上的时候,如果属性冲突,看优先级;如果不冲突,样式叠加生效。

7.2 样式表的优先级

行内样式 > 内部样式 > 外部样式
同样,三个样式表中都有内容作用在同一个 html 标签的时候,如果属性冲突,看优先级;如果不冲突,样式叠加生效。

8 CSS常用样式

8.1 color :字体颜色

跟颜色相关的取值分 3 种:
1 、颜色的单词 red blue...
2 rgb( 红,绿,蓝 ) 三色的取值范围是 0-255 rgb(255,0,0)
rgba (红,绿,蓝 , 透明度),透明度取值: 0-1 0 全透明 1- 不透明 0.5 半透明 rgba(255,0,0,0.4)
3 # 1 2 3 :值的范式是 00-FF 十六进制数字组成的 例如: #FF0000

8.2 width height:宽高

PS :只有块状元素可以设置宽高,行级元素设置不生效。
取值方式有 2 种:
        1:数值 绝对数字 单位是像素 PX
        2:百分比:占据父元素的比例

8.3 背景样式

 8.4 文本样式

8.5 列表样式 

8.6 边框样式 

10 HTML&CSS调试利器 

以谷歌浏览器为例说明。
快捷键 F12 或者工具条中的开发者工具调出以下内容。
elements 中可以看到当前页面的所有标签,在 styles 中可以看到 html 元素对应的样式。

11 盒子模型

11.1 概念

所有 HTML 元素可以看作盒子,在 CSS 中, "box model" 这一术语是用来设计和布局时使用。
CSS 盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
盒子模型说明图:

  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。

 11.2 盒子的宽度和高度

元素的实际宽度和高度:
当我们计算一个元素实际在页面占有的总宽度计算公式是这样的:
总元素宽度 = 宽度 + 左填充 + 右填充 + 左边框 + 右边框 + 左边距 + 右边距
元素的总高度最终计算公式是这样的:
总元素的高度 = 高度 + 顶部填充 + 底部填充 + 上边框 + 下边框 + 上边距 + 下边距

11.3 如果想要设置的宽度直接就是元素的实际宽度,通过box-sizing属性

 12 补充常用样式

12.1 flfloat 浮动

12.1.1 什么是浮动

CSS Float (浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float (浮动),往往是用于图像,但它在布局时一样非常有用。

12.1.2 元素怎样浮动

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动元素之后的元素将围绕它。
浮动元素之前的元素将不会受到影响。

12.1.3 彼此相邻的浮动元素

如果你把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。

12.1.4 clear--清除浮动

元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。
clear 属性指定元素两侧不能出现浮动元素。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>浮动</title>
        <style>
        div{
            width: 400px;
            height: 200px;
            margin-bottom: 10px;
            }
        </style>
    </head>
    <body>
        <!--
            没有浮动属性的元素都属于常规文档流:从上往下从左往右依次显示
            浮动的元素都脱离了常规文档流;
            为了好理解:大家可以认为浮动元素属于一层,非浮动元素属于一层
            如果想要非浮动元素不受浮动元素的影响,需要使用clear属性
        -->
        <div style="background: rgba(255,0,0,0.5); float: left;">
            div1-左浮动,脱离常规文档流,紧贴父元素或者上一个同方向浮动
        </div>
        <div style="background: lawngreen; width: 600px; height: 350px; ">
            div2-未浮动,常规文档流,
        <br/>PS:此时div1在div2的上方显示,因为div1和div2是不同文档流中的元素,显示互
                不影响
                如果不想让div2被浮动元素影响,需要添加clear属性。
                添加clear: left;之后div2就会忽略div1浮动的影响,在div1层后面显示,不会重叠
                了,大家可以自己试验一下
        </div>
        <div style="background: lightblue; float: right; width: 1800px;">
            div3-右浮动,脱离常规文档流,紧贴父元素或者上一个同方向浮动
        </div>
        <div style="background: lightcoral; width: 600px; height: 350px; ">
            div4-未浮动,常规文档流,
        <br/>PS:此时div3在div4的上方显示,因为div3和div4是不同文档流中的元素,显示互
                不影响
                如果不想让div4被浮动元素影响,需要添加clear属性。
                添加clear: right;之后div4就会忽略div3浮动的影响,在div3层后面显示,不会重叠
                了,大家可以自己试验一下
                clear属性有三个取值:left、right、both;分别是取出左浮动、有浮动和所有浮动元素
                的影响
        </div>
        <div style="background: lavender;">
            div5-未浮动,常规文档流,
        </div>
    </body>
</html>

12.2 overflflow

控制内容溢出元素框时显示的方式。
overflflow 属性有以下值:
描述
visible
默认值。内容不会被修剪,会呈现在元素框之外。
hidden
内容会被修剪,并且其余内容是不可见的。
scroll
内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto
如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit
规定应该从父元素继承 overflflow 属性的值。
注意 : overflflow 属性只工作于指定高度的块元素上。
注意 : OS X Lion ( Mac 系统 ) 系统上,滚动条默认是隐藏的,使用的时候才会显示 ( 设置
"overflflow:scroll" 也是一样的 )

12.3 Display(显示) Visibility(可见性)

12.3.1 两者的区别

display 属性设置一个元素应如何显示, visibility 属性指定一个元素应可见还是隐藏。
隐藏一个元素可以通过把 display 属性设置为 "none" ,或把 visibility 属性设置为 "hidden" 。但是请注意,这两种方法会产生不同的结果。
visibility:hidden 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display:none 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

12.3.2 display 改变元素的类型

CSS 样式有以下三个:
  • display:block -- 显示为块级元素
  • display:inline -- 显示为内联元素
  • display:inline-block -- 显示为内联块元素,表现为同行显示并可修改宽高内外边距等属性

13 复合选择器

由两个或多个基础选择器,通过不同方式组合而成的。
可以更准确更精细的选择目标元素标签。

13.1 全局选择器

语法: * {} 一般去掉标签的一些默认效果的时候使用,或者整站通用效果时使用。但是不推荐,一般将* 替换为常用标签的名称,并用逗号分隔,其实就是使用并集选择器。

13.2 并集选择器 

并集选择器( CSS 选择器分组)是各个选择器通过 , 连接而成的,通常用于集体声明。
语法:选择器 1 ,选择器 2 ...... 选择器 N{}
意思是多个选择器都是通用的样式。任何形式的选择器(包括标签选择器、 class 类选择器 id 选择器等),都可以作为并集选择器的一部分。

13.3 交集选择器 

条件:交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点。
语法: h3.class{ color:red; }
其中第一个为标签选择器,第二个为 class 选择器,两个选择器之间 不能有空格 ,例如 div.list
交集选择器是并且的意思。 即 ... ... 的意思
例如: table.bg 选择的是: 类名为 .bg 的 表格标签,但用的相对来说比较少。

13.4 后代选择器

概念:后代选择器又称为包含选择器。
作用:用来选择元素或元素组的 子孙后代。
其写法就是把外层标签写在前面,内层标签写在后面,中间用 空格 分隔,先写父亲爷爷,在写儿子孙子。
格式:父级 子级 { 属性 : 属性值 ; 属性 : 属性值 ;}
语法: .class h3{color:red;font-size:16px;}
当标签发生嵌套时,内层标签就成为外层标签的后代。
子孙后代都可以这么选择。 或者说,它能选择任何包含在内的标签。

13.5 子元素选择器

作用:子元素选择器只能选择作为某元素 子元素 ( 亲儿子 ) 的元素。
其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接。
语法: .class>h3{color:red;font-size:14px;}
比如: .demo > h3 {color: red;} 说明 h3 一定是 demo 亲儿子。 demo 元素包含着 h3

13.6 实现代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>复合选择器</title>
        <style>
            /*全局选择器:
                一般去掉标签的一些默认效果的时候使用,或者整站通用效果时使用。但是不推荐,
            */
            *{
                color: #333;/*定义全局文字颜色,统一色彩基调*/
            }
            /*并集选择器:通常用于集体声明
                替换全局选择器;
            */
            div,p,dldt,dd{
                /*去掉浏览器的默认样式*/
                margin: 0;
                padding: 0;
                color: #333;/*定义全局文字颜色,统一色彩基调*/
            }
            /*交集选择器*/
            li.myli{
                color: red;
            }
            /*后代选择器*/
            ul li{
                font-size: 28px;
            }
            .myUL li{
                font-family: "微软雅黑";
            }
            .myUL li a{
                text-decoration: line-through;
            }
            /*子元素选择器*/
            .demo>h3{
                color: red;
            }
        </style>
    </head>
    <body>
        <ul>
            <li>li11111111111</li>
            <li class="myli">li22222222222</li>
            <li>li33333333333</li>
            <li>li44444444444<a href="">点击我试试</a></li>
            <li class="myUL">
                <ul>
                    <li>li11111111111</li>
                    <li class="myli">li22222222222</li>
                    <li>li33333333333</li>
                    <li>li44444444444
                        <a href="">点击我试试</a>
                    </li>
                </ul>
            </li>
        </ul>
        <ol>
            <li>li11111111111</li>
            <li>li22222222222</li>
            <li>li33333333333</li>
            <li>li44444444444</li>
        </ol>
        <div class="demo">
            div1
        <h3>静夜思</h3>
        <ul>
            <li><h3>静夜思----li</h3></li>
        </ul>
        </div>
    </body>
</html>

13.6 伪类选择器

伪类选择器:和类选择器相区别类选择器是一个点 比如 .demo {} 而我们的伪类 用 2 个点 就是 冒号 比如 :link{}
作用:用于向某些选择器添加特殊的效果。比如给链接添加特殊效果, 比如可以选择 第 1 个,第 n 个元素。
因为伪类选择器很多,比如链接伪类,结构伪类等等。我们这里先给大家讲解链接伪类选择器。
  • a:link /* 未访问的链接 */
  • a:visited /* 已访问的链接 */
  • a:hover /* 鼠标移动到链接上 */
  • a:active /* 选定的链接 */
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>伪类选择器</title>
        <style>
            /*伪类选择器*/
            a:link{
                color: red;/*默认颜色是红色*/
            }
            a:visited{
                color: blue;/*访问过的页面是蓝色*/
            }
            a:hover{
                color: green;/*鼠标悬浮是绿色*/
                font-size: 28px;
            }
            a:active{
                color: gold;/*按下鼠标不放手是金色*/
                font-family: "微软雅黑";
            }
        </style>
    </head>
    <body>
        <a href="03-常用样式.html" target="_blank">常用样式</a>
        <a href="04-盒子模型1.html" target="_blank">盒子模型</a>
        <a href="05-综合练习.html" target="_blank">综合练习</a>
    </body>
</html>
注意 **
  • 写的时候,他们的顺序尽量不要颠倒 按照 lvha(四类的首字母) 的顺序。否则可能引起错误。
  • 因为叫链接伪类,所以都是利用交集选择器 a:link a:hover
  • 因为a链接浏览器具有默认样式,所以我们实际工作中都需要给链接单独指定样式。
  • 实际开发中,我们很少写全四个状态,一般我们写法如下:
a { /* a是标签选择器 所有的链接 */
    font-weight: 700;
    font-size: 16px;
    color: gray;
}
a:hover { /* :hover 是链接伪类选择器 鼠标经过 */
    color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
}

13.7 复合选择器比对

选择器
作用
特征
使用
情况
隔开符号及用法
后代选择器
用来选择元素后代
是选择所有的
子孙后代
较多
符号是 空格 p .one
子代选择器
选择 最近一级元素
只选亲儿子
较少
符号是 > .nav>p
交集选择器
选择两个标签交集
的部分
既是 又是
较少
没有符号 p.one
并集选择器
选择某些相同样式
的选择器
可以用于集体
声明        
较多
符号是 逗号 .nav, .header
链接伪类选择器
给链接更改状态
较多
重点记住 a{} a:hover 实际开发的写法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值