Css不常用的方法

2023-11-07

flex布局换行之后,下面一行的布局会异常

.homeItemBox{  
display: flex;  
flex-wrap: wrap; 
 justify-content: flex-start;
 }
.homeItem{  
  display: flex;  
  width: calc((100% - 20rpx) / 4); 
 flex-direction: column;  align-items: center;  
 flex-shrink: 0;   
 margin-top:30rpx;
 }

.homeItem:nth-of-type(4n+0){margin-right: 0;}  //每一行的第四个margin right是0

nth-of-type(4n+0)

  • 4n+0 就是每隔四个
  • odd even关键词表示奇偶数这个是算术表达式

p:nth-of-type(3n+0)使用公式 (an + b)。
描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。在这里,
我们指定了下标是 3 的倍数的所有 p 元素的背景色

flex-shrink: 0;

倘若给父元素设置了flex布局后,若要其子元素的width有效果,必须给子元素设置flex-shrink为0
来固定元素不被挤压

filter

filter:brightness 亮度/曝光度
filter:brightness(0.2)
filter: opacity( %) ---- 透明度
filter: drop-shadow(offset-x offset-y blur color) ---- 阴影
filter:drop-shadow(10px 15px 20px #000)
filter: grayscale( %) ---- 灰度图像
filter: sepia( %) ---- 深褐色
filter: hue-rotate( deg ) ---- 色相旋转
filter: invert( %) ---- 反转图像 使用invert滤镜可以把对象的可视化属性全部翻转,包括色彩、饱和度和亮度值
filter: saturate( %) ---- 饱和度
filter: contrast( %) ---- 对比度 值0%代表全灰色图像,而100%代表原始图像
filter: blur( px) ---- 高斯模糊

全站置灰

html {    
filter: grayscale(.95); 
-webkit-filter: grayscale(.95);
}

filter VS backdrop-filter

  • filter:该属性将模糊或颜色偏移等图形效果应用于元素。
  • backdrop-filter:该属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。它适用于元素背后的所有元素,为了看到效果,必须使元素或其背景至少部分透明。
  • 两者之间的差异,filter 是作用于元素本身,而 backdrop-filter 是作用于元素背后的区域所覆盖的所有元素。而它们所支持的滤镜种类是一模一样的。
  • backdrop-filter 最为常见的使用方式是用其实现毛玻璃效果。
    filter 和 backdrop-filter 使用上最明显的差异在于:
    filter 作用于当前元素,并且它的后代元素也会继承这个属性
    backdrop-filter 作用于元素背后的所有元素
    仔细区分理解,一个是当前元素和它的后代元素,一个是元素背后的所有元素。

inset

inset 属性只作用于定位元素
inset 属性用作定位元素的 top、right、bottom、left 这些属性的简写。类似于 margin 和 padding 属性,依照“上右下左”的顺序。

置灰网站的首屏

兼容更好的混合模式

 html{            
 position:relative;            
 width: 100%;            
 height: 100%;            
 overflow: scroll;            
 background-color: #fff;        
 }       
  html::before{           
   content:"";            
   position:absolute;        
   inset:0;         
   background: rgba(0,0,0,1);
                      /* mix-blend-mode: color; 颜色*/            
                      /* mix-blend-mode: hue; 色相*/            
    mix-blend-mode: saturation;  //饱和度
            以上三种模式都可
     pointer-events: none;             /* 点击穿透 */           
      z-index:10;        
    }       
     .box{          
       background: url('./one.png'),url('./two.png');            
       background-size: cover;            
        width: 400px;           
        height: 400px;            
        background-blend-mode:lighten;      
     }
    

backdrop-filter 实现一种遮罩滤镜效果

 html {           
  width: 100%;           
   height: 100%;           
    position: relative;           
     overflow: scroll;        
     }     
        html::before {           
         content: '';           
          position: absolute;           
           width: 100%;           
            height: 100%;          
              z-index: 10;           
               inset: 0;            
               backdrop-filter: grayscale(0.9);           
                pointer-events: none;        
                }

table使用

子元素均分父元素的长度

display:table-row; //padding和margin会失效
父元素设置display: table时; 注意padding会失效
子元素设置 display: table-cell; //margin会失效

h3{           
 display: table-cell;        
}
nav{           
 display: table;           
 width:100%;            
position: sticky;          
  top:0;            
background-color: red;        
}
 <nav>      
  <h3>导航1</h3>        
<h3>导航2</h3>       
 <h3>导航3</h3>   
 </nav>

利用table居中

.parentBox{ 
 display: table;  
width: 100vw; 
 height: 600rpx;  
 border:1px solid #AAA;
 }
 .sonItem{  
 display: table-cell;  
 vertical-align: middle; 
  text-align: center;
  }

吸顶

注意如果父元素设置了overflow-hidden 则吸顶会失效

  width:100%;         
   position: sticky;            
   top:0;

滚动视差 background-attachment

视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验

     <div class="gImg gImg1"></div>
  <div class="gImg gImg2"></div>
  <div class="gImg gImg3"></div>

.gImg{
        height: 100vh; 
        width: 100%;
        background-attachment:fixed;
        background-size: cover;
        background-position: center center;
    }
    .gImg1{
        background-image: url('./one.png');
    }
    .gImg2{
        background-image: url('./two.png');
    }   
    .gImg3{
        background-image: url('./three.png');
    }

效果大概就是
在这里插入图片描述

CSS3 transform 中的 matrix

在这里插入图片描述
2D 的转换是由一个 3*3 的矩阵表示的,前两行代表转换的值,分别是 a b c d e f,要注意是竖着排的,第一行代表 x 轴发生的变化,第二行代表 y 轴发生的变化,第三行代表 z 轴发生的变化,因为这里是 2D 不涉及 z 轴,所以这里是 0 0 1。

  • 缩放 scale对应的是矩阵中的 a 和 d,x 轴的缩放比例对应 a,y 轴的缩放比例对应 d,

  • 平移 translate对应的是矩阵中的 e 和 f,平移的 x 和 y 分别对应 e 和 f。

  • 偏移 skew对应矩阵中的 c 和 b x 对应 c,y 对应 b, 这个对应并不是相等,需要对 skew 的 x 值 和 y 值进行 tan 运算。transform: matrix(a, tan(30deg), tan(20deg), d, e, f)

  • 旋转 rotate影响的是a/b/c/d四个值 a=cosθ b=sinθ c=-sinθ d=cosθ
    将 30° 转换为弧度,传递给三角函数计算

// 弧度和角度的转换公式:弧度=π/180×角度 
const radian = Math.PI / 180 * 30 // 算出弧度
const sin = Math.sin(radian) // 计算 sinθ
const cos = Math.cos(radian) // 计算 cosθ
所以这个: transform: scale(1,5, 1.5) translate(0, 190.5)
对应: transform: matrix(1.5, 0, 0, 1.5, 0, 190.5);

如果旋转+缩放+偏移+位移一起的话
按照transform里面rotate/scale/skew/translate所写的顺序相乘。
在这里插入图片描述

利用js控制css

通过js修改body的css变量

body{
  width:100vw;
  height:100vh;
  overflow: hidden;
  background-color: #111;
  perspective: 1000px;
  --c-eyeSocket:rgb(41,104,217);
  --c-eyeSocket-outer:#02ffff;
  --c-eyeSocket-outer-shadow:transparent;
  --c-eyeSocket-inner:rgb(35,22,140);
}

// 通过js修改body的css变量
     document.body.style.setProperty('--c-eyeSocket','rgba(255,187,255)');

//css使用css变量
.eyeSocket::before {
  width: calc(100% + 20px);
  height: calc(100% + 20px);
  border: 6px solid var(--c-eyeSocket);
}

js控制设置当前的元素上面的类名来控制动画

this.$refs.bigEye.className = 'eyeSocket eyeSocketSleeping'


.eyeSocket {
  position: absolute;
  left: calc(50%-75px);
  top: calc(50%-75px);
  width: 150px;
  aspect-ratio: 1;
  border-radius: 50%;
  z-index: 1;
  border: 4px solid var(--c-eyeSocket);
  box-shadow: 0px 0px 50px var(--c-eyeSocket-outer-shadow);
  /* 当生气时添加红色外发光,常态则保持透明 */
  transition: border 0.5s ease-in-out,box-shadow 0.5s ease-in-out;
  /* 添加过渡效果 */
}
.eyeSocket::before,
.eyeSocket::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  box-sizing: border-box;
  transition: all 0.5s ease-in-out;
}
.eyeSocket::before {
  width: calc(100% + 20px);
  height: calc(100% + 20px);
  border: 6px solid var(--c-eyeSocket-outer);
}
.eyeSocket::after {
  width: 100%;
  height: 100%;
  border: 4px solid var(--c-eyeSocket-inner);
  box-shadow: inset 0px 0px 30px var(--c-eyeSocket-inner);
}
.eyeSocketSleeping{
  animation:sleeping 6s infinite;
}
@keyframes sleeping {
  0%{
    transform: scale(1);
  }
  50%{
    transform: scale(1.2);
  } 
  100%{
    transform: scale(1);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Css不常用的方法 的相关文章

  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red
  • 无法正确显示行

    我应该在这个问题的开头说我完全没有 html css javascript 背景 所以请对我宽容点 如果我使用了错误的术语或者问了一个愚蠢的问题 没有提供足够的信息 请抱歉 我正在尝试让一个可扩展的表工作 通过阅读论坛线程 教程 将 nex
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮
  • IE 11 中的 CSS Display Flex 无法正常工作,图像会溢出

    我正在使用 CSSdisplay flex 以某种方式显示它们 在 Chrome 中 它看起来很完美 很漂亮 但在 IE 中 图像超出了我放置它们的元素 https jsfiddle net m42k7Lk5 8 https jsfiddl
  • Chrome:当父级固定时,无法将一个绝对 div 放置在另一个 div 上

    我发现 当我想要位于顶部的 div 的父级固定时 我无法将一个绝对定位的 div 放置在 Chrome 中的另一个 div 上 div div div div div div 这是演示该问题的 JSFiddle http jsfiddle
  • 如何为 HTML 元素创建鼠标拖动滑块?

    我发现的许多滑块插件要么仅单击以查看下一个图像 要么如果它们确实具有鼠标拖动或触摸拖动功能 则仅允许图像 有谁知道为任何 html 元素编写鼠标拖动滑块的插件或可能的方法 我专门使用 SVG 但将来如果能在 div 元素之间滑动就更好了 H
  • 如何在不使用变换或顶部/左侧的情况下转换列表中项目的位置

    有一天我偶然发现一个例子 https codepen io itslit pen gvKrMY它使用 Vue js 但我的问题更多是关于 Vue 用于实现状态之间转换的 CSS 和 HTML 卡片暂时获得等级 shuffleMedium m
  • 如何隐藏div元素中太长的文本?

    如何隐藏 div 中的溢出 如果文本比 div 长 则文本将换行到新行 div style width 50px border 1px solid black test test test test div 也许是 CSS 属性text o
  • 如何在更大的 div 中垂直和水平居中一个 div?

    如何将一个 水平居中于另一个 中 我设法使用已接受答案中的样式水平居中 我怎样才能让它垂直居中 内部 div 的高度未知 https stackoverflow com questions 114543 how to center div
  • 将图像作为框架放置在 iframe 周围?

    我有一个网站尝试以移动格式显示 但在宽屏幕上 我确信 iframe 是正确的选择 我正在尝试将 iframe 加载到 iPhone 的图像中 你可以看一个例子here http webfro gs south tour iframe tes
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 图像背景不透明度不影响边框

    如何设置背景不透明度而不影响边框线不透明度 我找到的解决方案没有帮助 div class selected img src assets img image product 1 thumbnail jpg alt product 1 thu
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad

随机推荐

  • 09_Redux的应用

    目录 一 什么是redux 二 redux的应用 2 1 求和案例 2 1 1 纯react版本 2 1 2 redux版本 1 测试版本 2 正式版本 三 react redux 3 1 react redux的使用 1 UI组件 com
  • Windows安装Python(图解)亲测有效!!!

    目录 1 下载Python 2 安装 2 1 自定义安装 并添加 环境变量 2 2 中间多步 Next 3 测试是否安装成功 在 Windows 上安装 Python 和安装普通软件一样简单 下载安装包以后猛击 下一步 即可 如果安装多个版
  • Zabbix的聚合图形配置

    Zabbix的聚合图形配置 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形
  • C程序设计(第四版)学习笔记

    1 for语句 for fahr 0 fahr lt 300 fahr fahr 20 第一部分是初始化部分 仅在进入循环前执行一次 第二部分是条件部分 如果结果值为真 则执行循环体 此后将执行第三部分 增加步长 2 我们通常把函数定义中圆
  • Tensorflow中with tf.Session as sess 与 sess = tf.Session 的区别(学习笔记一)

    第一部分 python中with as 的用法 本文转自https blog csdn net weixin 42118374 article details 80437050 纯属为了个人收藏查阅用 如侵权 请联系删除 谢谢 结论就是 w
  • jeesite上传文件

    RequestMapping value saveFile public String saveFile Document document Model model RedirectAttributes redirectAttributes
  • 报错Unmet dependencies. Try ‘apt --fix-broken install‘ with no packages (or specify a solution).解决方法

    在Ubuntu中用apt get安装软件 系统报出Unmet dependencies错误 Unmet dependencies Try apt fix broken install with no packages or specify
  • windows10下编译zlib库

    系列文章目录 文章目录 系列文章目录 前言 一 问题原因 二 准备 具体操作 编译zlib工程 前言 我使用CMake编译zlib源码 出现警告 CMake Deprecation Warning at CMakeLists txt 1 c
  • 0.0.0.0,localhost,127.0.0.0的区别

    一 0 0 0 0 不同场景不同意思 在服务器中 0 0 0 0表示本机上的任意ip地址 比如本机有内外网两个ip 那么当服务A开通0 0 0 0的访问后 通过两个ip都可以访问服务A 比如 3306端口监听在127 0 0 1 只有本机客
  • 【pytorch图像分类】AlexNet网络结构

    目录 1 前言 2 网络创新 过拟合 LRN Local Response Normalization 归一化 3 网络结构图 4 代码实现 5 总结 1 前言 AlexNet 是 2012 年 ISLVRC2012 Image Large
  • 一个成熟的软件测试工程师应该具备那些“技能”

    1 良好的沟通 相信大家都在网上看到过各种吐槽程序员不解风情的段子 开怀大笑之余深思 作为一个测试工程师又何尝不是如此 通常沟通技能成为横亘在测试工程师与其他合作部门之间的万丈鸿沟 也成为测试工程师成长的最大瓶颈 下面的这些情况你是不是经常
  • 支持向量机(SVM)之核函数

    0x00 摘要 本文在少用数学公式的情况下 尽量仅依靠感性直觉的思考来讲解支持向量机中的核函数概念 并且给大家虚构了一个水浒传的例子来做进一步的通俗解释 0x01 问题 在学习核函数的时候 我一直有几个很好奇的问题 Why 为什么线性可分很
  • ios申请企业开发者账号的代理_苹果开发者账号个人、公司、企业账号的申请和区别...

    今天科普一下 苹果开发者账号 个人 公司 企业的费用以及权限 介于很多小伙伴不知道苹果开发者账号的区别 经常有人联系我让我申请 但工作繁多 不能一一帮忙 请见谅 目前 苹果开发者账号可分为三种类型 个人 公司 企业 且三者的费用以及权限等不
  • Python入门--函数

    函数是一组可重复使用的代码块 它们执行特定的任务 在Python中 函数是一等公民 这意味着它们可以像其他数据类型一样被传递 操作和存储 函数使代码更加模块化 易于重用和维护 定义函数的语法如下 def function name para
  • 等保差距测评价格

    http www docin com p 526444503 html
  • 3、使用Lucene实现千度搜索

    1 新建Web项目 新建一个Web项目 我命名为SearchEngine 然后导入Java包 除了上篇博客中的Jar包外 我还引入了 IKAnalyzer2012 FF jar 包和struts2的相关包 IKAnalyzer 是用来进行中
  • 【js逆向】常用js Hook脚本--js逆向必备工具

    JS hook 脚本 hook又称钩子 可以在调用系统函数之前 先执行我们的函数 例如 hook eval eval eval 先保存系统的eval函数 eval function s console log s debugger retu
  • 测试工程师在团队中没地位怎么办?

    为什么会出现这样的问题 首先自查 为什么自身 组织在团队中的地位没那么高 影响力没那么大 在一个项目团队中 每一个角色都是不可或缺的 若出现某一个角色地位比较低 不被信任 那这个角色就要检查自己了 从测试的角度来看 如果一个开发同学经常犯错
  • Docker容器与虚拟化技术:Docker compose部署LNMP

    目录 一 理论 1 LNMP架构 2 背景 3 Dockerfile部署LNMP 3 准备Nginx镜像 4 准备MySQL容器 5 准备PHP镜像 6 上传wordpress软件包 7 编写docker compose yml 8 构建与
  • Css不常用的方法

    flex布局换行之后 下面一行的布局会异常 homeItemBox display flex flex wrap wrap justify content flex start homeItem display flex width cal