手机端内容高度可变的无法css实现的输入框设计稿该如何处理?

       前天接到一个设计稿,页面布局比较简单,难点是活动规则放在一个“框”中,但是活动规则是后台传值过来的,其内容的多少是 运营人员根据需要而输入的,内容多的情况下很有可能铺满整个设计稿psd中的输入框,其部分设计稿截图如下:

                            

                                    图片1                                                    图片2

 

       由于是移动端页面,以前做法是,整个切一个图,然后再写一个div,然后绝对定位处理下,代码如下:

       

     在很多    里面的内容是固定内容的情况下,完全够用,但是由于切出来的图的输入框的高度是确定的,当其里面的内容非常多的情况下就会出现内容溢出psd输入框的问题,这明显是一个很严重的bug,该如何解决这样的问题呢??思考再三,提出了两种解决方案,先阐述一下该方案的原理,再比较两种方案的特点。

图片1

    解决方案1:

       切图:  

       白色边框:用div的border属性来解决

       实现方法:切图决定定位在div上部,代码如下

       

 HTML部分:
<li class="pr"> <div class="activity-details-header"> <img src="images/a7.png?v1.1"/> </div> <div class="activity-details"> <!-- ${activityRule} --> 活动对象:流量来了APP新注册用户 活动规则:移动30M、电信30M、联通20M 全国通用流量包(当月有效,全国通用) 活动时间:2016年06月21日-2016年06月23日 到帐时间:2016年07月01日-2016年07月05日 用户类型:安卓用户、苹果用户 </div> </li>

css部分
   .activity-details{
            position: absolute;
            left:7.361% ;
            top:0;
            z-index: -1;
            width: 85.27%;
            border:2px #fff solid;
            padding: 35px 20px;
        }
        .activity-details-header{
           width: 32.5%;
           margin:0 auto;
        }

.pr{position: relative;}

 

  其效果如下:

 

  经过测试,完全符合移动端条件

 

     解决方案2:

        切图:   ,    ,  

                                    切片1                                                                      切片2                                                                 切片3

      

        方法:切片1和切片3 作为图片, 切片2作为背景图片, 三者进行拼接,实现代码如下所示:

   

    HTML部分:

<
li> <img src="${ctx}/jsp/wap/activitySquare/images/a3.png?v1.1"/> // 切片1    
</li> <li class="txt-bg pr"> <!--<img src="${ctx}/jsp/wap/activitySquare/images/a4.png?v1.1"/> --> <div class="activity-details"> <!-- ${activityRule} -->
           活动对象:流量来了APP新注册用户

            活动规则:移动30M、电信30M、联通20M
                  全国通用流量包(当月有效,全国通用)

            活动时间:2016年06月21日-2016年06月23日

            到帐时间:2016年07月01日-2016年07月05日

            用户类型:安卓用户、苹果用户
</div>
</li>
  <li> 
<img src="${ctx}/jsp/wap/activitySquare/images/a5.png?v1.1"/> //  切片3
</li>

css部分
 .activity-details {
    margin-left: 11%;
    width: 78%;
    padding: 0 0.3rem 0 0.5rem;
    line-height: .8rem;
    font-size: 12px;
    color: #fff;
    word-break: break-all;
    word-wrap: break-word;
}
.activity-details * {
    font-size: 12px;
    color: #fff;
    word-break: break-all;
    word-wrap: break-word;
}
.txt-bg {
    background: url("${ctx}/jsp/wap/activitySquare/images/a4.png?v1.1") 0 0 repeat-y; //切片2     

    min-height: 130px;
    padding-bottom: 0.6rem;
    background-size: 100% auto;
}

.pr{position: relative;}

 

 

 

  这两种办法都能实现内容自适应高度的问题。但是对于更复杂,css无法实现的一些效果,使用方法2才是最好的办法,如下图:

   

  

     通过方法1,无法处理好,只能通过方法2

 

 自己工作所总结,督促自己学习进步,如能对遇到同样问题的同学有点借鉴作用,不甚荣幸,欢迎交流、批评指正。

 

posted @ 2016-08-25 18:53  21cn  阅读(360)  评论(0编辑  收藏  举报