CSS

CSS

1. HTML补充 frame

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>01-HTMLframeset</title>
</head>
<!--
如果使用 frameset HTML 页面需要移除 body 标签
-->
<frameset rows="100px, *">
    <!-- 第一个frame 是页面头 -->
    <frame src="01-top.html">
    <frameset cols="150px, *">
        <frame src="01-left.html">
        <frame src="01-right.html" name="show">
    </frameset>
</frameset>
</html>

2. CSS

2.1 CSS 概述
	层叠样式表(英语:Cascading Style Sheets,缩写:CSS;又称串样式列表、级联样式表、串接样式表、阶层式样式表)是一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。CSS3现在已被大部分现代浏览器支持,而下一版的CSS4仍在开发中。
	CSS 可以用于美化 HTML 页面,同时可以采用模版。提高前端开发效率
2.2 CSS 的三种引入方式
行内样式表
	利用 HTML 标签的 style 属性,在 style 属性中就是 CSS 样式
内联样式表
	在 head 标签中,内置 style 标签,style 标签内容就是 CSS 样式
外联样式表
	定义 .css 样式表文件,利用 link 连接对应的 .css 文件,在当前 HTML 页面引入 css 样式

权重
	行内 > 内联 > 外联
	就近原则

开发常用:
	外联!!!
	1. 外联样式可以作为模版,提供给众多页面使用
	2. 外联样式表方便浏览器缓存,用户第一次访问页面 1.2 S 第二次 0.6 s 因为 CSS 文件可以缓存到浏览器中。下
	一次访问无需从服务器获取。
	3. 外联样式表可以降低企业成本!外联样式利用缓存机制,可以降低用户访问页面的流量需求,同时降低企业对应服务所
	需的上行带宽需求,降低企业成本
2.3 CSS 选择器【重点】
明确当前 CSS 样式修饰哪些 HTML 标签内容
2.3.1 常用选择器
id选择器
class选择器
标签选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>03-CSS常用选择器</title>
    <style>
        /*
        id 选择器
            #开头,直接跟上id值
        */
        #div1 {
            font-size: 30px;
            color: hotpink;
        }

        /*
        class 选择器
            .开头 ,直接跟上class数据
        */
        .sp1 {
            font-size: 36px;
            color: pink;
        }

        /*
        标签选择器
            直接安排标签名修饰对应标签
        */
        p {
            font-size: 50px;
            color: greenyellow;
        }
    </style>
</head>
<body>
<!-- id 属性,在整个 HTML 页面中 id是一个唯一标记,不允许出现 id 属性值一致 -->
<div id="div1">今天去买一注彩票</div>
<hr>
<!-- class 属性,属性内容允许重复,可以认为 同 class 属性的标记认为是一类 -->
<span class="sp1">北平の融融ひめごと</span> <br>
<span class="sp1">北平の融融ひめごと</span> <br>
<span class="sp1">北平の融融ひめごと</span> <br>
<hr>
<p>北平の融融一本番</p>
<p>北平の融融一本番</p>
<p>北平の融融一本番</p>
</body>
</html>
2.3.2 属性选择器
根据 HTML 标签指定的属性进行约束操作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>04-CSS属性选择器</title>
    <style>
        span {
            color: greenyellow;
            font-size: 32px;
        }
        /*
        选择修饰标签为 input 标签
        选择修饰的 input 标签要求存在属性 type
        同时要求 type 属性值为 text

        tips: 属性值 "" '' 都是 ok 的
         */
        input[type="text"] {
            background-color: black;
            color: white;
            font-size: 32px;
        }

        /*
        选择修饰标签为 input 标签
        选择修饰的 input 标签要求存在属性 type
        同时要求 type 属性值为 password
         */
        input[type='password'] {
            background-color: hotpink;
            color: yellow;
            font-size: 32px;
        }

        /*
        选择修饰标签为 font 标签
        选择修饰的 font 标签要求存在属性 size
        */
        font[size] {
            /*font-family: 黑体;*/
            color: green;
        }
    </style>
</head>
<body>
<form action="#" method="get">
    <font size="5">数据提交</font> <br>
    <span>用户: </span> <input type="text" name="username"> <br>
    <span>密码: </span> <input type="password" name="password"> <br>
    <input type="submit" value="提交">
</form>
</body>
</html>
2.3.4 伪类选择器
主要针对的是 a 标签,可以在 a 标签在不同的状态下有不同的效果
操作
	a:link   链接状态/未操作状态
	a:hover  鼠标悬浮状态
	a:active 鼠标触发状态
	a:visited 已访问状态
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>05-CSS伪类选择器</title>
    <style>
        a {
            font-size: 32px;
            text-decoration: none;
        }

        /*
        伪类选择器
            a:link   链接状态/未操作状态
            a:hover  鼠标悬浮状态
            a:active 鼠标触发状态
            a:visited 已访问状态
         顺序不允许更换,有可能会导致伪类选择器失效
         */
        a:link {
            color: hotpink;
        }

        a:hover {
            color: purple;
        }

        a:active {
            color: green;
        }

        a:visited {
            color: skyblue;
        }
    </style>
</head>
<body>
<a href="https://www.jiayuan.com">北平and融融 ~~ 缘起</a>
</body>
</html>
2.3.4 层级选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>06-CSS层级选择器</title>
    <style>
        /*
        层级选择器
        不同的选择器使用空格隔开!!!
        */
        #div1 .cls1 span {
            font-size: 50px;
            color: #BE0C11;
        }

        #div1 .cls2 span {
            font-size: 50px;
            color: #CC612A;
        }
    </style>
</head>
<body>
<!--
HTML 标签是一层一层包含
-->
<div id="div1">
    <div class="cls1">
        <span>火锅</span>
    </div>
    <div class="cls2">
        <span>老碗面</span>
    </div>
</div>
<span>中午你们吃啥</span>
</body>
</html>
2.3.5 并集选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>07-CSS并集选择器</title>
    <style>
        /* 并集选择器 */
        div, span, p, h1 {
            color: hotpink;
        }

        /* 选择器 id > class > 标签 */
        .cls1, .cls2, #div1 {
            font-size: 40px;
            color: #DD2125;
        }
    </style>
</head>
<body>
<div>北平挺瘦的</div>
<span>北平挺瘦的</span> <br>
<p>北平挺瘦的</p>
<h1>北平挺瘦的</h1>
<hr>
<div class="cls1">北平挺瘦的</div>
<div id="div1">北平挺瘦的</div>
<span class="cls2">北平挺瘦的</span>
</body>
</html>
2.3.6 通配选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>08-CSS通配选择器</title>
    <style>
        /*
        *
        通配选择器,在整个 CSS 选择器中,权重最低
        通常用于消除页面的默认内边距和外边距
        */
        * {
            font-size: 50px;
            color: hotpink;
        }
    </style>
</head>
<body>
<div>北平被掏空了</div>
<span>北平被掏空了</span>
<p>北平被掏空了</p>
<h1>北平被掏空了</h1>
<font>北平被掏空了</font>
</body>
</html>
2.4 CSS 属性
2.4.1 文字属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>09-CSS文字属性</title>
    <style>
        /*
         文字属性
            font-size    字体大小
            font-family  字体样式
            font-style   斜体样式
            font-weight  加粗样式
         */
        div {
            /*font-size: 50px;*/
            /*font-family: 幼圆;*/
            /*font-style: italic;*/
            /*font-weight: bold;;*/

            /*
            font 可以替代以上几个属性
            必须有字体大小和字体样式
             */
            font: italic bold 50px 幼圆;
        }
    </style>
</head>
<body>
<div>《融平之夜》</div>
</body>
</html>
2.4.2 文本属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>10-CSS文本属性</title>
    <style>
        /*
        文本属性:
            color            文本颜色
            text-decoration  文本修饰线 删除线,上划线,下划线
                                underline 下划线
                                line-through 删除线
                                overline 上划线
                                none 无修饰,可以用于去除 a 标签默认下划线

            text-indent      缩进 常见 2em
            text-align       对齐方式
                                left 左对齐 默认
                                center 居中对齐
                                right 右对齐

            line-height      行高
                            可以根据所在元素高度,设置居中效果

            text-shadow      文本阴影
                              X 方向偏移量 Y 方向偏移量 阴影散布/虚化效果 阴影颜色
         */
        #div1 {
            font: 50px 幼圆;
            color: hotpink;
            text-decoration: underline;
            text-indent: 2em;
            text-align: left;
            line-height: 100px;
            text-shadow: 0 0 10px black;
        }

        div {
            height: 100px;
            width: 1000px;
            background-color: greenyellow;
        }

    </style>
</head>
<body>
<div id="div1">北平是如何烹饪的</div>
</body>
</html>
2.4.3 背景属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>11-CSS背景属性</title>
    <style>
        /*
        background-color:    背景颜色
        background-image:    背景图片
                                需要提供 url("");
                                是图片的路径,可以是网络路径,可以是本机路径
        background-repeat:   背景是否重复和重复方式
                                no-repeat 不重复
                                repeat-x 横向重复
                                repeat-y 纵向重复
        background-position: 背景定位
                            横向偏移 纵向偏移

         */
        body {
            /*background-color: darkgray;*/
            background-image: url("https://img2.baidu.com/it/u=2090606195,1473750087&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500");
            /*background-image: url("http://img.mobiletrain.org/templates/mobiletrain/images/java2021/sh-32.jpg");*/
            /*background-image: url("./img/L{9~3WP5BKZ_F6S[`UXX1OJ.gif");*/
            background-repeat: no-repeat;
            background-position: 100px 100px;
        }

        div {
            font: 50px 宋体;
            color: black;
        }
    </style>
</head>
<body>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
<div>王乾现在很跳,需要北平照顾一下~</div>
</body>
</html>
2.4.4 列表属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>12-CSS列表属性</title>
    <style>
        /*
        列表属性:
            list-style-type     列表标记样式
                                    disc 默认 实心圆
                                    circle 空心圆
                                    square 方块
                                    none 无标记
            list-style-image    列表对应图片
                                url 连接图片
                                . 当前
                                .. 上级
            list-style-position 列表标记是显式在页面内部还是外部
                                inside outside
         */
        li {
            /*
            list-style-type: none;
            list-style-image: url("./img/L{9~3WP5BKZ_F6S[`UXX1OJ.gif");
            list-style-position: inside;
            */

            list-style: inside url("./img/L{9~3WP5BKZ_F6S[`UXX1OJ.gif");
        }
    </style>
</head>
<body>
<ul>
    <li>咖啡</li>
    <li>茶</li>
    <li>白酒</li>
    <li>红酒</li>
    <li>啤酒</li>
</ul>
</body>
</html>
2.4.5 尺寸属性
width
height
2.4.6 显示属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>13-CSS尺寸和显示属性</title>
    <style>
        div {
            height: 100px;
            background-color: darkgray;

            /*
            display 显示属性
                none 不显示
                block 块标签 修饰标签之后,具备宽高属性
                inline 行内标签 修饰标签之后,不具备宽高属性
                inline-block 行内块标签,不会单独成行,具备宽高属性
            */
            display: inline-block;
        }
        span {
            height: 100px;
            background-color: darkgray;
            display: block;
        }

        p {
            /*display: none;*/
        }
    </style>
</head>
<body>
<!--
块标签
    默认带有宽高属性
    默认单独成行
-->
<div>周董需要解决大问题~~~</div>
<div>周董需要解决大问题~~~</div>
<div>周董需要解决大问题~~~</div>
<div>周董需要解决大问题~~~</div>
<hr>
<!--
行内标签
    默认情况下不具备宽高属性
    非单独成行元素
-->
<span>周董需要解决大问题之后,解决吃的问题</span>

<p>
    悠悠岁月愁,一杯二锅头
</p>
</body>
</html>
2.4.7 轮廓属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>01-CSS轮廓属性</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: hotpink;
            /*border: 1px darkgray solid;*/

            /*
            outline-style: 样式 实线 虚线 dotted 点虚线 dashed 线虚线
            outline-color: 颜色
            outline-width: 宽度
            outline: 颜色,样式,宽度
            */
            outline: red solid 1px;
        }
    </style>
</head>
<body>
<div></div>
</body>
</html>
2.4.8 浮动属性 详见代码
2.4.9 定位属性 详见代码

3. 盒子模型

3.1 盒子模型图例

3.2 border 边框
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>08-CSS盒子模型边框</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: lightblue;

            /*
            border-top: 顶部边框
            border-left: 左侧边框
            border-right: 右侧边框
            border-bottom: 底部边框

            border-top: 10px solid darkgray;
            border-right: 5px solid black;
            border-left: 15px solid hotpink;
            border-bottom: 20px solid aqua;
            */
            border: 10px solid #FF4400;
            /*
            倒角
            border-bottom-left-radius
            border-bottom-right-radius
            border-top-left-radius
            border-top-right-radius
             */
            border-radius: 50px;
        }
    </style>
</head>
<body>
<div></div>
</body>
</html>
3.2 padding 内边距
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>09-CSS盒子模型内边距</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            border: 10px solid darkgray;
            background-color: skyblue;

            /*
            padding-left: 50px;
            padding-top: 100px;
            padding-right: 150px;
            padding-bottom:  200px;

            一个数据 四边齐
            两个数据 第一个数据控制上下,第二个数据控制左右
            三个数据 第一个数据控制上, 第二个数据控制左右, 第三个数据控制下
            四个数据 上右下左 顺时针结构
             */
            padding: 100px 50px 150px 200px;
        }
    </style>
</head>
<body>
<div></div>
</body>
</html>
3.2 margin 外边距
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>10-CSS盒子模型外边距</title>
    <style>
        /* 去除HTML标签自带的内边距和外边距,body 自带 8px 边距*/
        * {
            margin: 0;
            padding: 0;
        }

        #div1 {
            width: 200px;
            height: 200px;
            border: 10px solid #999999;
            background-color: skyblue;

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

            一个数据 四边齐
            两个数据 第一个数据控制上下,第二个数据控制左右
            三个数据 第一个数据控制上, 第二个数据控制左右, 第三个数据控制下
            四个数据 上右下左 顺时针结构
             */
            margin: 10px 50px 100px 200px;
        }
    </style>
</head>
<body>
<div id="div1"></div>

<div style="width: 200px; height: 200px; background-color: red"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>11-CSS盒子模型外边距案例</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .table {
            width: 100%;
            height: 260px;

        }

        .element {
            width: 200px;
            height: 200px;
            border: 10px solid #888888;

            float: left;

            /*
            margin 外边距设置 左右横向外边距是叠加的!!!

            margin-left: 20px;
            margin-right: 30px;
            */
            margin-top: 10px;
            margin-left: 20px;
        }

        .li {
            width: 150px;
            height: 150px;
            border: 5px solid skyblue;
            background-color: aqua;

            color: white;
            font-size: 60px;
            line-height: 150px;
        }
    </style>
</head>
<body>
<div class="table">
    <div class="element"></div>
    <div class="element"></div>
    <div class="element"></div>
    <div class="element"></div>
</div>

<!-- 上下纵向 margin 塌陷原则,或者说取较大值原则 -->
<div class="li" style="margin-bottom: 50px">A</div>
<div class="li" style="margin-top: 100px">B</div>
</body>
</html>
posted @ 2022-05-16 23:59  qtyanan  阅读(37)  评论(0编辑  收藏  举报