其他分享
首页 > 其他分享> > 第三阶段-day02_css

第三阶段-day02_css

作者:互联网

(day02上午第二节课半开始)

CSS

主要用于修饰html显示, 

可以创建一个专门的css页面来写。也可以在html页面写。

CSS历史

在web早期(1990-1993),html是一个很局限的语言。几乎完全由用于描述段落,超链接,列表和标题的结构化元素组成。随着万维网的出现(用户交互体验的加强),对html的要求越来越大,人们迫切需要html增加新的元素,去完成一个特定的功能。

迫于压力,html开始出现<font>,<i> , <s> 等标签,还增加了某些标签的很多属性。但是html是一种描述结构的语言,也开始描述外在表现了。几年之后这种随便的做法暴露出严重的问题:1:由于html既写结构又写样式,导致页面缺乏结构性,降低了网页的可访问性。2:页面维护越来越困难

CSS概念

CSS 指层叠样式表 (级联样式表)

 

 

 

0创建css文件

 

1.1 在html页面引入css

行内写在<body>中,内联&外联(链接和导入)写在<head>标签里。

<body>
<p style=" color:#FFFFFF"> p标签段落内容。 </p>
</body>
<head>
<style type=”text/css”>
    p { color:#FF0000;}
</style>
</head>
<head>
<link rel="stylesheet" type="text/css" href="css_3.css" />
</head>
<head>
<style type="text/css"> @import url(css_3.css); </style>
</head>

 

 

 

1.2 选择器

就是把css样式用过某种途径和html标签相互关联起来---->选择器

1.2.1 标签选择器

通过标签名实现关联

Eg:// 对所有<p>标签

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

 

 

 

 

 

1.2.2 类选择器(最常用)

通过类名(class)关联起来

在html代码中, 标签有一个class属性, class属性所指向的值,就是这个标签的css类名

在css中(style标签里) 可以创建一个 以  .类名{}  的样式和html对应的标签绑定起来

<head>
    <style>
        .aaa{
            background: green;
        }
    </style>
</head>

<body>
<hr>
<div class="aaa">
    我是一个div
</div>

</body>

 

 

 

 

 

 

这里类名可以重复。

 

1.2.3 Id选择器

通过id属性关联起来

在html代码中, 标签有一个id属性, id属性所指向的值,就是这个标签的css id

在css中(style标签里) 可以创建一个 以  #id{}  的样式和html对应的标签绑定起来

 

注意: id是一个唯一标识, 在一个html文档中, id是不可重复的

 

 

 

 Id选择器,不是那么常用, (dom, id一帮会用于dom操作, js内容。对使用id选择器没有任何影响,但就是很少用。)

 

1.2.4 其它选择器(稍微看看即可)

 

 

 

 

 

1.复合--选择器

 

1.关联选择器(包含选择器)--->嵌套

p b { color:#FF000;}

后代选择器用来选择元素或元素组的后代,其写法就是把外层标记写在前面,内层标记写在后面,中间用空格分隔。当标记发生嵌套时,内层标记就成为外层标记的后代。

 

 

 

 

2.组合选择器

多个不同选择器要用逗号分隔开

p,div { color:#FF0000;} 

 

类组合

.aaa ,div { color:#FF0000;}

 

<p class="aaa">P标签显示段落。</p>

<div>DIV标签显示段落</div>

 

2.属性选择器

[attribute]    用于选取带有指定属性的元素

[target]{

}

div[id]{
    background-color:yellow;
}

 

 

 

[attribute=value]    用于选取带有指定属性和值的元素。

a[href="http://www.w3school.com.cn/"][title="W3School"] {
    color: red;
}

 

[attribute~=value]   用于选取属性值中包含指定词汇的元素。

[title~=flower]{
    background-color:yellow;
}

 

[attribute|=value]    用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

[attribute^=value]    匹配属性值以指定值开头的每个元素。

[attribute$=value]    匹配属性值以指定值结尾的每个元素。

[attribute*=value]    匹配属性值中包含指定值的每个元素。

a[href*="w3school.com.cn"] {
    color: red;
}

 

3.伪类--选择器

CSS伪类是用来添加一些选择器的特殊效果。

其实就在html中预先定义好的一些选择器。

:link 应用于未被访问过的链接;

:hover 应用于鼠标悬停到的元素;

:active 应用于被激活的元素;

:visited 应用于被访问过的链接,与:link互斥。

:focus 应用于拥有键盘输入焦点的元素。

:first-child 选择某个元素的第一个子元素;

:last-child 选择某个元素的最后一个子元素;

:nth-child() 选择某个元素的一个或多个特定的子元素;

:nth-last-child() 选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;

:nth-of-type() 选择指定的元素;

:nth-last-of-type() 选择指定的元素,从元素的最后一个开始计算;

:first-of-type 选择一个上级元素下的第一个同类子元素;

:last-of-type 选择一个上级元素的最后一个同类子元素;

:only-child 选择的元素是它的父元素的唯一一个子元素;

:only-of-type 选择一个元素是它的上级元素的唯一一个相同类型的子元素;

:empty 选择的元素里面没有任何内容。

Eg:

<a class="red" href="https://www.baidu.com/" target="_blank">CSS 语法</a>

a:link {color:#FF0000;} /* 未访问的链接 */

a:visited {color:#00FF00;} /* 已访问的链接 */

a:hover {color:#FF00FF;} /* 鼠标划过链接 */

a:active {color:#0000FF;} /* 已选中的链接 */

 

 

 

 

 

 

a.red:link {color:#FF0000;} /* 未访问的链接 */

a.red:visited {color:#00FF00;} /* 已访问的链接 */

a.red:hover {color:#FF00FF;} /* 鼠标划过链接 */

a.red:active {color:#0000FF;} /* 已选中的链接 */

 

4.伪元素--选择器

伪元素是对元素中的特定内容进行操作,而不是描述状态。它的操作层次比伪类更深一层,因此动态性比伪类低很多

:first-letter 选择元素文本的第一个字(母)。

:first-line 选择元素文本的第一行。

:before 在元素内容的最前面添加新内容。

:after 在元素内容的最后面添加新内容。

div::before {

    content: "1111";
    height: 40px;
    width: 100px;
    background-color: blue;
    display: block;

}

 

5.区别(伪元素/伪类)

伪类:用于已有元素处于某种状态时为其添加对应的样式,这个状态是根据用户行为而动态变化的。

伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。

 

1.2.5 选择器优先级

如果有两个相同 的样式同时作用于某一个html元素, 那么就会在这两个样式间产生一个优先级问题

在满足上述优先级的基础上, 要满足一个’就近原则’(上下结构的就近原则)

eg1:

 

<head>
    <style>
        div{
            background: yellow;
            font-size: 100px;
        }
        .div1{
            background: silver;
        }
    </style>
</head>

<body> <div class="div1"> 我是一个div1 </div> </body>

 

 

 显示灰色。类选择器优先级>标签选择器。

 

 

Eg2:

 

 

eg3:

 

 两个都是标签选择器,∈同级选择器,就近原则。Div显示黄色,如果两个位置换换,就是红色(css.css文件中div是红色)

 
Html代码,在浏览器中解析的时候, 是从上向下解析的

 

 

1.3 盒子模型

我们把html的标签在页面上所占据的位置看成一个矩形的盒子

这个盒子分为四部分:   

 

这个盒子是可控大小, 但是控制大小的方式需要注意

 

 

 

 

 

 

 注意1: 宽高仅是元素内容的宽高

width: 100px;
height: 100px;

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1{
            height: 30px;
            background: red;
        }
        .div2{
            height:50px;
            background: silver;

            /*margin:100px;*/
            /*margin: 10px 100px;*/
            /*margin: 10px  100px  200px;*/
            margin: 10px  100px  200px  300px;

            /*margin-top: 10px;*/
            /*margin-bottom: 10px;*/
            /*margin-left: 10px;*/
            /*margin-right: 10px;*/


            padding: 50px;
            padding-top: 100px;

            border: 10px solid wheat;

        }
        .div3{
            height: 30px;
            background: yellow;
        }
    </style>
</head>
<body>
<div class="div1">
    我是一个div
</div>
<div class="div2">
    我是一个div
</div>
<div class="div3">
    我是一个div
</div>
</body>

 

 

 

注意2:   背景色 = 元素内容的区域+ 内边距的区域

注意3:  如果要设置边框, 那么必须要把边框设置为固体

 

如果不设置solid,不显示边框。

 

1.4 标签的分类和盒子模型

1.4.1 块级元素

独占一行, 上下排列

 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
       .div-f{
           width: 200px;
           height: 200px;
       }
        .div-s{
            background: yellow;
        }
    </style>
</head>
<body>
<div class="div-f">
    <div class="div-s">
        123
    </div>
</div>
</body>

 

 

 

 

 

 

 

1.4.2 行级元素

在一行排列, 从左向右

通常使用行级元素来进行文字、小图标(小结构)的搭建

 

 

 

 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        b{
            width: 100px;
            height: 100px;
            background: yellow;
            margin: 100px;
            padding: 100px;
        }
    </style>
</head>
<body>
<b>123</b>
123
<br>
1223456789876543

</body>

 

 

 

 

1.4.3 行内块

本质上是一个行级元素(在一行排列),  有一些块级元素的特性(可以控制宽高和内外边距)

 

 

 

 

 

 

 

 

注意: 父元素, 子元素

实际上就是嵌套的关系, 

子元素,所占据的盒子模型空间, 是父元素的元素内容区域

 

 

 

 

注意4:  关于元素的嵌套问题

行级元素内部, 不能嵌套块级元素, 可以嵌套行级元素

块级元素内部可以嵌套行级和块级

 

注意5: 默认的display属性

我们可以修改html元素的默认属性, 来做行和块的转变

不推荐使用(如果块级元素转化为行级元素之后,仅一行内容, 可以用, 不推荐)

 

 

1.4.4 外边距合并

在html页面元素排列中, 在垂直方向, 有两个外边距 ‘紧’相邻, 那么就会产生一种现象----叫外边距合并

合并之后的值? 是产生合并现象的最大的那个外边距, 就是最终合并值

 

 

 

 

1.5 浮动

1.5.1 标准文档流, 标准流

元素(标签) 根据元素特性(行级,块级, 行内块) 从左向右, 自上而下顺序排列

这就是标准文档流

 

1.5.2 设计的初衷

浮动设计的初衷是为了做文字环绕效果

 

浮动一般用来布局(把一个块级元素, 变成行内块元素)

 

 

1.5.3 浮动

float: left;

把一个元素’漂浮起来’  

浮动使元素脱离了标准文档流

 

 

 

 

 

 

 

 

 

 

1.5.4 浮动特性

1:浮动只影响后面的元素

因为浮动脱离了标准文档流, 浮动元素本来占据的空间, 就空了出来

后面的元素,要想复合标准文档流规范, 它就要占据它前面的空间

所以,浮动影响后面的元素

 

2:浮动找浮动,不浮动找不浮动

3:浮动以元素顶部为基准对齐

4:浮动可是实现模式转换(eg:span 设置浮动可以设置宽高)

5:让块级元素在一行显示

1.5.5 清除浮动

谁被浮动效果影响了, 那么就在谁之上清除浮动

如图,div4被浮动效果影响了,就在div4上清除浮动。

清除后,效果:

 

 

 

Clear: 谁受影响谁清除

clear: both;

.text { clear:both; }

 

 为什么要清除浮动?

 

1.5.6 撑开和塌陷

 

重点

1, 选择器(三个: 标签,  id  类)(其它选择器了解)

2, 盒子模型(理解)

3, 浮动 (熟悉)

 

作业

 1.代码动手敲一遍

2.实现点击导航如图

 

 

 3.实现导航如图

 

标签:浮动,第三阶段,color,day02,元素,html,标签,选择器,css
来源: https://www.cnblogs.com/dust2017/p/16089193.html