zoukankan      html  css  js  c++  java
  • 前端之CSS篇

    CSS

    css本质就是一个样式表

    主要由选择器和声明两个部分组成,声明部分又包括属性跟属性值

     CSS注释:

    /*注释*/
    /*
    多行注释
    */

     CSS引入方式:

    /*内部样式*/
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            p{
                background-color: red;
            }
        </style>
    </head>
    
    /*外部样式  将css代码写在单独的文件中,再进行引用*/
    <link href="mystyle.css" rel="stylesheet" type="text/css"/>
    
    /*行内样式*/
    <p style="color:red">hello world</p>

    CSS选择器

    基本选择器

    /*  ID选择器  */
    #id名{
        background-color:red;
    }
    
    /*  类选择器  */
    .类名{
      color:red;  
    }
    
    /*  元素选择器  */
    元素名{color:red}
    
    /* 通用选择器 */
    *{
        color:red
    }
    
    /*  例子  */
    #id1{
        background-color:red;
    }
    
    .c1{
      color:red;  
    }
    
    p{color:red}

    组合选择器

    后代选择器:

    /*作用于div内部的a标签*/
    div a{
        color:red;
    }
    <div>
      <a>
    </div>

    儿子选择器

    /*选择所有父级是<div>元素的<span>元素*/
    div>span{
        color:red;  
    }
    
    <div>
        <span></span>
    </div>

     毗邻选择器

    /* 
    选择所有紧接着<div>元素之后的第一个<p>元素
    也就是同级别紧挨着的下面的第一个
    */ div+p{ color:green; }

    弟弟选择器

    /*同级别下的所有span*/
    div-span{
        color:red;
    }
    例如:
    <div></div>
    <span>
    <span>
    <span>

    属性选择器:

    /*所有含有属性名username的标签样式*/
    [username]{
        background-color:red
    }
    /*所有含有属性名username的p标签样式*/
    p[username]{
        background-color:red
    }
    /*所有含有属性名username="json"的标签样式*/
    [username="json"]{
        background-color:red
    }

     分组和嵌套

    分组:在多个选择器之间使用逗号分隔的分组选择器来统一设置样式

    /* 将div,p标签统一设置字体为红色   */
    div,
    p{
        color:red;
    }

    嵌套:多种选择器混合起来使用

    /*  c1类内部所有p标签的样式   */
    .c1 p{
        color:red;
    }

    伪类选择器

    /*未访问的连接 */
    a:link{
          color:#b7e8b7;
    }
     /*鼠标移动到链接上的*/
    a:hover{
          color:yellow;
    }
     /*选中的时候*/
    a:active{
          color: hotpink;
     }
    /*已访问的链接*/
    a:visited{
         color: #892BCF;
    }

    伪元素选择器

    first-letter: 常用给首字母设置特殊样式

    p:first-letter{
          font-size: 24px;
          color: #892BCF;
    }

    before: 在每个p元素之前插入内容(多用于清除浮动)

    p:before {
        content:"明天四级";
        color:red;
    }

    after:在每个p元素之后插入内容 (多用于清除浮动)

    p:after{
          content: "逢考必过";
          color: yellow;
     }

    选择器的优先级

    css继承

    /*此时页面上所有标签会继承body的字体颜色,但是p标签不会,因为p标签自己的样式把body的样式覆盖了*/
    body
    { color:red; } p{ color: green; }

    选择器的优先级:

    内联样式 > id选择器 > 类选择器  >元素选择器

    css属性相关

    宽和高

    width属性可以为元素设置宽度

    height属性可以为元素设置高度

    块儿级标签才能设置宽度,内联标签的宽度由内容来决定

    字体属性

    文字字体:font-family    注意:可以把多个字体名称作为一个”回退“系统来保存。当第一个字体不支持的时候,就会尝试下一个。

    body{
         font-family: "Microsoft Yahei", Simsun, Arial, sans-serif;      
    }

    字体大小:font-size

    p {
         font-size:24px;
         /*font-size:inherit;  表示继承父元素的字体大小
    }

    字体粗细:font-weight 

    • normal:默认值,标准粗细
    • bold:粗体
    • bolder:更粗
    • lighter:更细
    • 100~900:设置具体粗细,400等同于normal, 700等同于bold
    • inherit:基础父元素字体的粗细值

    文本颜色

    颜色主要有三种表示方式:

    • 十六进制值 :如:#ffffff
    • 一个RGB值:如:RGB(255,0,0)
    • 颜色名称:如:red
    • rgba(255,0,0,0.2)第四个值为alpha,是指色彩的透明度/不透明度,它的 范围是0.0到1.0

    文字属性

    文字对齐:text-align

    • lef          左对齐
    • right      右对齐
    • center   居中对齐
    • justify    两端对齐

    文字装饰:text-decoration

    • none          默认
    • underline        定义文本下的一条线
    • overline     定义文本上的一条线
    • line-through    定义穿过文本下的一条线
    • inherit             继承父元素的text-decoration属性的值

     注意:该属性常用于去掉a标签默认的自划线

    a{
        text-decoration:none;
    }

    首行缩进:text-indent: 32px

    p{
        text-indent: 32px;
    }

    背景属性:

    div{
       width:56%;
       height: 50%;
      /*background-color: deepskyblue;*/
      /*!* 背景图片 */
      /*background-image: url('歼20.jpg');*/
      /*background-repeat: repeat;  !* repeat(默认):背景图片平铺整个div *!*/
      /*background-repeat: repeat-x;  !* repeat-x:水平平铺 *!*/
      /*background-repeat: repeat-y;  !* repeat-y:垂直平铺 *!*/
      /*background-repeat: no-repeat; !* no-repeat: 不平铺 *!*/
    
      /*如果出现了多个属性名前缀一样的,一般情况下可以简写成前缀*/
      background: deepskyblue url("歼20.jpg") no-repeat center;
    }

    background-attachment 属性设置背景图片是否固定或者随着页面的其余部分滚动

    1、sroll   默认值:背景图片不固定,会随着页面滚动而滚动

    2、fixed   页面滚动的时候,背景图片不会移动

    3、inherit  从父元素继承属性的设置

    边框

    边框属性:边框粗细,样式,颜色

    .c1{
        border-width:2px;
        border-style:solid;
        border-color:red;
    }
    /*也可以简写成*/
    .c1{
        border: 2px  solid red;
    }
    /*边框四边可以设置不同样式,四个前缀如下:
    border-top
    border-right
    border-bottom
    border-left
    */

    边框样式:border-style

    1、none  无边框

    2、dotted  点状虚线边框

    3、dashed  矩形虚线边框

    4、solid   实线边框

    圆角属性 :border-radius

    display属性

     1、none:在浏览器中不显示

     2、block:  具有块儿级元素的特点,如果设置了宽度,则会用margin填充剩下的部分

     3、inline:  行内元素显示

     4、inline-block:使元素同时具有行内元素和块儿级元素的特点

     注意:display:none 和bisibility:hidden的区别:

    前者可以隐藏某个元素,不会占用任何空间

    后者可以隐藏某个元素,但是隐藏后元素仍占用元素原有的空间,仍然还会影响布局

    css盒子模型

    • margin:外边距,用于控制元素与元素之间的距离
    • padding:内填充,用于控制内容和边框之间的距离
    • border:边框,内边距和内容外边距的边框
    • conten:盒子内容,显示文本和图形

     注意:margin和padding常用的四种简写顺序:

    • 提供一个参数,用于四边   例如:pading/margin: 5px
    • 提供两个参数,第一个是上下、第二个是左右    例如:pading/margin: 5px 10px
    • 提供三个参数,第一个是上,第二个是左右,第三个是下  例如:pading/margin: 5px 10px 3px
    • 提供四个参数,将按上右下左顺序   例如:pading/margin: 5px 10px 3px 4px

    float(浮动)属性

    浮动元素不管它本身是何种元素,都会生成一个块级框,有两个特点:

    • 浮动的框可以左右移动,直到它的外边缘触碰到包含框或另一个浮动框的边框为止
    • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

    属性值:

    • left : 向左
    • right: 向右
    • none: 默认值,不浮动

    注意:浮动会有一个影响(会造成父标签塌陷)如下图(上为塌陷图,下为没有塌陷图):

    <!--例子-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #d1 {
                border: 3px black solid;
            }
            #d2{
                width: 100px;
                height: 100px;
                background-color: deepskyblue;
                /*display: none;*/
                float: left;
            }
            #d3{
                width: 100px;
                height: 100px;
                background-color: yellowgreen;
                /*display: inline-block;*/
                float: left;
            }
            /*解决塌陷的方法*/
            .clearfix:after{
                content: '';
                display: block;
                clear: both;
            }
        </style>
    </head>
    <body>
        <div id="d1" class="clearfix">
            <div id="d2">222</div>
            <div id="d3">333</div>
        </div>
    </body>
    </html>

     通用解决浮动影响方法:

    .clearfix:after{
        content:'';
        display:block;
        cear:both;
    }

    clear属性

    • left :左侧不允许浮动元素
    • right:右侧不允许浮动元素
    • both:在左右两侧均不允许浮动元素
    • none:默认值。允许左右两侧出现浮动元素
    • inherit:从父元素继承属性值  

    overflow溢出属性

    • visible:默认值,溢出的内容会呈现在元素框之外
    • hidden:默认值,溢出的内容会隐藏
    • scroll:  内容会被修剪,会显示滚动条,通过滚动条滚动可以看到全部内容
    • auto:      跟scroll一样,也是通过滚动条来查看
    • inherit: 继承父元素的overflow属性

    overflow应用案例(圆形头像):

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #d1{
                margin: auto;
                width: 100px;
                height: 100px;
                border-radius: 50%;
                border:5px solid deepskyblue;
                overflow: hidden;
            }
            div>img{
                max-width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="d1">
            <img src="歼20.jpg">
        </div>
    </body>
    </html>

    定位:

    1、static:默认值,无定位,并且标签对象的left、top等值是不起作用的

    2、relative:相对定位,以自己的原始位置,依据top,right,bottom,left等属性进行位置偏移

    注意:left是表示从左往右移动

               该定位主要用法:方便绝对定位元素找到参照物

    3、absolute:绝对定位:以最靠近自己并已经开启定位的祖先元素为定位(也就是起始位置)进行偏移,

    如果,没有已定位的父元素,则以body元素为定位。

    注意:如果父元素设置position属性,如position:relative,那么子元素就会以父元素左上角为起始点进行偏移

    4、fixed:固定,直接使用top,right,bottom,left等属性以窗口为参考点进行定位,并且不会随滚动条滚动而滚动

     主要应用在:右侧小广告,回到顶部按钮等

    定位的例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #d2{
                width: 300px;
                height: 300px;
                background-color: #892BCF;
                left: 200px;
                top: 200px;
                position: relative;
            }
            #d3{
                width: 100px;
                height: 100px;
                background-color: #1ba91b;
                left: 300px;
                top: 300px;
                position: absolute;
            }
            #d4{
                width: 100px;
                height: 50px;
                border: 3px solid black;
                bottom: 20px;
                right: 30px;
                position: fixed;
            }
        </style>
    </head>
    <body>
        <div id="d2">
            <div id="d3"></div>
        </div>
        <div id="d4">回到顶部</div>
    </body>
    </html>

     脱离文档流(文档流指原来的位置,脱离文档流就是指不保留原来的位置)

    • 绝对定位
    • 固定定位
    • float(浮动)

    不脱离文档流:

    • 相对定位

    z-index属性

    设置对象的层叠顺序。eg:百度的登陆界面

    三层结构:1、最底层是正常文本内容(z=0)   距离用户最远的

         2、黑色透明区(z=99)  中间层

            3、白色注册区域(z=100)  距离用户最近的一层

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                margin: 0;
            }
            #d2{
                position: fixed;
                left: 0;
                top: 0;
                bottom: 0;
                right: 0;
                background-color: black;
                opacity: 0.4;
            }
            #d3{
                width: 300px;
                height: 200px;
                position: fixed;
                left: 40%;
                top: 40%;
                background-color: white;
            }
        </style>
    </head>
    <body>
        <div id="d1">hello world</div>
        <div id="d2"></div>
        <div id="d3">
            <p>注册界面</p>
            <label>
                username: <input type="text">
            </label>
            <label>
                password: <input type="password">
            </label>
            <p>        <input type=submit>
            </p>
    
        </div>
    
    </body>
    </html>

    透明度:opacity

    用来定义透明效果,取值范围是0~1,0是完全透明,1是完全不透明

    opacity跟rgba的区别:

    • rgba只能影响颜色
    • opacity可以修改颜色和字体
    不将就
  • 相关阅读:
    【一些思路】web和app测试的区别
    【Python】I/O和比赛的其他一些问题
    【Python】迭代器和生成器的个人理解,再讲一讲协程
    【TCP/IP】如果打不开一个网页,需要如何处理?
    DOM事件
    GASP动画的基本使用
    Velocity的使用方法
    Swiper和Swiper Animate使用方法
    DOM操作
    JavaScript函数
  • 原文地址:https://www.cnblogs.com/nq31/p/13686564.html
Copyright © 2011-2022 走看看