css - 两个行类元素,其中一个里面的元素用了定位后,影响了另一个行类元素的居中

查看:92
本文介绍了css - 两个行类元素,其中一个里面的元素用了定位后,影响了另一个行类元素的居中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.实现这样的效果

2.问题:我给后面的a用的是height和line-height垂直居中,但是当我给span里面的em和b加上绝对定位后,后面的a就不能居中,是为什么呀?span用的relative,跟后面的a没有关系啊。
我的html结构:

    <body>
        <div class="newslist">
            <ul>
                <li><span><em>16</em><b>2016-10</b></span><a href="#">xxxxxxxxxxxxxxxxxx</a></li>
                <li><span><em>16</em><b>2016-10</b></span><a href="#">xxxxxxxxxxxxxxxxx</a></li>
            </ul>
        </div>
    </body>

CSS:

        *{
            margin: 0;
            padding: 0;
        }
        li{
            list-style: none;
        }
            .newslist{
                width: 600px;
                margin-left: 100px;
                border: solid 1px red;
            }
        
            .newslist li span{
                display: inline-block;
                text-align: center;
                width: 80px;
                height: 60px;
                background-color: #808080;
                position: relative;
            }
            
            /*这里如果我给日期span里面的em,b加上absolute就会影响后面的a的居中,是为什么呢*/
            /*.newslist li span em,.newslist li span b{
                display: block;
                width: 100%;
                text-align: center;
                position: absolute;
                left: 0;
            }
            
            .newslist li span em{
                top: 0;
            }
            
            .newslist li span b{
                bottom: 0;
            }*/
            
            .newslist li a{
                display: inline-block;
                height: 60px;
                line-height: 60px;
            }

解决方案

基线问题, 加上这句.

.newslist li a{
    vertical-align: top;
}

这篇关于css - 两个行类元素,其中一个里面的元素用了定位后,影响了另一个行类元素的居中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆