• 1 修改原生html 2 overflow问题排查


    原生html

    需求:

    带td tr 的table,submit按钮,
    首先实现左侧hover按钮,其次实现样式优化

    想法 & 踩坑

    1. 抄element-ui的 css就行 ,但是不用全抄,input的移过来差不多了
      注意往下找到原生实现部分 ,(见下面)
    2. 发现表格无法居中,还有因为提示是用的display none,住表格里会疯狂抖动
      解决:提示框用absolute定位,就不会影响到表格了(注意和表格宽高一样就行)(感谢josie)
      最后给表格 table设置上: style=" 80%;margin:auto" 就可以居中了
    3. 因为只有一个文件…… 带圈的i按钮, 用css的icon实现
      这里最后参考的是zhangxinxu:
      介绍: https://www.zhangxinxu.com/wordpress/2019/08/pure-css-icon/
      实现:https://www.zhangxinxu.com/sp/icon/css.php (先复制主类,再复制单个的)
      这个是简单一点的: https://blog.csdn.net/weixin_34327761/article/details/91366793 (但是它是斜体 就不行)

    实现

    input type=submit实际上和button差不多,改css是:input[type=submit]:hover
    css 添加类似element-ui样式

    点击查看代码
                input {
                    -webkit-appearance: none;
                    background-color: #fff;
                    background-image: none;
                    border-radius: 4px;
                    border: 1px solid #dcdfe6;
                    box-sizing: border-box;
                    color: #606266;
                    display: inline-block;
                    font-size: inherit;
                    height: 30px;
                    line-height: 30px;
                    outline: 0;
                    padding: 0 15px;
                    transition: border-color 0.2s
                        cubic-bezier(0.645, 0.045, 0.355, 1);
                }
    

    添加hover效果,点击后30s可撤销(这里有个很好玩的钢琴效果emmmm)
    这里参考了 https://blog.csdn.net/weixin_45764383/article/details/104499712
    按说可以事件委托,但是emmmm ……

                (function () {
                    let len = document.getElementsByClassName("info").length;
                    let timer=new Array(len);
                    for (let i = 0; i < len; i++) {
                        let btn = document.getElementsByClassName("info")[i];
                        let box = document.getElementsByClassName("tip")[i];
                        box.onmouseover = btn.onmouseover = function () {
                            if(timer[i]) clearTimeout(timer[i])
                            box.style.display = "inline-block";
                        };
                        box.onmouseout = btn.onmouseout = function () {
                            timer[i] = setTimeout(function(){
                                box.style.display = 'none';
                            },500);
                        };
                    }
                })();
    

    overflow问题:

    场景:

    父元素area 下el-tabs,el-tab单页有的需要展示滚动条,有的不需要(因为是内嵌页面,内嵌里有自己的滚动条)
    1、本来是给area都设置滚动条,先取消了area给el-tabs的滚动条
    2、此时发现, 无论怎么给从里往外的元素加overflow scroll都无效,或者加了定位,也无效

    原因:

    仔细点F12小手,看区域
    此时可以看到,area只有那么一小块,是el-tabs的内容超出了,设置滚动条的元素越级了
    换句话说,el-tab在el-tabs的容器内没有overflow(超出)
    el-tabs在area的容器里超出了,但是area已经设置了没有滚动条,所以后面的设置就无效了

    解决:

    1、给el-tabs添加样式:
    height:100%;overflow-y:scroll 让tab溢出在tabs里,由此可控(生效)
    2、因为需求是 要么有要么没有 用动态绑定
    :style='activeName=="xxxxx?"height:100%;overflow-y:scroll;":""'

  • 相关阅读:
    同步和异步有何异同,在什么情况下分别使用他们?
    Android 缓存处理
    Android常用的设计模式概念
    Android常见的设计模式详解
    Android中的五大布局
    几种常见的引用概念
    面向对象的思想概述
    Android系统架构的简单描述
    display:none;与visibility:hidden;的区别
    块级元素和行内元素的区别
  • 原文地址:https://www.cnblogs.com/lx2331/p/16014320.html
Copyright © 2020-2023  润新知