红色框里的是 元素超过一定高的显示的,但没有超过就不能显示
能不能使用 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 高度没有到最高 可能下面遮盖的元素只显示半截,这个得稍微估摸一下最低字体行高做处理
效果如下:
一般都是可以获取到屏幕尺寸的,然后根据尺寸来适配
cSS没法做到,要用javascript脚本,计算文字高度,赋给不同的值
可以用js来操作,获取元素高度。
可以通过javascript实现