前端容易踩的坑,你中了吗?

前端踩的坑,你中了吗?

样式问题

1、父元素设置了border-radius,子元素应用了transform,并且父元素设置了overflow:hidden,但是却失效?
// 给父元素设置 
{
    position:relative;
    z-index:1;
}
复制代码
2、设置input 文本框的 placeholder 的颜色
input::-webkit-input-placeholder{
    color:rgba(144,147,153,1);
}
复制代码
3、如何设置body背景色,height:100%,不生效?
同时设置html,body的高度

html,body{
    height:100%;
} 
或
body{
  height: 100vh; // 代表占屏幕100%
}
复制代码
4、一像素边框的问题
.row {
  position: relative;
  &:after{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 200%;
    border-bottom:1px solid #e6e6e6;
    color: red;
    height: 200%;
    -webkit-transform-origin: left top;
    transform-origin: left top;
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    pointer-events: none; /* 防止点击触发 */
    box-sizing: border-box;
  }
}
5、css属性touch-action:none;
该属性会导致安卓页面无法滚动,慎用!
6、去除ios 手机端input输入框的内阴影
input{ 
    -webkit-appearance: none; 
}
7、安卓手机端div里面在包一层div,文字展示不居中的问题。
最好给div设置padding ,不固定高度和不设置line-height;
8、iOS端input输入框光标错位

是由于fixed定位引起的,改成absolute就解决了。

.box{
    position: absolute; 
}
9、div实现背景色和背景图片同时存在
{
    background-color: #fff;
    background-image:url('../../assets/img/model-bg.png');
    background-repeat: no-repeat;
}
10、css 制作椭圆

border-radius可以单独设置水平和垂直的半径,只需要用一个斜杠(/)分隔这二个值就行。

此外我们还要知道border-radius不仅可以接受长度值还可以接受百分比值。

{
    width: 150px;
    height: 100px;
    border-radius: 50%/50%; //简写属性:border-radius:50%
    background: brown;
}
复制代码
11、图片居中显示
object-fit: cover;
复制代码

vue相关问题

1、vue 如何获取拉回数据后图片的高度?
<img
    :src="userInfo.profilePicture"
    alt
    class="img-picture"
    v-if="userInfo.profilePicture"
    ref="myImg"
    @load="imageFn"
>
 imageFn() {
    console.log(this.$refs.myImg.offsetHeight);
    console.log(this.$refs.myImg.offsetWidth);
 },
复制代码
2、vue中同一个dom节点,v-if与v-for不推荐同时使用,官方解答:

不推荐同时使用 v-if 和 v-for。 当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级

3、vue v-for 中更改item 属性值后,v-show不生效的问题
添加this.$forceUpdate();进行强制渲染,效果实现。
因为数据层次太多,render函数没有自动更新,需手动强制刷新。
复制代码
4、这个离开守卫通常用来禁止用户在还未保存修改前突然离开。该导航可以通过 next(false) 来取消
beforeRouteLeave(to, from, next) {
    if (to.path === '/votes/subject') {
        next('/task-list');
    } else {
        next();
    }
}
复制代码
5、element UI 自定义传参的解决方法

这里的handleSelect默认绑定的参数是选中的那条数据。如果一个页面有好几个相同的组件,要想知道选的是哪个?

<el-autocomplete
    v-model="state4"
    :fetch-suggestions="querySearchAsync"
    placeholder="请输入内容"
    @select="handleSelect"
></el-autocomplete>
复制代码

解决方案:

<el-autocomplete
    v-model="state4"
    :fetch-suggestions="querySearchAsync"
    placeholder="请输入内容"
    @select="((item)=>{handleSelect(item, index)})"
    // 写个闭包就可以了,index表示第几个组件
></el-autocomplete>
6、element-UI 框架 el-input 触发不了 @key.enter事件
<el-input v-model="form.loginName" 
placeholder="账号" 
@keyup.enter="doLogin">
</el-input>

解决方案:使用@key.center.native

<el-input v-model="form.loginName"
placeholder="账号" 
@keyup.enter.native="doLogin">
</el-input>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值