通过css判定view高度显示不同元素

img

红色框里的是 元素超过一定高的显示的,但没有超过就不能显示
能不能使用 css 操作,因为那是一个列表,一个一个获取不现实

小程序页面渲染的时候判断文字长度 超过多少就显示这个,没有就不显示


$(document).ready(function () {
    var input = $("#div").find("input[type='text']");
    input.each(function () {
        var inpval = $(this).val();
        $(this).attr("value", inpval);
        this.style.whiteSpace = 'normal';
        $(this).css({"white-space": "normal", "word-wrap": "break-word",
            "word-break": "break-all","height": "auto","min-height" : "34px","padding": "10px 0px"});

        var inptext = $(this).prop("outerHTML");
        inptext = inptext.replace('"text"', '"reset"');
        $(this).parent().append(inptext);
        $(this).remove();
        
    })
})

可以判断 input的 value的长度 超过100字显示 下面的 用 wx:if 。

这个需求应该不能通过css实现,js实现的逻辑很简单的呀,你只需要在文档流渲染完毕的时候(原生js是在ready里面,vue是在mounted),获取列表元素标签的高度,如果超出规定高度,通过js设置要显示的标签css属性

利用 position: sticky; 去实现

可以用css 实现,但是有两个小问题
1 列表项最大高度要有
2 高度没有到最高 可能下面遮盖的元素只显示半截,这个得稍微估摸一下最低字体行高做处理
效果如下:

img

img

一般都是可以获取到屏幕尺寸的,然后根据尺寸来适配

cSS没法做到,要用javascript脚本,计算文字高度,赋给不同的值

可以用js来操作,获取元素高度。

可以通过javascript实现