toast实现中的一个问题

作者: 柳正来 | 来源:发表于2018-03-07 13:56 被阅读26次

    问题

    之前实现一个toast控件, 效果如下:


    toast

    代码见center aligned toast with top+transfrom

    很简单, 水平居中用老办法就好了:

    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    

    但是有个问题, 让我不爽. 如下图:


    问题

    可以看到, 这里提前换行了, 其实不换行一行完全放得下的.

    原因

    那么为什么换行了呢? 因为我们的实现方法是:

    1. top: 50%; left: 50%
    2. 然后往回退水平竖直各50%.

    其中第一步导致了提前换行. 我加个不transform的就一目了然了.

    dummy-toast

    其中右下角的那个是不加transform的, 可以看到换行是因为它碰到边界了.

    解决方法

    沿用这个套路的话, 没想到什么解决方法. 只能转用flex.

    很简单:

    display: flex;
    justify-content: center;
    align-items: center;
    

    flex-toast还有个好处是可以给左右加margin, 让边缘不紧贴容器, 好看些. 代码见center aligned toast with flex

    flex-toast

    相关文章

      网友评论

        本文标题:toast实现中的一个问题

        本文链接:https://www.haomeiwen.com/subject/lfejfftx.html