zoukankan      html  css  js  c++  java
  • 胖虎都看得懂的CSS入门

    CSS入门

    CSS是什么 摘自维基百科

    层叠样式表(英语:Cascading Style Sheets,简写CSS),又称串样式列表、级联样式表、串接样式表、层叠样式表、階層式樣式表,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。目前最新版本是CSS2.1,为W3C的推荐标准。CSS3现在已被大部分现代浏览器支持,而下一版的CSS4仍在开发中 
    

    为什么要说divcss

    因为大家都用html中的div块级标签结合css来渲染页面,其实说spancss也是可以的

    简单的html样式渲染

    • 直接在标签中使用style来进行渲染
        <div style="background-color: #6699FF; color: coral; height: 40px;  140px;">简单的html渲染</div>
        <br>
        <span style="background-color: #6699FF; color: coral; height: 40px;  140px;">简单的html渲染</span>
    
    • 结果

    在head中写样式

    同样,我们可以在head中写一些样式,并使用一定的方式将样式和标签进行关联,关联的方式有很多种,下面一一说明:
    

    id选择器

    • head 中的样式需要放在<style></style>标签中
    /*id选择器,以#开头*/
        <style>
            #i1 {
                background-color: aqua;
                height: 47px;
            }
            #i2 {
                background-color: yellow;
                height: 47px;
            }
            #i3 {  
                background-color: crimson;
                height: 47px;
            }
        </style>
    
    • 使用这些id选择器
    <body>
        <!--在标签中使用id来关联-->
        <div id="i1">id选择器1</div>
        <div id="i2">id选择器2</div>
        <span id="i3">id选择器3</span>
    </body>
    
    • 结果

    class选择器

    • class举例,以.作为标志
        <style>
            .c1 { 
                background-color: #99CCFF;
                height: 30px;
            }
        </style>
    
    • 使用class选择器
        <div class="c1">重复使用class选择器</div>
        <div class="c1">重复使用class选择器</div>
        <div class="c1">重复使用class选择器</div>
        <span class="c1">重复使用class选择器</span>
    
    • 结果展示

    标签选择器

    • 在样式中中直接使用一个标签来定义一个样式,那么body重的所有的这个标签都会使用这个样式
            div { /*这个地方我使用的是div标签来举例,大家可以尝试其他的各种标签*/
                background-color: black;
                color: red;
            }
    
    • 使用标签选择器
        <div>标签选择器</div>
        <div>标签选择器</div>
        <!--而我们的span标签就不会套用这个样式-->
        <span>标签选择器</span>
    
    • 结果

    组合选择器

    • 用逗号.来将多个相同的样式链接起来
    /*这里使用的是id的形式来说明,class也通用*/
            #y1,#y2,#y3 {  
                background-color: yellow;
                height: 47px;
            }
    
    • 使用组合选择器,共同拥有这样一个样式
        <div id="y1">组合选择器</div>
        <div id="y2">组合选择器</div>
        <span id="y3">组合选择器</span>
    
    • 结果

    层级选择器

    • 根据我们规定的层级关系,来套用样式
         .c1 { 
                background-color: #99CCFF;
                height: 30px;
            }
        /*层级选择器1,会选择span标签下的div标签进行渲染*/
            span div {
                background-color: white;
                color: red;
            }
          /*会选择使用了class选择器下的div进行渲染,当然也可以使用id选择器*/
            .c1 div {  /* 这里我们使用了上面的class选择器c1*/
                background-color: greenyellow;
                color: purple;
            }
    
    • 使用层级选择器
        <span >层级选择器第一层
            <div >层级选择器第二层</div>
        </span>
    
        <br>
    
        <span class="c1">层级选择器第一层
            <div >层级选择器第二层</div>
        </span>
    
    • 结果

    属性选择器

    • 根据我们自己定义的属性来进行选择
            .c1 { /*class选择器*/
                background-color: #99CCFF;
                height: 30px;
                color: black;
            }
            /*属性选择器,会选择class选择器下面的id选择器[y1]进行渲染*/
            .c1 [id='y1'] {
                background-color: yellow;
                height: 417px;
            }
    
    • 使用属性选择器
        <div class="c1">属性选择器第一层
            <div id="y1">属性选择其第二层</div>
        </div>
    
    • 结果

    • 此处做一个简单的分析,利用chrome的检查来分析

    1. 首先使用div中的class选择器c1进行渲染“属性选择器第一层”
    2. 最后找到属性选择器的第二级:id='y1',使用属性选择器的方式进行渲染

    选择器的优先级

    • 既然说到了这么多的选择器,那么如果我写了很多样式,也使用了很多的仙则其方式,那么我们的页面到底会选择哪种的方式进行渲染呢?
    • 答案是哪个写在最上面就优先级高,而后面的重复的内容会把上面的覆盖
    • 举例说明
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css优先级</title>
        <style>
            /*一个id选择器*/
            #b1 {
                background-color: skyblue;
            }
            /*一个class选择器*/
            .c1 {
                background-color: red;
            }
            /*一个属性选择器*/
            div [id='b1'] {
                background-color: green;
            }
            .c1 [id='b1'] {
                background-color: gold;
            }
            /*一个标签选择器*/
            div {
                background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div>这个div标签会直接使用上面的div标签选择器进行渲染,背景色为黄色</div>
        <br>
    
        <div>第一层会使用div标签的背景色:黄色
            <div id="b1">这个二层div标签会使用属性选择器:背景色为天空蓝</div>
        </div>
        <br>
        <div class="c1">第一层会使用class的red,而不会使用div的green
            <div id="b1">第二层会使用id选择器的skyblue</div>
        </div>
    
    </body>
    </html>
    
    • 上面的结果:

    我们从Chrome中重点看一下这一段中的里面的div:

        <div class="c1">第一层会使用class的red,而不会使用div的green
            <div id="b1">第二层会使用id选择器的skyblue</div>
        </div>
    
    • Chrome检查分析图:
    1. 首选使用div标签选择器,但是被覆盖
    2. 其次使用属性选择器div的id='b1',但是被覆盖
    3. 再次使用属性选择器.c1 [id='b1'],但是也被覆盖
    4. 最后使用id选择器的b1进行最后的渲染,显示为skyblue

    将我们的各种样式写入css文件中,以便于多个html进行复用

    • 包含上面例子中的各种选择器样式的css文件,定义为example.css
    /*一个id选择器*/
    #b1 {
        background-color: skyblue;
    }
    /*一个class选择器*/
    .c1 {
        background-color: red;
    }
    /*一个属性选择器*/
    div [id='b1'] {
        background-color: green;
    }
    .c1 [id='b1'] {
        background-color: gold;
    }
    /*一个标签选择器*/
    div {
        background-color: yellow;
    }
    
    • 在html的head中引用进来享用
    <head>
        <link  rel="stylesheet" href="css/example.css" >
    </head>
    
  • 相关阅读:
    过程作为黑箱抽象——《计算机程序的构造和解释》
    过程与它们所产生的计算——《计算机程序的构造和解释》
    重构手法(四)之在对象之间搬移特性
    重构手法(三)之简化条件表达式
    重构手法(二)之简化函数调用
    重构手法(一)之重新组织函数
    代码的坏味道
    泛型算法(二十三)之排列算法
    泛型算法(二十二)之集合操作算法
    泛型算法(二十一)之比较算法
  • 原文地址:https://www.cnblogs.com/forsaken627/p/7488293.html
Copyright © 2011-2022 走看看