zoukankan      html  css  js  c++  java
  • CSS隐藏一个元素的方法?

    height或者width设置为0
    display:none
      元素不会渲染到页面上,不会占据位置,事件不会响应
    visibility:hidden
      元素的位置会被保留,它只会导致浏览器重绘而不会重排,事件不会响应,适用于  那些元素隐藏后不希望页面布局会发生变化的场景
    opacity:0
      透明度为0,位置会保留,事件会响应
    position:
      将元素定位到可视窗口之外,或者配合overflow:hidden将元素定位到某个元素之外,超出隐藏
    z-index
      设置z-index属性层叠,将元素隐藏到某个元素后面
    Clip-path
      该属性很少见,该属性是通过裁剪的方法实现隐藏的。被隐藏的内容依然占据着那个位置,它周围的元素的行为就如同它可见时一样。用户交互例如鼠标悬停或者点击在剪裁区域之外也不可能生效。此外,这个属性能够使用各种过渡动画来实现不同的效果。

     

    Clip-path的使用
      定义一个矩形:
    inset()可以传入5个参数,分别对应top,right,bottom,left的裁剪位置,round radius(可选,圆角)
    //示例
    clip-path: inset(2em 3em 2em 1em round 2em);
      定义一个圆:
    circle()可以传人2个可选参数;
    1. 圆的半径,默认元素宽高中短的那个为直径,支持百分比
    2. 圆心位置,默认为元素中心点
    //示例
    clip-path: circle(30% at 150px 120px);
      定义一个椭圆:
    ellipse()可以传人3个可选参数;
    1. 椭圆的X轴半径,默认是宽度的一半,支持百分比
    2. 椭圆的Y轴半径,默认是高度的一半,支持百分比
    3. 椭圆中心位置,默认是元素的中心点
    //示例
    clip-path: ellipse(45% 30% at 50% 50%);
      定义一个多边形:
     polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )
    <fill-rule>可选,表示填充规则用来确定该多边形的内部。可能的值有nonzero和evenodd,默认值是nonzero
    后面的每对参数表示多边形的顶点坐标(X,Y),也就是连接点
    //示例
    clip-path: polygon(50% 0,100% 50%,0 100%);    
     
    三角形:-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    平行四边形:-webkit-clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
    五边形:-webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
    六边形:-webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    五角星:-webkit-clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
    叉号:-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);

     

    并且该属性支持transition过渡效果,可以通过它做一些动画效果
    但前提是相同的裁剪函数,及相同的参数个数
    //样式
    .box{
      100px;
      height: 100px;
      background:orange;
      clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
      transition:.5s clip-path;
    }  
    .box:hover{
      clip-path:polygon(0 0,50% 0,50% 100%,0 100%);
    }
    
    //标签
    <div class="box"></div>
     
  • 相关阅读:
    Codeforces Round #455 (Div. 2) A. Generate Login【贪心】
    Codeforces Round #315 (Div. 2)【贪心/重排去掉大于n的元素和替换重复的元素】
    CSU-ACM2018寒假集训选拔-入门题
    Codeforces Round #454 C. Shockers【模拟/hash】
    Nowcoder Girl 参考题解【待写】
    2017吉首大学新生赛
    P1450 包裹快递 RP+14【二分】
    NewCode
    2017年浙江工业大学大学生程序设计迎新赛决赛题解
    Codeforces Round #451 (Div. 2) B. Proper Nutrition【枚举/扩展欧几里得/给你n问有没有两个非负整数x,y满足x·a + y·b = n】
  • 原文地址:https://www.cnblogs.com/cqweb/p/14183076.html
Copyright © 2011-2022 走看看