严文彬
严文彬
> 可以实现:类似vue中v-if的功能吗?一个场景是根据用户权限,展示不同的tab以及内容? > 我觉得原生css里只有display:none,但是这样做还是会渲染这个dom,用户可以在浏览器里上设置display属性,以便看到内容。不好!是不是没有办法? `v-if`是动态改变`dom`结构的,类似于事先准备好两段`html`,然后根据情况去渲染哪一个,属于框架的特性。这里只提供UI,如果想实现其他效果,可以用少量js来实现即可
感谢! safari确实还要一些问题,目前手头上没有mac设备,找别人mac看了一下效果,比如icon渲染有问题,很多focus也有问题,感觉safari也是一个大坑啊 上面的pull我会仔细核对改进。
> 是用css实现的话,有个非常大的缺陷就是会被外层某个未知位置的overflow:hidden遮住,调试起来非常困难。不知道用js实现难不难,还是说css还有可以突破的地方? `js`实现也不复杂,主要有一个滚动问题,`js`一般会生成在`body`上,然后相对于`body`定位,如果页面内有局部滚动,那么定位就会出问题 `css`实现可能有一些局限性(比如`overflow`问题,不过使用者可以避免),但总体而言还是最优的实现方法。 其实这一整套组件很多地方都是`css`优先实现,实在不行才会考虑`js`,适用性更好。
@zhangjing007 说实话,这类组件封装成组件后,灵活度反而大大降低,比较推荐直接实现,可以参考这篇文章,纯 CSS 实现 https://juejin.cn/post/7095580369537204238 
> 这个不能触发change事件啊 @caoyuanlang 感谢反馈!我稍后处理一下
@caoyuanlang 已修复
内部纯`css`实现,可参考[这篇文章](https://blog.codelabo.cn/article/5b42defe76303126a26e06b9)
yes, some attributes are not dynamically, because it doesn't always need to change you can watch it in `attributeChangedCallback` ```js attributeChangedCallback (name, oldValue, newValue) { // } ```
嗯,是个问题,现在 tips 是 CSS 实现的, 容易受到父级 overflow 影响,后面考虑将 tips 渲染到 body 下应该可以解决这些问题
这里的提示是相对于父级定位的,父级设置了`overflow:hidden`就会被遮住,你可以设置提示的位置来解决这个问题。