当前位置: 首页 新闻详细

微信小程序怎么给for循环的view添加样式?小程序cover-view踩坑系列2

专业小程序设计开发——助力新电商新零售

电话+V:159999-78052,欢迎咨询小程序给view添加动态样式,[小程序设计与开发],[小程序投流与推广],[小程序后台搭建],[小程序整套源码打包],[为个体及小微企业助力],[电商新零售模式],[小程序运营推广及维护]

一、微信小程序怎么给for循环的view添加样式?

1、把要改变样式添加到相应js文件的全局变量中。

2、将变量绑定到view中。

3、在view中添加事件。

4、在相应js文件中添加该自定义方法changeColor,function,e,this.setData,color,#fff。

二、小程序-布局-两列列表


小程序开发中,两列布局的列表设计是一项常见的需求。要实现这种布局,有几个关键知识点需要注意。



  • 首先,为了实现动态添加列表项并保持灵活性,最外层的view容器应采用flex布局。设置样式为:display:flex;flex-direction:row;flex-wrap:wrap;这样可以适应屏幕大小变化,列表项可以自动换行。

  • 其次,对于列表项的宽度,应固定为屏幕的一半,例如wdith:375rpx。为了防止flex布局在内容不足时压缩列表项,应设置flex-shrink:0,使其保持原有大小。

  • 最后,为了保证视觉效果,每个列表项之间和内容区域应留有适当的空白。为此,可以使用box-sizing:border-box;padding:10px;来控制每个列表项的边距。


  • 通过这些设置,你将能够创建出清晰、美观的两列列表布局,为小程序用户带来良好的用户体验。


    小程序cover-view踩坑系列2

    2020-09-2011:44·程序员tb

    之前写过文章讲cover-view的坑,但是坑太多了,网上一片吐槽。今天来说下最近新落入的两个cover-view的坑:

    文本不换行<cover-viewstyle="width:100rpx;border:1pxsolidred;">HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworld</cover-view>

    如上面代码,指定了cover-view的宽度,然后里面会有一长串文字,当文本超出后,并没有换行,超出部分被隐藏了,效果:

    测试后发现,iOS和Android上也是一样的效果,究其原因我们通过开发者工具可以发现:

    cover-view自带了一些样式,而问题的根源就出自overflow和white-space这两个样式,然后我试着覆盖overflow属性,但是没有任何效果,就是没用,但解决这个问题主要还是white-space这个属性,这个属性有很多值:

    white-space

    经过测试,只要值不是nowrap就行,都能起到换行的作用,效果如下:

    开发者工具

    IOS

    Android

    有没有发现,cover-view有多坑,三种环境,居然渲染出来三种不同的样式,但是,这个坑必须要踩过去,于是经过多番测试,发现如下三行代码必须要加上:

    white-space:pre-line;word-break:break-all;word-wrap:break-word;

    最后效果就是这样了:

    虽然文本被强制拆开了,但好在问题是解决了,而且保证了ios和android上的一致。从这个问题,大致可以了解到小程序中Android和iOS对于文本的拆分有很大的差异,只能采用粗暴的解决方式(word-break:break-all)。

    文本显示不全

    这次我们不让他换行了,就让他一行显示,可是cover-view表现的也不完美,如下:

    .list{line-height:33rpx;word-wrap:break-word;word-break:break-all;white-space:pre-line;font-size:24rpx;}.text{vertical-align:middle;display:inline-block;}<cover-viewclass="list"><cover-viewclass="text">价格:</cover-view><cover-viewclass="text">¥988.00</cover-view></cover-view>

    这里,文本的宽度没有固定,由内容自动扩充宽度,各个环境的表现如下:

    开发者工具

    iOS

    Android

    在Android手机上,文本后面会显示不全,这个问题官方论坛也有很多:

    一开始我以为是我css写的有问题,调试了好久,各种布局然后加padding都没用,没想到我不是一个人,最后只能多写几行javascript解决了:

    <cover-viewclass="list"><cover-viewclass="text">价格:</cover-view><cover-viewclass="texttext2":style="{width:width}">¥988.00</cover-view></cover-view>data(){return{width:'auto',}},onLoad(){constquery=uni.createSelectorQuery().in(this)query.select('.text2').boundingClientRect(data=>{console.log(data)this.width=data.width+8+'px'}).exec()},

    方法是动态绑定元素的宽度,默认值是auto,页面加载后等渲染完成获取元素的实际宽度,然后再手动加上一点宽度。

    【WINDRISES MINIPROGRAM PROMOTION】尊享直接对接老板

    电话+V: 159999-78052

    专注于小程序推广配套流程服务方案。为企业及个人客户提供了高性价比的运营方案,解决小微企业和个体拓展客户的问题

    小程序给view添加动态样式
    发布人:q94732030 发布时间:2025-01-09