h5 每日汇总:5月25日

215 阅读5分钟

5.盒模型。

Box-sizing 属性 box-sizing: border-box; 内缩,外扩变内缩,应用到app上多,网页上不多。 box-sizing: content-box; 默认属性。

display属性 展示和显示

行内元素,块级元素。 块级元素 不能并排显示,能够设置宽高,不设置width属性,会自动撑满。div section header h系列,li ul。 行内元素,能并排显示,不能设置宽高,width自动收缩,a span em. B. U i等。

width属性表示盒子内容的宽度。 width属性的单位通常是px , 块级元素 div h li 没有设置width 属性时,它将自动撑满,但这并不意味着width可以继承。自动撑满。 a 行内元素。 如果设置了width height会根据内容适应。 如果不设置,他将自动被内容撑开,行内元素还是块级元素,都会自动撑满。 如果是块级元素,不设置width 只设置height ,会自动撑满。 不论是什么元素,如果设置了width height会根据内容适应。 行内元素 设置了宽高是没有效果的。

行内元素和块元素 img 表单元素 特殊的行内块,可以并排,又可以设置宽高。 元素的隐藏

行内元素和块级元素的相互转换。

1.将元素转为行内元素的应用不多见。 display: inline;转为行内元素。 通常写在开头。 display: block; 转为块级元素, display: inline-block;转为行内块 行内元素 margin - top 不会被撑大。

.a21 { background-color: teal; text-decoration: none; width: 200px; height: 200px; display: block; border-radius: 15px; }

<a href="" class="a21">按钮点击</a>

元素的隐藏

元素的隐藏 Display:none 元素彻底放弃位置 如同没有写这个标签一样。 Visibility:hidden 可以将元素隐藏,但是元素不放弃自己的位置。

        /* visibility: hidden; */ 空的但是有位置。
        display: none;

三周 浮动定位与背景样式

浮动: 浮动的基本概念,使用浮动实现网页布局,BFC规范和浏览器差异,清除浮动,

定位: 相对定位,绝对定位,固定定位。

浮动用来实现并排

1.要浮动 都浮动,如果父盒子没有足够空间,会达不到左浮动。 如果没有足够的空间,则会寻找前一个兄弟元素,如果再没有空间就寻找上一个,如果上一个也没有就去寻找父盒子。 2.浮动的元素不再区分块级元素还是行内元素,已经脱离了标准的文档流,一律能够设置宽度和高度,即使他是span或者是a标签。浮动元素一定能设置高度和宽度。 float: left;; float: right;

3.使用浮动实现网页的布局。

1.垂直显示的盒子,不要设置浮动,只有并排的盒子才需要设置浮动。 2.大盒子带着小盒子跑,一个大盒子中,又是一个小天地,内部可以继续使用浮动。 3.div可以多用,不要节约。

* {
        margin: 0;
        padding: 0;
    }

    header {
        width: 1000px;
        height: 100px;
        margin: 0px auto;
        /* background-color: rebeccapurple; */
    }
    .content {
        width: 1000px;
        height: 500px;
        margin: 40px auto;
    }
    footer {
        width: 1000px;
        height: 100px;
        background-color: salmon;
        margin: 0 auto;
    }

    header .logo {
        float: left;
        width: 220px;
        height: 100px;
        background-color: orange;
    }

    header .login {
        float: right;
        width: 220px ;
        height: 30px;
        background-color: palegreen;
    }

    nav{
        float: right;
        width: 690px;
        height: 50px;
        margin-top: 20px;
        background-color: green;
    }
    .content .ad{
        float: left;
        width: 300px;
        height: 500px;
        background-color: blue;
    }

    .content main{
        float: right;
        width: 680px;
        height: 500px;
    }

    .content main .banner {
        width: 680px;
        height: 380px;
        background-color: orange;
    }

    .content main .pics {
        width: 680px;
        height: 100px;
        margin-top: 20px;
        /* background-color: orange; */
    }

    .content main .pics ul{
        list-style: none;
    }

    .content main .pics ul li{
        float: left;
        width: 160px;
        height: 100px;
        background-color: blue;
        margin-right: 10px;
    }

    .content main .pics ul li:last-child{
        width: 160px;
        /* margin-right: 0px; */
    }
</style>



<header>
    <!-- logo -->
    <div class="logo">

    </div>
    <!-- login -->
    <div class="login">

    </div>
    <!-- navigation -->
    <nav>

    </nav>
</header>

<section class="content">
    <aside class="ad">

    </aside>
    <main>
        <div class="banner"></div>
        <div class="pics">
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>
    </main>
</section>

<footer>

</footer>

BFC规范和浏览器差异,清除浮动,

块级格式化上下文,是页面上的一个隔离的独立容器,容器里面的字元素不会影响到外面的元素,反之亦然。

一个盒子不设置height,当内容

当一个盒子不设置height ,当内容子元素都浮动时,无法撑起自身。 这个盒子没有形成BFC.

没有设置float 盒子会撑起父盒子。

如何 创建BFC

1.float值不是none 2.position的值不是static. 或者 relative 3.display 的值是inline-block flex inline-flex 4.overflow hidden

Overflow hidden 溢出隐藏,溢出盒子边框的内容将会被隐藏。 是非常好用的让盒子形成BFC。

但是盒子的padding部分的溢出还是在的。 .div41 { width: 100px; height: 100px; background-color: yellow; overflow: hidden; padding: 20px; /* 超出边界的部分 隐藏 但是在padding的部分 溢出的还在*/ }

BFC 可以取消盒子margin塌陷 竖直方向上的。 BFC可以阻止元素被浮动元素覆盖。 取消盒子margin塌陷

    p {
        width: 200px;
        height: 200px;
        background-color: thistle;
        margin: 50px;
    }
<p></p>
<p></p>

如果不加div,两个p之间一共是50px.

div { overflow: hidden; }

并排的盒子都是需要浮动的。 IE6 IE7使用halayout机制, 内部有盒子的要设置高度。

清除浮动

1.清除浮动方法,让内部有浮动的父盒子形成BFC 它就能关闭住内部的浮动,此时更好的方法是overflow:hidden 属性。 关闭了自己的浮动,其他的就不会跟上来了。 overflow: hidden; 有关闭这块浮动,不影响下一块的浮动。

2.清除浮动方法2,给后面的父盒子 clear:both属性,clear表示清除浮动对自己的影响,both表示左右浮动都清除。 clear: both;在后一个盒子添加。 不怎么用 margin-top: 20px;会失效。

3.::after 伪元素给盒子添加最后一个字元素,并且给 ::after设置clear:both 是最常用的方法。 .div42 { } .div43 { margin-top: 20px; clear: both; } .clearfix::after { content: ''; clear: both; display: block; }

<div class="clearfix div43">
    <p></p>
</div>
<div class="clearfix div43">
    <p></p>
</div>

4.清除浮动方法4,在两个父盒子之间 “隔墙”隔一个携带clear:both的盒子。 墙的高度当作缝隙。