前端开发

CSS:
1.css的引入方式
2.基础选择器
3.高级选择器
4.属性选择器
5.伪类选择器
6.伪元素选择器
7.css的继承性,层叠性,层叠性权重以及important属性
8.盒模型的认知和计算
9.认识padding
10.认识border和使用border制作三角形
11.认识margin
12.标准文档流的概念和微观现象

1.css的引入方式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css的引入方式</title>

    <style type="text/css">
        /*写我们的css代码*/
        /*选择器 标签选择器*/
        span{
            color: yellow;
        }
    </style>

    <!--导入式 实际用的少
        使用import是 先加载html 在加载css
        import 是css2.1特有的,对于不兼容的css2.1的浏览器是无效的eg:IE5以下
        @import url()必须写在文件最开始的位置
    -->
    <style type="text/css">
        @import url('./index.css');
    </style>

    <!--链接式
        使用link是html css同时加载的!
        link 是XHTML
    -->
    <link rel="stylesheet" href="./index.css">
</head>
<body>
    <!--
        1.行内样式
        2.内接样式
        3.外接样式
            3.1 链接式
            3.2 导入式
    -->
    <div>
        <p style="color:red">我是一个段落</p>
    </div>

    <div>
        <div>
            <span>我是另一个样式</span>
            <span>我是另一个样式</span>
            <span>我是另一个样式</span>
            <a href="#">路飞</a>
        </div>
    </div>

</body>
</html>

2.基础选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>基础选择器</title>

    <style type="text/css">
    /*标签选择器*/
        p{
            color: red;
            font-size: 20px;
        }
        span{
            color: yellow;
        }

    /*id选择器*/
        #box{
            background: gray;
        }

        #s1{
            color: red;
        }

        #s2{
            font-size: 30px;
        }

    /*类选择器*/
        .title{
            color: yellowgreen;
            font-size: 20px;
        }

        .alex{
            color: red;
        }

    /*通用选择器 性能差,权重低*/
        *{
            color: aquamarine;
        }

    </style>
</head>
<body>
    <!--
        css的选择器:1.基础选择器 2.高级选择器

        1.标签选择器
            1.标签选择器可以选择中所有的标签元素,比如div,ul,li,p等等
            2.不管标签藏得多深,都能选中
            3.选中的是所有的,而不是某一个,所有说“共性”,而不是"特性"

        2.id选择器
            #选中id
            1.同一个页面中id不能重复,
            2.任何的标签都可以设置id
            3.id命名规范 要以字母 可以有数字 下划线 - 大小写严格区分

        3.类选择器
            1.所谓类就是class .class与id非常相似,任何的标签都可以加类
            但是类是可以重复的 归类
            2.同一个标签可以携带多个类,用空格隔开

            一定要有“公共类”的概念

            总结:
            1.不要去试图用一个类将我们的页面写完,这个标签要携带多个类,共同设置样式
            2.每个类要尽可能的小,有公共的概念,能够让更多的标签使用

        4.通用选择器
            *{...}
    -->
    <div>
        <p>我是一个选择器</p>
        <ul>
            <li>
                <span>
                    哈哈哈
                </span>
            </li>
        </ul>
    </div>

    <div id="box">
        <span id="s1">123</span>
        <span id="s2">456</span>
    </div>

    <div>
        <h3 id="h" class="title xiaoma egon alex">我是一个三级标签</h3>
        <h3>我是一个三级标签</h3>
        <h3 class="title">我是一个三级标签</h3>
        <h3>我是一个三级标签</h3>
        <h3>我是一个三级标签</h3>
    </div>
</body>
</html>

3.高级选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>高级选择器</title>
    <style type="text/css">

        /*后代选择器 在css中使用非常频繁*/
        /*div p{*/
            /*color: red;*/
        /*}*/

        /*div div p{*/
            /*color: yellow;*/
        /*}*/

        /*.container div p{*/
            /*color: green;*/
        /*}*/

        /*子代选择器*/
        .container>p{
            color: yellowgreen;
        }

        /*交集选择器*/
        h3{
            width: 300px;
            color: red;
        }

        .active{
            font-size: 30px;
        }

        h3.active{
            background: yellow;
        }

        /*并集选择器(组合)设置多个标签统一样式*/
        a,h4{
            color: #666;
            font-size: 20px;
            text-decoration: none;
        }

    </style>
</head>
<body>

    <div class="container">
        <p>我是另一个段落</p>
        <div>
            <p>我是一个段落</p>
            <a href="#">luffy</a>
        </div>
        <p>我是另一个段落2</p>

        <ul>
            <li class="item">
                <h3 class="active"> 我是一个h3</h3>
                <h4>我是一个h4标题</h4>
            </li>
            <li>
                <h4>我是一个h4标题</h4>
                <a href="#">BAT</a>
            </li>
        </ul>
    </div>

    <!--
        总结:
            基础选择器:
                1.标签选择器    div
                2.类选择器     .div1
                3.id选择器     #box
                4.通配符选择器  *
            高级选择器:
                1.并集选择器  中间用,
                    .title,.content,.footer{}
                2.交集选择器  选择器之间不能有空格,第一个标签必须是标签选择器,第二个标签可以是id或者类选择器
                    p.p1{}   p#title1{}
                3.后代选择器  选择器之间用 空格
                    ul a{}
                4.子代选择器  选择器之间用 >
                    ul>li{}
                5.毗邻选择器  选择器之间用 +  紧跟着h3标题的标签
                    h3+p{}
                6.兄弟选择器  选择器之间用~
                    h3~p{}
                7.属性选择器
                     [class='baidu']{}
                     [class^='btn']{}
                     [class$='ault']{}
            css样式优先级:
                行内样式 > 内部样式表 > 外部样式表
                ID选择器 > 类选择器 > 标签选择器
    -->

</body>
</html>

4.属性选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style type="text/css">
    /*根据属性查找*/
        label[for]{
            color: red;
            font-size: 20px;
        }

    /*根据属性和值查找*/
        /*找到label中所有for属性等于pwd的元素*/
        label[for='pwd']{
            color: yellow;
        }

        /*以...开头*/
        label[for^='vip']{
            font-size: 30px;
        }

        /*以...结尾*/
        label[for$='p2']{
            font-size: 20px;
        }

        /*包含ser的元素*/
        label[for*='ser']{
            color: green;
        }



        input[type='text']{
            background: purple;
        }
    </style>
</head>
<body>

    <!--属性选择器 通常使用在 表单控件中-->
    <div class="box">
        <form action="">
            <label for="user">用户名:</label>
            <input type="text" name="" id="user">
            <label for="pwd">密码:</label>
            <label for="vip1">vip1</label>
            <label for="vip2">vip2</label>
            <label for="user2">用户名2:</label>
            <label for="user3">用户名3:</label>

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

5.伪类选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>伪类选择器</title>
    <style type="text/css">
        /*爱恨原则 love hate*/
        /*没有被访问的a标签的样式*/
        .box ul li.item1 a:link{
            color: #666;
        }

        /*访问过后的a标签的样式*/
        .box ul li.item2  a:visited{
            color: yellow;
        }

        /*鼠标悬停时a标签的样式*/
        .box ul li.item3  a:hover{
            color: green;
        }

        /*鼠标点住时a标签的样式*/
        .box ul li.item4  a:active{
            color: yellowgreen;
        }

        /*选中第一个元素*/
        div ul li:first-child{
            font-size: 20px;
            color: red;
        }

        /*选中最后一个元素*/
        div ul li:last-child{
            font-size: 20px;
            color: yellow;
        }

        /*选择当前指定的元素 数值从1开始*/
        div ul li:nth-child(2){
            font-size: 30px;
            color: purple;
        }

        /*n表示选中所有 从0开始的 0 的时候表示没有选中*/
        div ul li:nth-child(n){
            font-size: 40px;
            color: red;
        }

        /*选中偶数*/
        div ul li:nth-child(2n){
            font-size: 50px;
            color: gold;
        }

        /*选中奇数*/
        div ul li:nth-child(2n-1){
            font-size: 50px;
            color: yellow;
        }

        /*隔几换色,隔3就是4n+1*/
        div ul li:nth-child(4n+1){
            font-size: 40px;
            color: red;
        }
    </style>
</head>
<body>

    <div class="box">
        <ul>
            <li class="item1">
                1
                <a href="#">张三</a>
            </li>
            <li class="item2">
                2
                <a href="#">李四</a>
            </li>
            <li class="item3">
                3
                <a href="#">王五</a>
            </li>
            <li class="item4">
                4
                <a href="#">赵六</a>
            </li>
            <li class="item4">
                5
                <a href="#">赵六</a>
            </li>
            <li class="item4">
                6
                <a href="#">赵六</a>
            </li>
            <li class="item4">
                7
                <a href="#">赵六</a>
            </li>
            <li class="item4">
                8
                <a href="#">赵六</a>
            </li>
            <li class="item4">
                9
                <a href="#">赵六</a>
            </li>
        </ul>
    </div>

</body>
</html>

6.伪元素选择器:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>伪元素选择器</title>
    <style type="text/css">

        /*设置第一个首字母的样式*/
        p:first-letter{
            color: red;
        }

        /* 在...之前 添加内容 这个属性使用补水很频繁 了解
        使用此伪元素选择器需要结合content属性*/
        p:before{
            content: 'mm';
        }

        /*在...之后 使用非常频繁 通常与后面要讲到的布局 有很大的关系
        (清除浮动)*/
        p:after{
            content:'$';
            color: yellow;
            font-size: 40px;
        }
    </style>
</head>
<body>

    <p>
        我是一个段落
    </p>

</body>
</html>

7.css的继承性,层叠性,层叠性权重以及important属性

# css的继承性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>继承性</title>
    <style type="text/css">
        .father{
            color: red;
            font-size: 30px;
            background: green;
        }
    </style>
</head>
<body>

    <!--继承:给父级设置了一些属性,子级继承了父级的该属性
    有一些属性是可以继承下来的:color,foot-*,text-*,line-* 文本元素
    像一些盒子元素,定位的元素(浮动,绝对定位,固定定位)不能继承
    -->
    <div class="father" id="egon">
        <p>alex</p>
    </div>
</body>
</html>



# css的层叠性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>层叠性</title>
    <style type="text/css">
        /*1 0 0*/
        #box{
            color: red;
        }

        /* 0 1 0*/
        .container{
            color: yellow;
        }

        /*0 0 1*/
        p{
            color: purple;
        }
    </style>
</head>
<body>

    <!--
        层叠性:权重大的标签覆盖了权重小的标签,说白了,就是干掉了
    权重:谁的权重大,浏览器就会显示谁的属性
        数数!!!
        id的数量 class的数量 标签的数量
    -->
    <p id="box" class="container">
        猜猜我是什么颜色
    </p>
</body>
</html>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>层叠性2</title>
    <style type="text/css">

        /*2 0 1*/
        /*#box1 #box2 p{*/
            /*color: yellow;*/
        /*}*/

        /*1 1 1*/
        /*#box2 .wrap3 p{*/
            /*color: red;*/
        /*}*/

        /*1 0 3*/
        /*div div #box3 p{*/
            /*color: purple;*/
        /*}*/

        /*0 3 4*/
        div.wrap1 div.wrap2 div.wrap3 p{
            color:blue ;
        }
    </style>
</head>
<body>
    <div id="box1" class="wrap1">
        <div id="box2" class="wrap2">
            <div id="box3" class="wrap3">
                <p>再来猜猜我是什么颜色</p>
            </div>
        </div>
    </div>
</body>
</html>



# 层叠性权重相同的处理:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>层叠性2</title>
    <style type="text/css">

        /*!*1 1 1*!*/
        /*#box1 .wrap2 p{*/
            /*color: red;*/
        /*}*/

        /*!*1 1 1*!*/
        /*#box2 .wrap3 p{*/
            /*color: yellow;*/
        /*}*/

        /*2 1 0*/
        /*继承来的*/
        #box1 #box2 .wrap3{
            color: red;
        }

        /*1 1 1*/
        /*选中来的*/
        #box2 .wrap3 p{
            color: green;
        }

    </style>
</head>
<body>

    <!--当权重一样的时候 以后面设置的属性为准
        继承来的属性 权重为0

        总结:
            先看有没有被选中,如果选中了,就数数(id,class,标签的数量)
        谁的权重大 就显示谁的属性,如果没有被选中,权重为0

            如果属性都是被继承下来的 权重都为0,“就近原则”:谁描述
        的近,就显示谁的属性,当描述的相同时,就比权重(数数)
    -->
    <div id="box1" class="wrap1">
        <div id="box2" class="wrap2">
            <div id="box3" class="wrap3">
                <p>再来猜猜我是什么颜色</p>
            </div>
        </div>
    </div>
</body>
</html>



# important属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        p{
            color: red !important;
            font-size: 30px;
        }

        .spe1{
            color: yellow;
            font-size: 40px;
        }

        .spe2{
            color: green;
            font-size: 40px;
        }

        ul{
            color: red;
        }
        .list{
            color: purple !important;
        }
    </style>
</head>
<body>

    <!--!important:设置权重为无限大
        !importtant 不影响继承来的权重,只影响选中的元素
    -->

    <div>
        <p class="spe1 spe2">我是什么颜色</p>
        <p class="spe2 spe1">我是什么颜色</p>
    </div>

    <div class="list">
        <ul>
            <li>
                我是一个li标签
            </li>
        </ul>
    </div>
</body>
</html>

8.盒模型的认知和计算

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        div{
            width: 200px;
            height: 200px;
            padding: 20px;
            border: 1px solid red;
        }
    </style>
</head>
<body>

    <!--盒模型:在网页中 基本上都会显示一些方方正正的盒子,这种盒子
    就被我们称为盒模型

        重要的属性:width,height,padding,border,margin

        指的是内容的宽度,而不是整个盒子真实的宽度
        heigth:指的是内容的高度,而不是整个盒子真实的高度

        做一个402*402的盒子,你应该如何设计
    -->

    <div>
        好雨知时节,当春乃发生,随风潜入夜,润物细无声。
    </div>

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒模型的计算</title>

    <style type="text/css">
        div{
            width:400px ;
            height: 400px;
            border: 1px solid red;
        }
    </style>
</head>
<body>

    <!--如果想保持盒子的真实宽度,加width应该减padding 减width 应该加padding-->
    <div>
        内容
    </div>
</body>
</html>

9.认识padding

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

    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            /*padding:20px;*/
            background-color: red;
            /*border: 5px solid yellow;*/

            /*写小属性*/
            /*padding-top:10px;*/
            /*padding-right:20px;*/
            /*padding-bottom:30px;*/
            /*padding-left:40px;*/

            /*综合属性设置 用空格隔开*/
            /*上 右 下 左*/
            /*padding: 20px 30px 40px 50px;*/

            /*上 左右 下*/
            /*padding: 20px 30px 40px;*/

            /*上下 左右*/
            padding: 20px 30px;
        }


    </style>
</head>
<body>

    <!--
    padding:就是内边距.padding的区域是有背景颜色的,并且背景颜色和内容区域
    颜色一样,也就是说background-color这个属性将填充所有的border以内的区域

    内边距的距离就是边框到内容之间的距离

    padding有四个方向,所以说我们能分别描述4个方向的padding
    方法有两种:1.写小属性 2.写综合属性 用空格隔开
    -->
    <div class="box">
        好雨知时节,当春乃发生,随风潜入夜,润物细无声。
    </div>

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">

        *{
            padding:0;
            margin: 0;
        }
    </style>
</head>
<body>

    <!--
        比如说通常我们做站的时候,要清除默认的padding,margin

        *效率不高,所以我们要使用并集选择器选中页面中应有的标签(不用背,
        因为有人已经给咱们写好了这些清除默认的样式表)

        body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre,
        code, form, fieldset, legend, input, button, textarea, p,
        blockquote, th, td {
        margin: 0;
        padding: 0;
        }
    -->
    <ul>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
    </ul>

</body>
</html>

10.认识border和使用border制作三角形

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>border</title>
    <style type="text/css">

        .box{
            width: 200px;
            height: 200px;
            /*border: 5px solid red;*/

            /*按照3要素*/
            /*border- 5px;*/
            /*border-style: solid;*/
            /*border-color: red;*/

            /*border- 5px 10px;*/
            /*border-style: solid dotted double dashed;*/
            /*border-color: red green yellow;*/

            /*按照方向分*/

            border-top-width: 5px;
            border-top-color: red;
            border-top-style:solid;

            border-right-width: 10px;
            border-right-color: green;
            border-right-style:dotted;

            border-bottom-width: 15px;
            border-bottom-color: yellow;
            border-bottom-style:double;

            border-left-width: 20px;
            border-left-color: blue;
            border-left-style:dashed;

            /*设置border没有样式*/

            /*border: none;*/

            /*border-left:none;*/

            /*border-top:0;*/
        }
    </style>
</head>
<body>

    <!--
    border:边框的意思
    边框有三个要素:粗细 线性 颜色

    如果颜色不写,默认是黑色
    如果粗细不写 不显示,只写线性(solid),默认的有上下左右 3px的宽度
    solid默认黑色


    -->

    <div class="box"></div>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">

        /*小三角 箭头指向下方*/
        div{
            width: 0;
            height: 0;
            border-top:20px solid red;
            border-left:20px solid transparent;
            border-right:20px solid transparent;
        }
    </style>
</head>
<body>
    <div></div>

</body>
</html>

11.认识margin

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>margin</title>
    <style type="text/css">

        *{
            padding: 0;
            margin: 0;
        }
        /*会出现塌陷效果,就是上面比左边的窄一些*/
        div{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            background-color: green;
            /*margin: 20px;*/

            margin-top:30px;
            margin-left: 50px;
            margin-bottom:100px;
        }

        p{
            border: 1px solid green;
        }
    </style>
</head>
<body>

    <!--margin:外边距 指的是距离

    -->
    <div></div>
    <p>我是一个p标签</p>
</body>
</html>

12.标准文档流的概念和微观现象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        span{
            font-size: 50px;
        }
    </style>
</head>
<body>

    <!--
    什么是标准文档流:
        宏观的讲,我们的web网页和ps等设计软件有本质的区别
        web网页的制作是个“流”,从上而下,像“织毛衣”
        而设计软件,想往哪里画东西 就去哪里画

        标准文档流下 有哪些微观现象?

        1.空白折叠现象:
            文字之间的所有换行都会换算成一个空格来显示

        2.高矮不齐,底边对齐:

        3.自动换行,一行写不满,换行写

    -->

    <div>
        文字                                文字
    </div>

    <div>
        文字文字文字文字文字<span>姚明</span>文字文字文字文字文字文字文字文字文字文字文字
    </div>

</body>
</html>
原文地址:https://www.cnblogs.com/mumupa0824/p/9562302.html