CSS层叠样式表

01CSS介绍

 CSS 指层叠样式表 (Cascading Style Sheets)定义如何显示控制 HTML 元素,从而实现美化HTML网页。 

优势:为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。

02基本语法

格式: 选择器{属性:值;属性:值;属性:值;....}

css页面引入方法一

内联式:通过标签的style属性,在标签上直接写样式。

css页面引入方法二

嵌入式:通过style标签,在网页上创建嵌入的样式表。

结果展示如下:

运行代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    CSS样式的声明: 写在head标签里面
        1. div是最简单的标签选择器
    -->
    <style type="text/css">
        div {
            border: 1px solid red;
            width: 700px;
            height: 200px
        }

    </style>

</head>
<body>

<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>


<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>


</body>
</html>

css页面引入方法三

外联式:通过link标签,链接到外部样式表到页面中。

外联式:在外面独立创建一个以.css文件结尾的文件,文件内容如下所示:

/*外联式CSS样式信息*/
div {
    border: 1px solid red;
    width: 700px;
    height: 200px
}

主程序代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--外联式:通过link标签,链接到外部样式表到页面中。-->
    <link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>

<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>


<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>


</body>
</html>

03常用CSS样式

文本设置

color 设置文字的颜色,如:color:red;

font-size     设置文字的大小,如:font-size:12px;

font-family     设置文字的字体,如:font-family:'微软雅黑'; 

font-style     设置字体是否倾斜,如:font-style:'normal';    

设置不倾斜,font-style:'italic';设置文字倾斜 

font-weight     设置文字是否加粗,如:font-weight:bold;  设置加粗font-weight:normal 设置不加粗

 font         同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写:  

font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑'; 

line-height     设置文字的行高,如:line-height:24px; 

text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉 

text-indent     设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px 

text-align     设置文字水平对齐方式,如text-align:center 设置文字水平居中

css颜色表示法

css颜色值主要有三种表示方法:

1、颜色名表示,比如:red 红色,gold 金色

2、rgb表示,比如:rgb(255,0,0)表示红色

3、16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00

基本样式结果展示如下:比如去掉文字下面的下划线,去掉无序列表前面的点等等

对于基本样式的写法代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        a{
            /*去掉超链接的文本装饰下划线*/
            text-decoration: none;
        }
        ul>li{
            /*去掉列表的文本装饰前面的点*/
            list-style: none;
            line-height: 50px;
        }

    </style>
</head>
<body>
<a href="#">
    百度一下
</a>


<ul>
    <li>1</li>
    <li>2</li>
</ul>

</body>
</html>

04基本选择器

标签选择器

标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中。举例:

上图中div{}就是一个标签选择器

id选择器

通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。举例:

id选择器的设置格式为:#加上id名

id选择器运行结果展示结果如下:

运行代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    CSS样式的声明: 写在head标签里面
        1. div是最简单的标签选择器
    -->
    <style type="text/css">
        div {
            border: 1px solid red;
            width: 700px;
            height: 200px
        }
        /*id选择器的设置样式, #id名称*/
        #box{
            border: 1px solid blue;
            width: 900px;
        }

        #mybox{
            border: 1px solid green;
            width: 900px;
        }

    </style>

</head>
<body>

<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>

<!--设置div标签的id信息为“box”-->
<div id="box">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>


<div id="mybox">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>

<div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>

</div>

</body>
</html>

类选择器

通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。举例:

 运行结果展示如下:

运行的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        table{
            /*标签选择器*/
            border: 1px solid black;
            width: 50%;
            text-align: center;
            /*
            如果是块极元素, 居中:  margin: 0 auto;
            如果是行内元素, 居中: text-align: center;

            */
            margin: 0 auto;
            /*设置表格的上外边距为50px*/
            margin-top: 50px;
        }
        #table-header{
            /*id选择器,设置表格的表头*/
            font-weight: bold;
            color: darkseagreen;
            font-size: 30px;
        }

        .odd{
            /*类选择器*/
            background-color: lightgray;
        }

        .odd:hover{
            /*当鼠标经过odd类对应的标签时, 元素的样式*/
            /*是原来字体的120%倍*/
            font-size: 120%;
            background-color: gray;
        }
    </style>


</head>
<body>

<table>
    <caption id="table-header">表格标签</caption>
    <tr>
        <td>1-1</td>
        <td>1-2</td>
    </tr>
    <tr class="odd">
        <td>1-1</td>
        <td>1-2</td>
    </tr>
    <tr>
        <td>1-1</td>
        <td>1-2</td>
    </tr>
    <tr class="odd">
        <td>1-1</td>
        <td>1-2</td>
    </tr>
</table>

</body>
</html>

层级选择器

主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。举例:

上图中.box类里面有一个span标签,所以层级选择器的写法为.box span

组选择器

多个选择器,如果有同样的样式设置,可以使用组选择器。举例:

运行结果如下所示:

运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .box1, .box2, .box3  {
            /*
            组选择器:(逗号分隔)
                多个选择器,如果有同样的样式设置,可以使用组选择器。举例:
            */
            width: 100px;
            height: 100px;
            border: 1px solid black;
        }
        .box1{
            background-color: darkseagreen;
        }
        .box2{
            background-color: cornflowerblue;
        }
        .box3{
            background-color: green;
        }

    </style>
</head>
<body>

<div class="box1">
    div1
</div>
<div class="box2">
    div1
</div>
<div class="box3">
    div1
</div>

</body>
</html>

伪类及伪元素选择器

常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。

运行结果展示如下:

运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        .box1, .box2, .box3 {
            /*
            组选择器:(逗号分隔)
                多个选择器,如果有同样的样式设置,可以使用组选择器。举例:
            */
            width: 100px;
            height: 100px;
            border: 1px solid black;
        }

        .box1 {
            background-color: darkseagreen;
        }

        .box2 {
            background-color: cornflowerblue;
        }

        .box3 {
            background-color: green;
        }

        .box1:hover {
            font-size: 150%;
        }

        .box2:before, .box3:before {
            /*before: 所有选择的标签前面添加信息*/
            content: "行首文字";
        }

        .box3:after {
             /*after: 所有选择的标签后面添加信息*/
            content: "行tail文字";
        }


    </style>
</head>
<body>


<div class="box1">
    div1
</div>
<div class="box2">
    div1
</div>
<div class="box3">
    div1
</div>


</body>
</html>

05盒子模型

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

 Margin(外边距) - 清除边框外的区域,外边距是透明的。 

Border(边框) - 围绕在内边距和内容外的边框。 

Padding(内边距) - 清除内容周围的区域,内边距是透明的。 

Content(内容) - 盒子的内容,显示文本和图像。

盒子模型案例:

结果展示如下:

 运行代码如下:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .box{
            /*设置内边距为25px*/
            padding: 25px;
            /*设置外边距*/
            margin: 25px auto;
            /*设置边框乱度为25px*/
            border: 25px green solid;
            /*指定盒子的宽度*/
            width: 400px;
            /*文本居中*/
            text-align: center;

        }
    </style>
</head>
<body>

<div class="box">
    盒子模型
</div>

</body>
</html>

利用哪吒之魔同降世来练习盒子模型

结果展示如下:

 运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .box,  img{
            width: 232px;
        }
        .box{
            border: 2px gray solid;
        }
        .detail{
            font-size: 12px;
            /*设置内边距为5PX*/
            padding: 8px;
        }



    </style>
</head>
<body>

<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
    天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>

</body>
</html>

 06CSS浮动

什么是 CSS Float(浮动)?

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

元素怎样浮动?

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。

 一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

  浮动元素之后的元素将围绕它。 

浮动元素之前的元素将不会受到影响。

  如果图像是右浮动,下面的文本流将环绕在它左边:

元素怎样浮动?

运行结果展示如下:

运行代码如下;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style type="text/css">
        .box, img {
            width: 126px;
        }

        .box {
            /*指定边框的宽度, 样式, 颜色 */
            border: 1px gray solid;
            /*让所有的div标签向左浮动, 排列在同一行*/
            float: left;
            /*设置外边距*/
            margin: 5px;
            padding-bottom: 10px;
        }

        .detail {
            font-size: 10px;
            /*设置内边距为5PX*/
            padding: 8px;
            height: 20px;
            /*内容会被修剪,并且其余内容是不可见的*/
            /*overflow: hidden;*/

            /*如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。*/
            overflow: auto;
        }

        .clear {
            /*指定段落的左侧或右侧不允许浮动的元素:float:right; float:both;*/
            clear: left;
        }

    </style>
</head>
<body>


<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>


<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;
        而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>


<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>


<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>


<div class="box clear">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>


<div class="box">
    <div class="taobao-image">
        <img src="img/movie.jpg">
    </div>


    <div class="detail">
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </div>

</div>

</body>
</html>

浮动案例------电影排行榜

结果展示如下:

运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        * {
            /*去除所有的默认内外边距设置*/
            padding: 0;
            margin: 0;
        }


        .content {
            width: 300px;
            height: 200px;
        }

        img {
            width: 80px;
            height: 120px;
            float: left;
        }

        .content p {
            height: 120px;
            font-size: 12px;
            line-height: 20px;
        }

    </style>
</head>
<body>


<div class=content>
    <img src="./img/movie.jpg">
    <p>
        天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;
        而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
    </p>


</div>
</body>
</html>

浮动案例-----网站主页模板

结果展示如下:

 运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }


        .container{
            width: 100%;
            border: 1px solid gray;
            line-height: 150%;
        }
        .header, .footer{
            padding: 8px;
            background-color: gray;
            color: white;
            /*清除向左浮动*/
            clear: left;
        }

        .left{
            border: 1px solid red;
            float: left;
            width: 20%;
            height: 200px;
            padding: 16px;
        }

        .content{
            border: 1px solid red;
            float: left;

            height: 200px;
            padding: 16px;
        }


    </style>

</head>
<body>

<!--
网站主页:
    头部(header):
    主题部分:
        left
        content
   尾部(footer):

-->


<div class="container">
    <div class="header">头部</div>

    <div class="left">左边部分</div>
    <div class="content">主题部分主题部分主题部分主题部分</div>

    <div class="footer">尾部</div>

</div>


</body>
</html>

html和css实现页面分页案例

结果展示如下:

运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .container{
            /*设置分页居中显示*/
            margin: 0 auto;
            width: 50%;

        }
        .pagination > li {
            /*删除无需列表前面的标记*/
            list-style: none;
            /*行内块元素。(CSS2.1 新增的值)*/
            display: inline-block;
            /*设置宽度*/
            width: 30px;

            /*添加边框*/
            /*border: 1px solid black;*/

            /*设置字体大小*/
            font-size: 12px;

            /*字体居中*/
            text-align: center;

            /*设置内边距: 上下为5px, 左右为10px*/
            padding: 5px 10px;

            /*设置背景颜色*/
            background-color: gold;
        }

        .pagination > li > a {
            /*删除超链接的下划线*/
            text-decoration: none;
            /*设置字体颜色为黑色*/
            color: black;
        }

        .pagination>li:hover{
            /*background-color: goldenrod;*/
            font-size: 110%;
        }

    </style>

</head>
<body>

<div class="container">
    <h1>分页案例</h1>
    <ul class="pagination">
        <li><a href="#">&lt;&lt;</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li>...</li>
        <li><a href="#">18</a></li>
        <li><a href="#">19</a></li>
        <li><a href="#">20</a></li>
        <li><a href="#">&gt;&gt;</a></li>

    </ul>
</div>


</body>
</html>

案例:html和css实现页面导航条

运行结果展示如下:

 运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        .header {
            width: 100%;
            height: 40px;
            background-color: #55a8ea;
            /*内容会被修剪,并且其余内容是不可见的。*/
            overflow: hidden;


        }

        .header li {
            /*设置li为行内块级元素*/
            display: inline-block;
            width: 100px;
            height: 40px;
            padding-top: 12px;
            text-align: center;

        }

        .header li:hover{
            background-color: #00619f;;
        }

        .header li a{
            text-decoration: none;
            color: #fff;
            font-size: 14px;
            font-weight: bold;
        }

        .active{
            background-color: #00619f;
        }


    </style>
</head>
<body>
<!--导航栏设置-->
<div class="header">
    <ul>
        <li class="active"><a href="#">首页</a></li>
        <li><a href="#">网站建设</a></li>
        <li><a href="#">程序开发</a></li>
        <li><a href="#">网络营销</a></li>
        <li><a href="#">案例展示</a></li>
        <li><a href="#">联系我们</a></li>
    </ul>

</div>

</body>
</html>

案例:实现用户登陆页面

运行结果展示如下:

运行代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .login{
            width: 336px;
            height: 389px;
            margin: 50px auto;
            border: 1px solid #a0b1c4;
        }

    </style>
</head>
<body>

<div class="login">
    <form action="#" method="get">
        <span>用户名</span><input type="text" name="username" placeholder="用户名"><br/>
        <span>密码</span><input type="password" name="password" placeholder="密码"><br/>
        <input type="submit" value="登录">

    </form>

</div>

</body>
</html>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值