前端知识点(5)

2019-05-30  本文已影响0人  爱抽烟的臭屁虫

                        高度塌陷

文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高,但是当为子元素设置浮动时,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素 高度坍塌,所以父元素的高度坍塌了,则父元素下的所有元素都会向上移,这样将会导致页面布局混乱,所以在开发中一定要避免出现高度坍塌的问题,我们可以将父元素写死,以避免坍塌的问题出现,但是一旦高度固定住了,父元素的高度降板自动适应子元素的高度,所以这种方案是不推荐使用的。

如下面的代码:

.box1{

            border:10px red solid;

            height:100px;

            }

.box{

        width:100px;

        height:100px;

        background-color:blue;

        为子元素设置项左浮动

        faloat:left;

        }

<div class='box1'>

    <div class='box2'></div>

</div>

<div class='box3'</div>

运行结果:


                         解决高度坍塌

根据W3C的标准,在页面中元素都一个隐含的属性叫做Block Formatting Context(块的格式化环境)简称BFC,该属性可以设置打开或者关闭,默认是关闭的

当开启元素的BFC以后,元素将会具有如下的特性:

1.父元素的垂直外边距不会和子元素重叠

2.开启BFC的元素不会被浮动元素所覆盖

3.开启BFC的元素可以包含浮动的子元素

如何开启元素的BFC

1.设置元素浮动

- 使用这种方式开启,虽然可以撑开父元素,但是会导致父元素的宽度丢失,而且使用这种方式也会导致下边的元素上移,不能解决问题

2.设置元素绝对定位

3.设置元素为inline-block

- 可以解决问题,但是会导致宽度丢失,不推荐使用这种方式

4.将元素的overflow设置为一个非visible的值

推荐方式:将overflow设置为hidden是副作用最小的开启BFC的方式

实现解决高度坍塌:

在代码中加入

overflow:hidden;


                            导航条

*{

    margin:0;

    padding:0;

    }

设置ul

.nav{

    list-style:none;

    设置ul

      .nav{

    去除项目符号*

      list-style:none;

    为ul设置一个背景颜色

      background-color:#6495ed;

设置一个宽度

在IE6中,如果为元素指定了一个宽度,则会默认开启hasLayout

        width:1000px;

设置居中

        margin:50px auto;

解决高度塌陷

        overflow:hidden;

}

设置li

      .nav li{

/*设置li向左浮动*/

        float:left;

width:12.5%;

}

.nav a{

将a转换为块元素

        display:block;

为a指定一个宽度

        width:100%;

/*设置文字居中*/

        text-align:center;

设置一个上下内边距

        padding:5px 0;

去除下划线

        text-decoration:none;

设置字体颜色

        color:white;

设置加粗

        font-weight:bold;

}

设置a的鼠标移入的效果

      .nav a:hover{

background-color:#cc0000;

}

创建导航条的结构

<ul class='nav'>

    <li><a href='#'>首页</a></li>

    <li><a href='#'>新闻</a></li>

    <li><a href='#'>联系</a></li>

    <li><a href='#'>关于</a></li>

    <li><a href='#'>首页</a></li>

</ul>

运行结果:


                            清除浮动

清除浮动有三个可用的参数:

left:清除左侧浮动的元素

right:清除右侧浮动的元素

both:清除两侧浮动的元素

.box1{

width:100px;

height:100px;

background-color:yellow;

/*设置box1向左浮动*/

  float:left;

清除box1浮动对box2的影响

float:right;

.box3{

width:300px;

height:300px;

background-color:skyblue;

clear:both;

}

<div class='box1'></div>

<div class='box2'></div>

<div class='box3'></div>

运行结果:


                            相对定位

定位分为四种,分别为:

static:默认值,元素没有开启定位

relative:开启元素的相对定位

absolute:开启元素的绝对定位

fixed:开启元素的固定定位(也是绝对定位的一种)

源代码:

.box1{

height:200px;

background-color:red;

position:relative;

}

.box2{

width:200px;

height:200px;

background-color:yellow;

        position:relative;

        left:100px;

top:200px;

}

.box3{

width:200px;

height:200px;

background-color:yellowgreen;

}

.s1{

position:relative;

width:200px;

height:200px;

background-color:yellow;

}

<div class='box1'></div>

<div class='box2'></div>

<div class='box3></div>

<span class='s1'>我是一个span</span>

代码实现:

上一篇 下一篇

猜你喜欢

热点阅读