九 . css系列之定位、z-index及应用

(一)定位的含义
通过定位可以让一个元素位于页面的任意位置,定位的思想认为所有元素都是“框”,框分为两个:块块、行内框。定位的分类:静态定位、相对定位、绝对定位、固定定位
(二)定位分类
定位的分类:静态定位、相对定位、绝对定位、固定定位
1.position:static定位的默认值,元素没有任何的附加效果
2.position:relative相对定位
a.相对定位的参照物是自身原有位置
b.如果一个元素设置了position:relative,但是没有告诉它位移的方向和尺度,它将保持原有位置不变
c.如果要向右移动可以设置left,如果要向下移动可以设置top,如果要向左移动,可以设置right,如果要向上移动可以设置bottom
d.一个元素做了相对定位其远原有位置并不丢失,换句话说该元素仍处于标准文档流中
3.position:absolute,绝对定位的参照物是具有定位属性的祖先元素(离它最近的祖先元素)
a.元素有祖先元素,但是祖先元素没有定位
b.元素有祖先元素,且祖先元素有定位
注意:
    (a.一个元素如果设置了绝对定位,但是没有设置top/bottom/left/right四个属性,那么这个元位置保持不变,但是它会从标准文档流中脱离,其在标准文档流中的原有位置丢失
    (b.可以设置top /bottom/left /right四个属性
    (c.一个元素如果做绝对定位,那么首先要看它的祖先元素有没有定位,如果祖先元素没有定位,该元素的位移参照是body
,如果它祖先元素有定位,那么它的位移参照是祖先元素
    (d.一个元素左绝对定位时,如果它的祖先元素都有定位,那么它的参照是离它最近的那个祖先元素
4.position:fixed,位移参照始终是body无论祖先元素有没有定位
   多应用于页面中的广告图片
(三)z-index:调节元素的堆叠次序,属性值就是数值,没有单位 ,值越大元素越靠上
元素默认的堆叠顺序是受HTML标签排列顺序决定,写在后面的在上面显示,写在前面的在下面显示
z-index属性的前提是该元素必须具有定位
(四)应用
1.淘宝目录
<head>
    <meta charset="UTF-8">
    <title>定义列表的应用1</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }body{
            width: 700px;
            margin: 0 auto;
        }
        h3{
            font-size: 14px;
            background: yellowgreen;
            height: 30px;
            width: 130px;
            line-height: 30px;
            color: #fff;
            border-radius: 5px 5px 0 0;
            padding-left: 5px;
        }
        div{
            width: 400px;
            height: 200px;
            border: 1px solid yellowgreen;
            font-size: 12px;
            padding: 10px 0 0 20px;
        }
        a{
            text-decoration: none;
            color: #000;
        }
        dt a{
            margin-right: 15px;
        }
        dd a{
            margin-right: 10px;
        }
        dd{
            margin: 10px 0 30px 0;
        }
    </style>
</head>
<body>
    <h3>所有类目</h3>
    <div>
        <dl>
            <dt>
                <a href="#">二手家具</a>
                <a href="#">家具百货</a>
            </dt>
            <dd>
                <a href="#"></a> 
                <a href="#">柜子</a> 
                <a href="#">桌椅</a> 
                <a href="#">沙发</a> 
                <a href="#">沙发</a> 
                <a href="#">沙发</a> 
            </dd>
            <dt>
                <a href="#">二手家具</a>
                <a href="#">家具百货</a>
            </dt>
            <dd>
                <a href="#"></a> 
                <a href="#">柜子</a> 
                <a href="#">桌椅</a> 
                <a href="#">沙发</a> 
                <a href="#">沙发</a> 
                <a href="#">沙发</a> 
                <a href="#">沙发</a> 
            </dd>
        </dl>
    </div>
</body>
2.新闻目录
<head>
    <meta charset="UTF-8">
    <title>定义列表的应用2</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        div{
            width: 100%;
            margin: 0 auto;
            font-size: 12px;
        }
        dt{
            font-weight: bold;
        }
        dt,dd{
            float: left;
            margin-right: 20px;
        }
        dl{
            width: 200px;
            border-right: 1px dashed #ccc;
            float: left;
            margin-right: 20px;
        }
        body dl:last-of-type{
            border: none;
        }</style>
</head>
<body>
    <div>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
        <dl>
            <dt>新闻</dt>
            <dd>军事</dd>
            <dd>评论</dd>
            <dd>图片</dd>
            <dt>体育</dt>
            <dd>购彩</dd>
            <dd>NBA</dd>
            <dd>中超片</dd>
            <dt>娱乐</dt>
            <dd>电影</dd>
            <dd>电视</dd>
            <dd>音乐</dd>
        </dl>
    </div>
</body>
3.手风琴菜单
<head>
    <meta charset="UTF-8">
    <title>手风琴菜单</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }a{
            text-decoration: none;
            color: #000;
            display: block;
        }
        ul{
            width: 500px;
            margin: 0 auto;
            list-style: none;
        }
        li{
            float: left;
        }li>a{
            width: 28px;
            height: 90px;
            background: green;
            text-align: center;
​
        }li>a,div{
            float: left;
        }div{
            background: pink;
            width: 90px;
            height: 90px;
            font-size: 14px;
            padding: 10px 0 0 10px;
            display: none;
        }
        li:hover div{
            display: block;
        }
        li div a:hover{
            color: #f00;
        }
    </style>
</head>
<body>
    <ul>
        <li>
            <a href="#">吉林省</a>
            <div>
                <a href="#">长春市</a>
                <a href="#">吉林市</a>
                <a href="#">四平市</a>
            </div>
        </li>
        <li>
            <a href="#">辽宁省</a>
            <div>
                <a href="#">沈阳市</a>
                <a href="#">盘锦市</a>
                <a href="#">大连市</a>
            </div>
        </li>
        <li>
            <a href="#">黑龙江省</a>
            <div>
                <a href="#">齐齐哈尔市</a>
                <a href="#">哈尔滨市</a>
                <a href="#">黑河市</a>
            </div>
        </li>
    </ul>
</body>

猜你喜欢

转载自blog.csdn.net/m0_37285193/article/details/81567949