欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端知识点部分总结

程序员文章站 2022-05-10 11:49:11
...

前端知识点总结

多行文本溢出

  • 部分浏览器兼容(Chrome、Safari、Opera)

    .div{
        overflow:hidden;
        display:-webkit-box !important;
        text-overflow:ellipsis;                 //隐藏的部分用...表示
        word-break:break-all;                     //自动换行
        -webkit-box-orient:vertical;            //垂直方向
        -webkit-line-clamp:3;                   //显示3行隐藏
    }
    

    这种办法很好用,但是兼容性不够

  • 对于IE和Firefox

    .div{
        line-height:1.5rem;
        height:4.5rem;
        overflow:hidden;
    }
    

    但是这种办法,太过于绝对,硬性规定了文本的高度,不具有拓展性

float部分浏览器不能显示高度

    html:
    <div class="content">
        <div class="left">...</div>
        <div class="right">...</div>
    </div>

    css:
    .content{border:1px solid #ccc}
    .left{float:left;}
    .right{float:left;}

如果.content内部div设置了float对齐方式,那么.content将没有高度,border就不能把里面的内容包含

html:
<div class="content">
    <div class="left">...</div>
    <div class="right">...</div>
    <div class="clearbox">...</div>
</div>

css:
.content{border:1px solid #ccc;}
.left{float:left;}
.right{float:left;}
.clearbox{clear:both;}

加入.clearbox清除浮动;.content就能够把里面的内容全部包含在内容里面

如何让大图片居中,不被压缩

html:
<div class="img"></div>

css:
.img{background:url(..) no-repeat top center;}

将图片当作背景图片,这样就可以居中,很适用于响应式布局,浏览器宽度改变,图片很能很好的看到效果

不定宽高的水平居中

  • 通用版

    css:
    .div{
        position:absolute;
        top:50%;
        left:50%;
        -webkit-transform:translate(-50%,-50%);
        z-index;10;
    }
    
  • flex box版

    css:
    .div{
        display:flex;
        display:-webkit-flex;             
        justify-content:center;           //子元素水平居中
        align-items:center;               //子元素水平居中
    }
    

这种办法就是要解决兼容性问题

Flexbox兼容性

  • android4.4以下(旧flexbox布局)

    css:
    .div{
        display:-webkit-flex-box;
        -webkit-flex-box:1;
        box-pack:center;
        box-align:center;
    }
    
  • android4.4以上(新flex布局)

    css:
    .div{
        display:-webkit-flex;
        -webkit-flex:1;
        justify-content:center;
        align-items:center;
    }
    

移动开发的一像素边框

    css:
    .div{
        position:relative;
    }
    .div + .div:bofore{
        position:absolute;
        top:-1px;
        left:0;
        content:'';
        width:100%;
        height:1px;
        border-top:1px solid #ccc;
        -webkit-transform:scaleY(0.5);
    }

js部分

随浏览器滚动的js

    css:
    .window_move{
        position:fixed;
        top:60px;
    }

    js:
    $(function(){
        //先获取你选择的盒子
        var $div = $("#per_person");
        //浏览器滚动的事件                   
        $(window).scroll(function(){
            //计算浏览器到这个盒子的高度height
            //$div.offset().top就是浏览器加载出来盒子距离top的高度,不随浏览器滚动改变
            //$(window).scrollTop()浏览器向下滚动了多少距离        
            var height = $div.offset().top - $(window).scrollTop();
            if(height <= 60 ){
                $div.addClass("window_move").removeClass("window_on");
            }
            var height_2 = $div.offset().top;
            if(height_2 < 245){
                $div.addClass("window_on").removeClass("window_move");
            }
        })
    })

该效果是我写个人中心的资料卡,先relative定位,当距离浏览器60px时fixed布局;

不一样的登陆提示框

    html: 
    <div class="div_login">
        <div class="login_close">
            <span id="login_close" class="glyphicon glyphicon-remove"></span>
        </div>
        <div class="login_header">
            <h3>用户登录</h3>
        </div>
        <ul>
            <li>
                <span class="glyphicon glyphicon-user"></span>
                <input type="text" name="username" id="username" class="login_input"/>
                <span class="login_span">用户名/手机/邮箱</span>
            </li>
            <li>
                <span class="glyphicon glyphicon-lock"></span>
                <input type="password" name="password" id="password" class="login_input"/>
                <span class="login_span">请输入密码</span>
            </li>
        </ul>

        <button type="submit" id="login_sub" class="btn">登录</button>     
        <a href="regist.html" id="reg_ontime">立即注册</a>   

    </div>

    css:
    .div_login {
        position: fixed;
        width: 460px;
        height: 326px;
        background-color: white;
        z-index: 10;
        margin-left: 350px;
        border-radius: 6px;
        top: 220px;
        border: 2px solid rgb(27,129,62);
    }
    .div_login h3 {
        margin-top: 0;
        padding: 10px;
        margin-left: 162px;
        color: white;
        letter-spacing: 2px;
        text-shadow: 2px 2px 1px #333;
    }
    .login_header {
        background: rgb(27,129,62);
        border-top-left-radius: 5px;
    }
    .div_login li {
        margin-left: 82px;
        margin-top: 45px;
        display: block;
        position: relative;
    }
    .div_login .glyphicon {
        font-size: 18px;
        color: #444;
        position: absolute;
        top: 4px;
    }
    .div_login .glyphicon:hover{
        cursor: default;
    }
    .div_login input{
        border: none;
        border-bottom: 1px solid #ccc;
        width: 250px;
        padding-left: 10px;
        padding-bottom: 2px;
        margin-left: 30px;
        z-index: 10;
    }
    #login_sub {
        border: 1px solid #ccc;
        height: 34px;
        padding-top: 0;
        line-height: 34px;
        margin-left: 125px;
        width: 203px;
        margin-top: 25px;
        font-size: 16px;
        background-color: rgb(27,129,62);
        color: white;
        text-shadow: 2px 2px 1px #333;
    }
    #reg_ontime {
        position: absolute;
        bottom: 5px;
        right: 11px;
        color: rgb(27,129,62);
    }
    #reg_ontime:hover{
        text-decoration: none;
    }
    .login_span {
        position: absolute;
        color: #888;
        letter-spacing: 2px;
        margin-left: -238px;
    }
    .span_find{
        margin-top: -25px;
    }
    .login_close {
        width: 25px;
        height: 25px;
        position: absolute;
        top: -10px;
        right: -10px;
        background-color: white;
        border-radius: 15px;
    }
    .login_close:hover {
        background-color: #ccc;
    }
    .login_close .glyphicon.glyphicon-remove {
        top: 6px;
        left: 5px;
        color: rgb(34,125,81);
        font-size: 16px;
    }
    .login_close .glyphicon.glyphicon-remove:hover{
        cursor: pointer;
        color: rgb(27,129,62);
    }

    js:
    $(".login_input").click(function(){
        if(this.value==""){
            $(this).css("border-bottom","1px solid rgb(27,129,62)")
                .siblings(".login_span").addClass("span_find");
        }
    });
    $(".login_input").blur(function(){
        if(this.value==""){
            $(this).css("border-bottom","1px solid #ccc");
            $(this).siblings(".login_span").removeClass("span_find");
        }
    });

登陆的输入框里的提示内容鼠标点击时不会消失,而是向上移一格,这里这是部分代码,可能会有一点问题,看全部代码,可以去在github上面看完整的代码,我的仓库([email protected]:cao029/School-record.git)里面的美发网站。