美文网首页
前端第四天

前端第四天

作者: knot98 | 来源:发表于2018-09-25 17:17 被阅读0次

    前端第四天

    目录:

    1. 盒模型之display
    2. 盒模型之overflow
    3. 盒模型之隐藏
    4. 盒模型之border
    5. 盒模型之margin
    6. 盒模型之样式支持
    7. 层级结构

    一、盒模型之display

    补充:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                body,html {
                    margin: 0;
                    padding: 0;
                    display: block;
                }
                p {
                    /* display: block; */
                    /* display: inline; */
                    display: inline-block;
                }
                div {
                    display: none
                }
            </style>
        </head>
        <body>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>本例中的样式表把段落元素设置为内联元素。</p>
            <p>而 div 元素不会显示出来!</p>
            
            <div>div 元素的内容不会显示出来!</div>
        </body>
    </html>
    
    

    运行上述代码,发现设置三种 inline ,block ,inline-block 不同属性时,显示效果不同。

    • inline:默认。此元素会被显示为内联元素,元素前后没有换行符。
    • block:此元素将显示为块级元素,此元素前后会带有换行符。
    • inline-block:行内块元素。(使每个标签是一个个块状元素,但是没有换行符,会在一行内显示,当某个元素超出浏览器显示宽度时,那个标签内的元素才会整块换行。)
    1、html 代码:
    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
        <title>display</title>
    </head>
    <body>
        <div></div>
        <span></span>
        <img src="./img/icon.jpg" alt="">
        <img src="./img/icon.jpg" alt="">
    
        <div class="sup">
            <div class="sub"></div>
        </div>
        <span class="s1">123</span>
        <span class="s2">456</span>
    
    </body>
    </html>
    
    2、css 代码:
    /*块:
    1.独行显示 
    2.支持宽高,宽默认适应父级,高默认由子级或内容撑开 
    3.设置宽高后,一定采用设置的宽高
    */
    /*内联:
    1.同行显示 
    2.不支持宽高
    */
    /*内联块:
    1.同行显示,之间有间距 
    2.支持宽高,宽高由内容撑开 
    3.设置宽高后,一定采用设置的宽高,但只设置其中一个,另一个会根据内容等比缩放
    */
    
    /*嵌套规则:*/
    /*块可以嵌套所有类型(p一般只允许嵌套内联)*/
    /*内联一般只嵌套内联*/
    /*内联块一般只作为最内层级*/
    div {
        /*块*/
        display: block;
        /*自适应父级可用content的宽度*/
        /*width: auto;*/
        /*默认0*/
        /*height: 0px;*/
    }
    span {
        /*内联*/
        display: inline;
        /*不支持宽高*/
    }
    img {
        /*内联块*/
        display: inline-block;
        width: auto;
        height: auto;
    }
    </style>
    <!-- 验证宽高设置 -->
    <style>
    .sup {
        /*width: 100px;*/
        /*height: 100px;*/
        background-color: orange
    }
    .sub {
        width: 200px;
        height: 200px;
        background-color: cyan
    }
    .s1, .s2 {
        width: 200px;
        height: 200px;
        background-color: brown
    }
    img {
        /*width: 350px;*/
        height: 350px;
    }
    
    

    二、盒模型之overflow

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>voerflow</title>
    </head>
    <body>
        <!-- 显示区域只能由父级大小决定 -->
        <!-- display: block大环境下 -->
        <!-- <div class="sup">
            <div class="sub"></div>
        </div> -->
        <div class="sup">
            呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿
        </div>
    </body>
    </html>
    
    2、css 代码:
    
    /*子级区域大于父级*/
    .sup {
        width: 100px;
        height: 100px;
        /*默认值*/
        /*border: 3px none black;*/
        /*清除边框*/
        /*border: 0;*/
        /*border: none;*/
        /*最简单的设置*/
        border: solid;
    }
    .sub {
        width: 200px;
        height: 200px;
        background-color: red
    }
    /*对父级进行overflow设置*/
    .sup {
        /*以滚动的方式允许子级所有内容显示*/
        overflow: auto;
        /*overflow: scroll;*/
    
        /*只运行子级在父级所在区域的部分显示,超出的部分影藏*/
        /*overflow: hidden;*/
    }
    
    

    三、盒模型之隐藏

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>隐藏</title>
    </head>
    <body>
        <div class="d1">内容</div>
        <div class="d2">内容</div>
        <div class="d3"></div>
        <div class="d4"></div>
    </body>
    </html>
    
    2、css 代码:
    /*盒子间会相互影响*/
    div {
        width: 100px;
        height: 100px;
    }
    .d1 {
        background-color: red;
        /*以背景颜色透明度隐藏,不需要掌握*/
        /*盒子还在,内容或子级标签均会被显示*/
        background-color: transparent;
    }
    .d2 {
        background-color: orange;
        /*以盒子透明度隐藏:0~1*/
        /*盒子真正意思上透明,但盒子区域占位还在*/
        opacity: 0;
    }
    .d3 {
        background-color: cyan;
        /*盒子从文档中移除,盒子的区域占位消失*/
        /*当盒子重新获得显示方式,该盒子依旧从消失位置显示*/
        display: none;
    }
    .d4 {
        background-color: yellow;
    }
    /*需求:通过悬浮body让d3重新显示*/
    /*
    1.明确控制的对象 
    2.确定对该对象的修饰 
    3.找出修饰与对象的关系*/ 
    /*body:hover .d3*/
    .d1:hover ~ .d3 {
        display: block;
    }
    
    

    四、盒模型之border

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>border</title>
    </head>
    <body>
        <div class="bd"></div>
    </body>
    </html>
    
    2、css 代码:
    /* 画梯形 */
    
    .bd {
        width: 100px;
        height: 100px;
        background-color: transparent;
    }
    .bd {
        /*border: 50px solid orange;*/
        border-top: 50px solid orange;
        border-right: 50px solid cyan;
        border-bottom: 50px solid yellow;
        border-left: 50px solid blue;
        /*border-right: 50px solid transparent;
        border-bottom: 50px solid transparent;
        border-left: 50px solid transparent;*/
    }
    
    /* 画三角形 */
    
    .bd {
        width: 0;
        height: 0;
    }
    .bd {
        border-top: 50px solid orange;
        border-right: 50px solid cyan;
        border-bottom: 50px solid yellow;
        border-left: 50px solid blue;
    }
    /*吃球球的小球*/
    /*.bd {
    border-radius: 50%;
    border-right: 50px solid transparent;
    }*/
    
    

    五、盒模型之margin

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>margin</title>
    </head>
    <body>
        <div class="sup">
            <div class="sub"></div>
        </div>
    </body>
    </html>
    
    2、css 代码:
    /*前提:sup显示区域宽全屏,高200px, sub显示区域宽高个100px*/
    /*需求1:sup左上右顶格显示*/
    html, body {
        /*body默认具有margin: 8px*/
        margin: 0;
    }
    .sup {
        width: auto;
        height: 200px;
        background-color: red;
    }
    .sub {
        width: 100px;
        height: 100px;
        background-color: orange;
    }
    /*需求2:sub在sup的水平中央显示*/
    /*.sup { 错误
    text-align: center;
    }*/
    .sub {
        /*上下0,左右auto*/
        /*auto:左右auto,自适应(平方)剩余可布局空间*/
        margin: 0 auto;
    }
    /*需求3:sub在sup的垂直中央显示*/
    /*垂直会遇到margin父子坑*/
    /*.sub { 不行
    margin: auto;
    }*/
    .sup {
        height: 100px;
        padding: 50px 0;
    }
    /*.sup {
    height: 100px;
    border-top: 50px solid red;
    border-bottom: 50px solid red;
    }*/
    /*需求4:sub在sup的水平居右显示*/
    .sub {
        margin-left: auto;
        /*margin-right: 0;*/
        margin-right: 10px;
    }
    

    六、盒模型之样式支持

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>样式支持</title>
        
    </head>
    <body>
        <!-- 认识a标签一般怎么操作 -->
        <!-- 需求:具有页面转跳功能的图片 -->
        <!-- <a href="">
            <img src="img/icon.jpg" alt="">
        </a> -->
    
        <!-- 需求:图片在sup水平垂直中央显示 -->
        <!-- part1 -->
        <div class="sup">
            <img class="sub" src="img/icon.jpg" alt="">
        </div>
        <!-- part2 -->
        <div class="box"></div>
    </body>
    </html>
    
    2、css 代码:
    /* 认识a标签一般怎么操作 */
    /* 需求:具有页面转跳功能的图片 */
    a {
        color: #333;
        text-decoration: none;
        display: block;
    }
    </style>
    /* 需求:图片在sup水平垂直中央显示 */
    /* part1 */
    .sup {
        width: 500px;
        /*height: 500px;*/
        background-color: red;
    }
    /*水平居中*/
    /*display对margin的支持*/
    /*block支持所有margin布局*/
    /*inline与inline-block只支持margin上下布局*/
    .sub {
        display: block;
        margin: 0 auto;
    }
    /*垂直居中*/
    .sup {
        /*去除高度设置*/
        padding: 50px 0;
    }
    
    /* part2 */
    .box {
        width: 500px;
        height: 500px;
        background: url('img/icon.jpg') no-repeat center orange;
    }
    
    

    七、层级结构

    1、html 代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>层级结构</title>
    </head>
    <body>
        <!-- 无层次结构 -->
        <!-- <div class="d1">w3c</div>
        <div class="d2">html</div>
        <div class="d3">css</div>
        <div class="d4">js</div>
        <div class="d5">menu</div> -->
        
        <!-- 有层次结构 -->
        <div class="title">w3c</div>
        <div class="nav">
            <div class="html">html</div>
            <div class="css">css</div>
            <div class="js">js</div>
        </div>
        <div class="menu">menu</div>
    </body>
    </html>
    
    2、无层级结构 css 代码:
    /* 无层级结构 */
    .d5 {
        width: 200px;
        height: 100px;
        background: red;
    }
    .d2, .d3, .d4 {
        width: 80px;
        height: 40px;
        background: orange
    }
    /*.d4 {
    margin-left: 160px;
    margin-top: -80px;
    }*/
    .d3 {
        margin-left: 80px;
        margin-top: -40px;
    }
    .d4 {
        margin-left: 160px;
        margin-top: -40px;
    }
    /*没有层级结构情况下:*/
    /*1.盒子布局间相互影响程度很大*/
    /*2.要严格遵循从上至下布局顺序进行布局*/
    /*问题点:牵一发动全身*/
    
    
    3、有层级结构css 代码:
    /* 有层级结构 */
    .menu {
        width: 200px;
        height: 100px;
        background: red;
    }
    .html, .css, .js {
        width: 80px;
        height: 40px;
        background: orange
    }
    .nav {
        width: calc(80px * 3);
        height: 40px;
    }
    .css {
        margin-top: -40px;
        margin-left: 80px;
    }
    .js {
        margin-top: -40px;
        margin-left: 160px;
    }
    /*menu的布局只与nav有连带关系,与实际显示内容的html,css,js不具有任何连带关系*/
    

    相关文章

      网友评论

          本文标题:前端第四天

          本文链接:https://www.haomeiwen.com/subject/lkvloftx.html