自学前端第九天~

学习了层级、锚点、精灵图、高度宽度以及窗口自适应、伪元素这些知识点。

层级

在设置了兄弟相对定位时,如果两个盒子有相交的部分,将会遵循后来者居上的原则,后面的盒子会把前面盒子与之重合的部分覆盖上。在上面的盒子比下面的盒子层级高,这就是层级。如下图:红色盒子先进行设置,相对于自己的之前的位置进行向下和向右的偏移。然后再设置后面的绿色盒子,绿色盒子将会把红盒子盖住一部分,如果想要将红盒子显示在上面,需要用到z-index这个属性。设置数字值,越大表示层级越高,可以设置负值。两个盒子如果都设置了z-index层级值,哪个大哪个盒子就显示在上面。

但是在父子盒子的绝对定位中,如果想让父盒子显示在上面,需要对子盒子设置z-index的负值。对父盒子设置正值并且比子盒子值大也无济于事。

锚点

锚点相当于是页面内的跳转,比如一个导航侧边栏,鼠标点击哪个导航文字,页面内容就会跳到对应的导航内容。设置的时候用<a>标签。

<div id="锚点名字"></div>
<a href="#锚点名字"></a>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul{
            list-style-type: none;
            position: fixed;
            top: 100px;
            right: 0;
        }
        li{
            width: 100px;
            height: 50px;
            line-height: 50px;
            text-align:center;
            border: 1px solid black;
        }
        div{
            height: 600px;
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <ul>
        <li><a href="#a">京东秒杀</a></li>
        <li><a href="#b">双十一</a></li>
        <li><a href="#c">频道优选</a></li>
        <li><a href="#d">特色广场</a></li>
    </ul>
    <div id="a">
        京东秒杀
    </div>
    <div id="b">
        双十一
    </div>
    <div id="c">
        频道优选
    </div>
    <div id="d">
        特色广场
    </div>
</body>

 当我点击双十一时,页面会自动跳转到双十一内容。

精灵图

将导航背景图片,按钮背景图片等有规则的合成一张背景图,即将多张图片合为一张整图,然后用background-position来实现背景图片的定位技术。

比如下面是一张大图,我需要要右边的一列小图标,我不需要把每个图标都截下来,只需要导入这一张图,来设置不同的距离,就可以得到对应的小图。

    <style>
        div{
            width: 103px;
            height: 32px;
            float: left;
            background-image: url(img/精灵图.png);
            margin-right: 10px;
            background-color: yellow;
        }
        .box1{
            background-position: -205px -111px;
        }
        .box2{
            background-position: -205px -74px;
        }
        .box3{
            background-position: -205px -37px;
        }
        .box4{
            background-position: -205px 0px;
        }
        .box5{
            background-position: -205px -148px;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <div class="box4"></div>
    <div class="box5"></div>
</body>

 

图片整合的优势:
1)通过图片整合来减少对服务器的请求次数,从而提高面的加载速度
2)通过整合图片来减小图片的体积

自适应 

自适应有宽度自适应、高度自适应以及窗口自适应。

宽度自适应就是用width:auto或者不设置宽度。高度和宽度同理。有时我们希望根据内容的高度去自适应盒子的高度,但是内容不是固定的,自然高度也固定不了,我们可以设置min-height来设置一个 最小宽度,这样即使内容很少也不至于高度太小影响页面整体设计。对应的有max-height、min-width、max-width。

窗口自适应:

html,body{
    height: 100%;
    background-color: green;
}

 伪元素

div::first-letter{ #开头第一个字母大写
    font-size: 30px; 
}
div::first-line{ #第一行填充背景颜色
    background-color: yellow;
}
div::before{ #开头加内容aaaaaaa
    content: "aaaaaaa";
}
div::after{ #结尾加内容bbbbbb
    content: "bbbbbb";
}

 

 记录一个万能浮动小案例:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 300px;
            margin:0 auto;
           
        }
        ul{
            list-style-type: none;
        }
        .box .item{
            float: left;
            width: 148px;
            text-align: center;
            border: 1px solid blue;
            background: blue;
            color: white;
            height:40px;
            line-height: 40px;
        }
        .item:hover{
            background-color: lightblue;
        }
        .item ul{
            display: none;
            background-color: white;
            color: black;
        }
        .item:hover ul{
            display: block;
        }
        .item li:hover{
            color: blue;
        }
        .body{
            background-color: yellow;
            height: 200px;
        }

    </style>

没有设置万能浮动之前是这样的,黄色部分是内容,我希望内容在导航栏下面。且二级菜单显示的时候会覆盖一部分内容。 然后设置下万能浮动:

.box::after{
    content: "aaaa";
    clear: both;
    display: block;
    width: 0;
    height: 0;
    visibility: hidden;
}

内容和导航部分就可以完美分开,且显示二级导航的时候不影响内容。  visibility: hidden;和display:none;的区别是:

visibility: hidden 是占位隐藏,即使隐藏了,位置也会被空出来。

display:none;是不占位隐藏,隐藏后位置不会被空出,其他盒子会占领。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值