• css高级技巧


     

     

    一  元素的显示与隐藏

    1)display实现

    display:none;  //隐藏元素
    display:block; //显示元素

    display:block; 不光有转换块元素的功能,还有显示的功能

    特点:隐藏元素 不保留位置

    2)visibility实现

    visibility  [ˌvɪzəˈbɪləti] 可见性
    visible  [ˈvɪzəbl]  adj.看得见的;可见的;明显的;能注意到的
    
    visibility: hidden;  // 1 隐藏
    visibility: visible; // 2 显示
    
    特点:隐藏元素 保留位置

    3)overflow 溢出

    4)三种溢出总结

     5)小案例练手

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    /*1 父盒子里面原来就有一个黑色半透明的盒子 刚开始隐藏起来了*/
    .box {
    position: relative;
    height: 222px;
    220px;
    margin: 50px auto;
    }
    .mask {
    position: absolute;
    left: 0;
    top: 0;
    display: none;
    222px;
    height: 220px;
    background: rgba(0,0,0,.3) url(image/arr.png) no-repeat center center;
    }
    /*2 当鼠标经过的时候 让黑色半透明盒子显示*/
    .box a:hover .mask {
    display: block;
    }
    </style>
    </head>
    <body>
    <div class="box">
    <a href="">
    <div class="mask"></div>
    <img src="image/3.jpg">
    </a>
    </div>
    </body>
    </html>
     效果: 鼠标滑动的时候 显示遮罩层和播放按钮 

    二 更改用户样式

    1)改变光标样式 cursor

    <ul>
    <li style="cursor: default">默认 小白箭头样式</li>
    <li style="cursor: pointer">小手样式</li>
    <li style="cursor: move">四个箭头移动样式</li>
    <li style="cursor: text">表单输入焦点样式</li>
    <li style="cursor: not-allowed">禁止输入样式</li>
    </ul>

     2)input的轮廓线

    <input style="outline: none|0" type="text"/> //去除轮廓线

    3)防止拖拽文本域

    <textarea style="resize: none" rows="5" cols="5">

    4)用户样式总结

    三 垂直居中 vertical-algin

    块元素水平居中:margin: 0 auto;

    文字水平居中:text-algin: center;

    行内元素和行内块元素垂直居中 vertical-align: middle [ 对块元素不起作用 ]

     

     参数值

    baseline  //1 基线对齐 [ 默认值 ]
    top       //2 顶线对齐
    middle    //3 中线对齐
    bottom    //4 底线对齐
    <div>
        <!--让图片的顶线 和 文字的顶线对齐  -->
        <img src="image/3.jpg" style="vertical-align: top">woshiggegedkjgfdj
    </div>
    <div>
        <!--让图片的中线 和 文字的中线对齐  -->
        <img src="image/3.jpg" style="vertical-align: middle">woshiggegedkjgfdj
    </div>
    <div>
        <!--让图片的底线 和 文字的底线对齐  -->
        <img src="image/3.jpg" style="vertical-align: bottom">woshiggegedkjgfdj
    </div>

     

     

    <div style="border: #00A3FA solid 1px;">
        <img src="image/3.jpg" style="vertical-align: middle">
    </div>

    四 溢出文本省略号

    white-space
    normal 一行显示不开的时候,自动换行 [ 默认 ]
    pre 用等宽字体显示预先格式化的文本。
    nowrap 强制在一行显示文本 直到文本结束 或 遇到 br 才换行

     三部曲 

    //1 先强制在一行内显示文本
    white-space: nowrap;

    //2 超出部分隐藏
    overflow: hidden

    //3 文字用省略号替代超出的部分
    text-overflow: ellipsis;

     代码实现

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            .box {
                 200px;
                height: 30px;
                background: pink;
                white-space: nowrap;//第一步
                overflow: hidden;//第二步
                text-overflow: ellipsis;//第二步
            }
        </style>
    </head>
    <body>
    <div class="box">你好 世界,我将保持初心,保持善良</div>
    </body>
    </html>

    五 精灵技术 [ 重要 ]

    网页中的 X轴向右   向左是负值

    网页中的Y轴向下  向上是负值

    六  滑动门

    七  负值的应用

    1)margin负值 + 定位  实现定位盒子垂直 或 水平居中

     2)压住盒子相邻边框

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>压住盒子相邻边框</title>
    <style>
    div {
    float: left;
    margin-left: -1px;
    200px;
    height: 200px;
    border: 1px solid #000;
    }
    </style>
    </head>
    <body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    </body>
    </html>
    原理:
    1 所有的盒子必须有浮动属性,因为浮动的盒子是紧贴在一起的
    2 第一个盒子向左移动-1像素后,后面的盒子因为有浮动属性,赶紧贴了过了
    3 后面的盒子又执行了向左-1px,所有才能压住左边盒子的右边框

    2)鼠标滑过显示一个有颜色的边框

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>鼠标经过显示有颜色的边框</title>
        <style>
            div {
                float: left;
                margin-left: -1px;
                 200px;
                height: 200px;
                border: 1px solid #000;
            }
            div:hover {
                position: relative;
                border: #00A3FA 1px solid;
                /*当我们鼠标经过的时候 右侧的边框被-1压住了*/
                /*解决思路:我们让当前盒子升上来 压住右侧的盒子*/
                /*定位>浮动>标准流 所以我们添加浮动属性*/
                /*浮动只能添加相对定位 因为需要保留盒子的位置*/
            }
        </style>
    </head>
    <body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    </body>
    </html>

    都是浮动的盒子,我们给想突出显示的盒子添加定位,它的层级就比浮动的高

    都是有定位的盒子,我们给想突出显示的盒子设置 Z轴数值   z-index

    八 三角

    p {
    /*宽度高度必须填写*/
     0;
    height: 0;
    border-style: solid;
    border- 10px;
    border-color:  transparent transparent transparent red;
    /*为了照顾兼容性 添加一下两条*/
    font-size: 0;
    line-height: 0;
    }
    
    <p></p>

    京东三角

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            div {
                position: relative;
                 200px;
                height: 50px;
                background: pink;
                margin: 100px auto;
            }
            p {
                position: absolute;
                top: -20px;
                left: 50%;
                margin-left: -10px;
                 0;
                height: 0;
                border-style: solid;
                border- 10px;
                border-color: transparent transparent brown transparent;
                font-size: 0;
                line-height: 0;
            }
        </style>
    </head>
    <body>
    <div>
        <p></p>
    </div>
    </body>
    </html>
  • 相关阅读:
    jQuery 核心
    Visual Studio 文件没发布出来
    冷门JS技巧
    项目发布: error CS0103: 当前上下文中不存在名称“*****”
    jQuery编程的最佳实践
    HTML5中类jQuery选择器querySelector的使用
    html dl dt dd标签元素语法结构与使用
    EF Code First 更新数据库, 数据库迁移
    ASP.NET MVC中的拦截器
    C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/14338502.html
Copyright © 2020-2023  润新知