CSS高级用法

2023-11-05

收藏一些css的高级用法:

1、黑白图像

这段代码会让你的彩色照片显示为黑白照片

1
2
3
4
5
6
7
img.desaturate {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
}


2、使用 :not() 在菜单上应用/取消应用边框

先给每一个菜单项添加边框

1
2
3
4
/* add border */
.nav li {
  border-right: 1px solid #666;
}

……然后再除去最后一个元素……

1
2
3
4
// remove border /
.nav li:last-child {
  border-right: none;
}

……可以直接使用 :not() 伪类来应用元素:

1
2
3
.nav li:not(:last-child) {
  border-right: 1px solid #666;
}

这样代码就干净,易读,易于理解了。

当然,如果你的新元素有兄弟元素的话,也可以使用通用的兄弟选择符(~):

1
2
3
.nav li:first-child ~ li {
  border-left: 1px solid #666;
}

3、页面顶部阴影

下面这个简单的 CSS3 代码片段可以给网页加上漂亮的顶部阴影效果:

1
2
3
4
5
6
7
8
9
10
11
12
body:before {
          content: "";
          position: fixed;
          top: -10px;
          left: 0;
          width: 100%;
          height: 10px;
          -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
          -moz-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
          box-shadow: 0px 0px 10px rgba(0,0,0,.8);
          z-index: 100;
}

4、逗号分隔的列表

让HTML列表项看上去像一个真正的,用逗号分隔的列表:

1
2
3
ul > li:not(:last-child)::after {
  content: ",";
}

5、优化显示文本

有时,字体并不能在所有设备上都达到最佳的显示,所以可以让设备浏览器来帮助你:

1
2
3
4
5
html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

6、CSS3 calc() 的使用

calc() 用法类似于函数,能够给元素设置动态的值:

1
2
3
4
5
6
7
8
9
10
/* basic calc */
.simpleBlock {
  width: calc(100% - 100px);
}
/* calc in calc */
.complexBlock {
  width: calc(100% - 50% / 3);
  padding: 5px calc(3% - 2px);
  margin-left: calc(10% + 10px);
}

7、文本渐变

文本渐变效果很流行,使用 CSS3 能够很简单就实现:

1
2
3
4
5
6
7
8
9
10
11
h2[data-text] {
  position: relative;
}
h2[data-text]::after {
  content: attr(data-text);
  z-index: 10;
  color: #e3e3e3;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(50%, rgba(0,0,0,1)), to(rgba(0,0,0,0)));}

8、禁用鼠标事件

CSS3 新增的 pointer-events 让你能够禁用元素的鼠标事件,例如,一个连接如果设置了下面的样式就无法点击了。

1
.disabled { pointer-events: none; }

9、文本模糊

简单但很漂亮的文本模糊效果,简单又好看!

1
2
3
4
.blur {
   color: transparent;
   text-shadow: 0 0 5px rgba(0,0,0,0.5);
}

10、DIV可编辑,就是让一个div变成一个类似input输入框的效果。

在div中添加contentEditable=”true”属性就可以了,如下:

1
2
3
4
5
<div id="div1" contentEditable="true"  ></div>  

<div id="div2" contentEditable="true" ></div>  

 <div contentEditable="true"  id="div3"></div>

其中,我后面有篇编辑器的文章 http://www.haorooms.com/post/js_guangbiao 就用到了这个功能!这个是获得iframe光标所在位置的父节点名称,iframe中就用到了contentEditable=”true” 属性

11、有些网站为了不让用户复制,设置了div禁止选择的功能,设置如下属性:

1
unselectable="on" onselectstart="return false;"

具体代码:

1
2
3
<div unselectable="on" onselectstart="return false;">
sdfsdfswerwer324234234234
</div>

这样,div里面的东西就不能选择复制了!

12、CSS 中form表单两端对齐

做form表单的时候,前面经常有姓名,年龄,公司名称等等,有的是2个字,有的是4个字,如何让字对齐呢?有的人的做法是打几个空格,但是这样不是很准确,最好的办法是如下:
css代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.test1 {
            text-align:justify;
            text-justify:distribute-all-lines;/*ie6-8*/
            text-align-last:justify;/* ie9*/
            -moz-text-align-last:justify;/*ff*/
            -webkit-text-align-last:justify;/*chrome 20+*/
        }
        @media screen and (-webkit-min-device-pixel-ratio:0){/* chrome*/
            .test1:after{
                content:".";
                display: inline-block;
                width:100%;
                overflow:hidden;
                height:0;
            }
        }

html代码:

1
2
3
4
5
6
7
<div class="box1">
    <div class="test1">姓 名</div>
    <div class="test1">姓 名 姓 名</div>
    <div class="test1">姓 名 名</div>
    <div class="test1">所 在 地</div>
    <div class="test1">工 作 单 位</div>
</div>

13、input声音录入按钮,(紧支持谷歌)效果如下图:

如下图红色框框中的按钮
“图片描述”
代码如下:

1
<input type="text" class="box" name="s" id="s" class="inputText" placeholder="输入关键词"  x-webkit-speech>

添加 x-webkit-speech 属性就可以了。

14、给input的placeholder设置颜色

设置方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
::-webkit-input-placeholder { /* WebKit browsers */
    color:    #999;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
    color:    #999;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
    color:    #999;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
    color:    #999;
}

15、css input[type=file] 样式美化,input上传按钮美化

思路:input file上传按钮的美化思路是,先把之前的按钮透明度opacity设置为0,然后,外层用div包裹,就实现了美化功能。
代码如下:
DOM结构:

1
2
3
4
5
6
7
<a href="javascript:;" class="a-upload">
    <input type="file" name="" id="">点击这里上传文件
</a>

<a href="javascript:;" class="file">选择文件
    <input type="file" name="" id="">
</a>

CSS样式1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*a  upload */
.a-upload {
    padding: 4px 10px;
    height: 20px;
    line-height: 20px;
    position: relative;
    cursor: pointer;
    color: #888;
    background: #fafafa;
    border: 1px solid #ddd;
    border-radius: 4px;
    overflow: hidden;
    display: inline-block;
    *display: inline;
    *zoom: 1
}

.a-upload  input {
    position: absolute;
    font-size: 100px;
    right: 0;
    top: 0;
    opacity: 0;
    filter: alpha(opacity=0);
    cursor: pointer
}

.a-upload:hover {
    color: #444;
    background: #eee;
    border-color: #ccc;
    text-decoration: none
}

CSS样式2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.file {
    position: relative;
    display: inline-block;
    background: #D0EEFF;
    border: 1px solid #99D3F5;
    border-radius: 4px;
    padding: 4px 12px;
    overflow: hidden;
    color: #1E88C7;
    text-decoration: none;
    text-indent: 0;
    line-height: 20px;
}
.file input {
    position: absolute;
    font-size: 100px;
    right: 0;
    top: 0;
    opacity: 0;
}
.file:hover {
    background: #AADFFD;
    border-color: #78C3F3;
    color: #004974;
    text-decoration: none;
}

修改后如下:
“图片描述”
备注:对于HTML5之input:file,还可以控制上传的类型的,但是这个是html5的,低版本浏览器不支持

16、超出长度显示省略号

单行文本显示…
一般要指定宽度,然后给如下四个属性。

1
2
3
4
display:bolck;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;

案例代码:

1
2
3
4
5
6
7
.demo{
  width:200px;  /指定宽度/ 
  display:bolck;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

多行文本显示…
主要属性-webkit-line-clamp

1
2
3
4
5
6
7
p {
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器。
跨浏览器兼容的方案
比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
p {
    position:relative;
    line-height:1.4em;
    /* 3 times the line-height to show 3 lines */
    height:4.2em;
    overflow:hidden;
}
p::after {
    content:"...";
    font-weight:bold;
    position:absolute;
    bottom:0;
    right:0;
    padding:0 20px 1px 45px;
   // background:url(和网页背景颜色一样的一张背景图) repeat-y;
  background-color:#fff;
}

注意:

1
2
3
4
height高度正好是line-height的3倍;
结束的省略好用了半透明的png做了减淡的效果,或者设置背景颜色;
IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用...去模拟;
要支持IE8,需要将::after替换成:after;

17、CSS强制换行和不换行

自动换行

1
2
3
4
div{ 
word-wrap: break-word; 
word-break: normal; 
}

强制英文单词断行

1
2
3
div{
word-break:break-all;
}

强制不换行

1
2
3
div{
white-space:nowrap;
}

18、渐变效果

默认渐变是从上往下代码如下:

1
2
3
4
5
background:#ed4a60; 
background: -webkit-linear-gradient(#ed5a5e, #ed3a61);
background: -o-linear-gradient(#ed5a5e, #ed3a61); 
 background: -moz-linear-gradient(#ed5a5e, #ed3a61); 
background: linear-gradient(#ed5a5e, #ed3a61);

前面加一个参数,right,left,bottom,top等,就可以指定渐变方向:

1
2
3
4
background:-moz-linear-gradient(left,#ace,#f96);/*Mozilla*/
background:-webkit-gradient(linear,0 50%,100% 50%,from(#ace),to(#f96));/*Old gradient for webkit*/
background:-webkit-linear-gradient(left,#ace,#f96);/*new gradient for Webkit*/
background:-o-linear-gradient(left,#ace,#f96); /*Opera11*/

还可以从左上角开始渐变left top,right top(右上角)以此类推,代码如下:

1
2
3
background: -moz-linear-gradient(left top, #ace, #f96);
background: -webkit-linear-gradient(left top, #ace, #f96);
background: -o-linear-gradient(left top, #ace, #f96);

另外还可以指定渐变角度,这个角度是一个由水平线与渐变线产生的的角度,逆时针方向。因此,使用0deg将产生一个左到右横向梯度,而90度将创建一个从底部到顶部的垂直渐变。
代码如下:

1
2
3
4
5
6
7
8
9
10
11
background: -moz-linear-gradient(<angle>, #ace, #f96);
background: -webkit-gradient(<type>,<angle>, from(#ace), to(#f96));//老的写法
background: -webkit-linear-gradient(<angle>, #ace, #f96);
background: -o-linear-gradient(<angle>, #ace, #f96);

.deg45 {
  background: -moz-linear-gradient(45deg, #ace, #f96);
  background: -webkit-gradient(linear,0 100%,100% 0%,from(#ace),to(#f96));
  background: -webkit-linear-gradient(45deg, #ace, #f96);
  background: -o-linear-gradient(45deg, #ace, #f96);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS高级用法 的相关文章

  • JavaScript学习笔记(11) map、reduce

    map map 方法定义在JavaScript的Array中 调用Array的map 方法 传入我们自己的函数 就可以得到结果 来一个例子 use strict function pow x return x x var arr 1 2 3
  • 已解决pip升级失败报错WARNING: There was an error checking the latest version of pip.

    已解决pip升级失败报错WARNING There was an error checking the latest version of pip 文章目录 报错问题 报错翻译 报错原因 解决方法 千人全栈VIP答疑群联系博主帮忙解决报错
  • 什么是DDoS高防?

    未接入DDoS高防 未接入高防时 源站直接对互联网暴露 一旦发生DDoS攻击 很容易导致源站瘫痪 接入DDoS高防 当您购买DDoS高防并将业务接入DDoS高防后 网站类业务把域名解析指向高防IP 非网站类的业务IP将替换成高防IP DDo
  • windows下恢复删除的逻辑分区

    以前E盘分出一部分做过linux的分区 现在E盘空间不够用了 想增加空间 就到磁盘管理中 将之前的linux的逻辑分区删除了 删除后竟然发现整个E盘都没了 再回到我的电脑 E盘也找不到了 我E盘的东西难道都就丢了吗 赶快上网查了查 找到了
  • Mac 运行VUE项目中遇到的问题

    新装好的VUE cli和Node js 使用一个不报错的vue项目进行试验 看环境是不是正常的 共出现两个问题 1 在运行npm run serve 时报错 错误如下 code encode 提示没有权限 1 进入相应文件夹 我的是 usr
  • 网络安全技术习题

    第一章 一 单选题 共6题 单选题 美国国家信息基础设施 NII 定义了信息安全的 个目标 A 五 B 四 C 三 D 二 我的答案 A正确答案 A 单选题 某银行为了加强自己的网站的安全性 决定采用一个协议 应该采用 协议 A FTP B
  • Xshell7安装教程

    一 下载 百度网盘 yyds 二 安装并和谐 1 双击 Xshell 7 0 0054 exe 安装 2 安装成功后不要启动 记得先关闭 不然和谐会失败 将文件夹 NetSarang 7 x Patch 里面的 NetSarang 7 x
  • 简单远程控制(仅传递鼠标和键盘消息)的实现

    假设两个同样的应用程序 运行在相同的操作系统上 要实现远程控制 可以使用传递鼠标和键盘的消息给对方 对方收到后解析出鼠标和键盘消息如何执行即可 下面是几处关键程序 一是处理收到消息 下面应该放在套接字接收或者串口接收中 小心下面的右键单击
  • Bracket Coloring

    Bracket Coloring 题意 给出一个括号序列 定义漂亮序列为匹配括号序列或者反转之后是匹配括号序列的序列 现在要求染色 使得相同颜色的括号组成漂亮序列 问最少需要多少种颜色即每个括号染的颜色 思路 这里可以用栈来匹配括号序列 因
  • Hadoop学习笔记-MapReduce工作原理

    本文从一个初学者的角度出发 用通俗易懂的语言介绍Hadoop中MapReduce的工作原理 在介绍MapReduce工作原理前 本文先介绍HDFS的工作原理及架构 再介绍MapReduce的工作原理以及Shuffle的过程 HDFS HDF
  • ES mapping

    ES Mapping 映射 ES的mapping非常类似于java中的数据类型 可以用来设置字段中存储的数据的类型 但ES中的mapping的作用比数据类型广泛一些 定义索引这里面的字段和名称 定义字段的数据类型 字符串 布尔 数字 字段
  • CLIP使用

    安装环境 1 环境安装pytorch 2 安装tqdm pip install ftfy regex tqdm 3 安装clip pip install git https github com openai CLIP git 内网使用pi
  • 金蝶服务器存在但无账套信息,金蝶KIS专业版

    1 登录账套时提示 从字符串向datetime转换时失败 问题描述 登录账套时提示 从字符串向datetime转换时失败 解决方法 问题原因 操作系统日期格式不正确 解决方案 1 进入 控制面板 双击打开 区域和语言选项 点击 自定义 将
  • 利用unity的MenuItem给自己的编辑器增加一点定制选项

    MenuItem是unity自带的特性 利用它我们可以方便的在编辑器里面加加入一些功能 以下是一些常用功能的总结 注意 需要把文件放在Assets下的Editor文件夹下 using UnityEngine using UnityEdito
  • VUE 之普通表格过滤器封装(前端实现表格实时搜索),无分页情况下

    需求 无分页表格不请求接口进行过滤筛选 封装过滤方法 过滤器 param searchParam 需要筛选的参数 data中定义 根据项目需求进行处理 param tableData 存放接口初始化数据包 data中定义 根据项目需求进行处
  • 缺少streams.h的解决方法和DirectShow开发环境的搭建(转)

    这几天在学DirectShow的开发 一个streams h头文件折腾了一整天才搞定 简单总结一下出现缺少streams h的解决方法和DirectShow开发环境的搭建 开发包方面 我用的是VC2005 Windows Server 20
  • DHCP的工作原理

    DHCP是一种网络管理协议 全称为动态主机配置协议 Dynamic Host Configuration Protocol 它是一种基于TCP IP协议的网络服务 允许网络管理员集中管理和分配IP地址和其他网络配置参数 以便客户端设备能够使
  • 区块链是什么?

    人工智能时代 一本书读懂区块链金融 互联网 时代企业管理实战系列 马兆林 区块链2 0 谭磊 区块链原理 设计与应用 区块链技术丛书 杨保华 陈昌 区块链将如何重新定义世界 唐文剑 区块链技术指南 邹均 区块链社会 解码区块链全球应用与投资
  • 6个例子让你彻底明白,什么是纳什均衡

    6 个例子让你彻底明白 什么是纳什均衡 电影 美丽心灵 的主人公原型 约翰 纳什因车祸去世 你也许听说过他是厉害的数学家 1994 年诺贝尔经济学奖得主 博弈论之父 但是 他的最大贡献是 纳什均衡 那么问题来了 纳什均衡到底是个什么鬼 我们
  • java--面向对象----->图书管理系统

    一 写主类 public class Message 属性 private String name private int state private int date private int count 构造器 public Messag

随机推荐

  • Python数模笔记-StatsModels 统计回归(4)可视化

    人工智能学习离不开实践的验证 推荐大家可以多在FlyAI AI竞赛服务平台多参加训练和竞赛 以此来提升自己的能力 FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台 每周免费提供项目开源算法样例 支持算法能力变现以及快
  • linux多服务器之间的目录文件同步

    linux多服务器之间的目录文件同步 1 先在每台服务器上安装rsync yum install rsync 2 每台机器启动rsync服务 systemctl start rsyncd service systemctl enable r
  • 深入Java微服务之网关系列3: SpringCloudalibaba gateway详解(史上最全)

    九 服务网关 Gateway 9 1 网关简介 大家都都知道在微服务架构中 一个系统会被拆分为很多个微服务 那么作为客户端要如何去调用这么多的微服务呢 如果没有网关的存在 我们只能在客户端记录每个微服务的地址 然后分别去调用 这样的架构会存
  • SQL优化实战:如何通过缓存给MySQL查询进行流量削峰?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 前 言 经过前面索引和sql的优化后 现在查询速度快的飞起 然后 我们继续回归到了日常需求的开发中 3个月过后 订单表的数据已经达到5000万了 不过sql一次查询的
  • Shiro学习笔记。

    授权需要继承 AuthorizingRealm 类 并实现其 doGetAuthorizationInfo 方法 AuthorizingRealm 类继承自 AuthenticatingRealm 但没有实现 AuthenticatingR
  • android opengl旋转,OpenGL纹理旋转及翻转问题详解

    大家好 我是程序员kenney 今天给大家讲解一下Android上OpenGL开发可能会遇到的一些纹理旋转及翻转的问题 其中有些原理在其它平台上如ios osx上也是类似的 纹理旋转的问题一定要搞清楚 不能每当碰到一个方向不对的就自己旋转一
  • vue+ElementUI页面模板

    一 在普通HTML项目中引入elementUI vue elementUI的HTML页面模板 可以直接套用 引入 vue CDN 引入elementUI CDN 官方文档地址 https element faas ele me zh CN
  • Visual Studio 编译C++时出现 error RC2144: PRIMARY LANGUAGE ID not a number

    最近在用VS编译Qt项目时 为rc资源文件添加了版本信息后就编译不通过了 编译输出提示错误 error RC2144 PRIMARY LANGUAGE ID not a number 在网上搜索后发现大多数的解决方法是在rc文件中添加如下一
  • windows hosts文件恢复

    解决方法 重新创建hosts文件 在路径C Windows System32 drivers etc中查找 注意 记住hosts文件没有后缀 之前我一直存储为文本导致无法正常使用
  • 减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 我们知道在用户访问网站时先得经过域名DNS解析这一过程 可能很多人对于DNS解析时间平常并没有太在意 性能稳定 响应时间快的DNS域名解析服务与不稳定 响应过慢的DNS的域
  • vue中使用(瀑布流)vue-waterfall-easy插件

    参考文档 效果图如下 1 安装 npm install vue waterfall easy save dev 2 引入 import vueWaterfallEasy from vue waterfall easy export defa
  • Nacos配置中心原理(一)客户端部分

    基本概念 配置服务 在服务或者应用运行过程中 提供动态配置或者元数据以及配置管理的服务提供者 配置项 个具体的可配置的参数与其值域 通常以 param key param value 的形式存在 例如我们常 配置系统的日志输出级别 logL
  • OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用

    OpenCV3 3中给出了主成分分析 Principal Components Analysis PCA 的实现 即cv PCA类 类的声明在include opencv2 core hpp文件中 实现在modules core src p
  • SAS9.4安装简易教程(保姆级)附带报错处理

    SAS安装教程 正常安装 环境准备 文件准备及安装 增强编辑器问题 一些报错处理方法 1 安装后处理 解决方案1 解决方案2 2 日期超过了SAS系统的最后截至日期 解决方案 3 逻辑库问题 解决方案 4 sid及产品许可问题 解决方案 卸
  • JT格式介绍(转换)

    JT Jupiter Tessellation 是一种高效 专注于行业且灵活的 ISO 标准化 3D 数据格式 由 Siemens PLM Software 开发 航空航天 汽车工业和重型设备的机械 CAD 领域使用 JT 作为其最领先的
  • 我的世界服务器无限刷东西指令,我的世界无限刷物品命令方块指令

    发布时间 2015 09 11 精华文章推荐 合成表大全 前期生存图文指南 怪物图鉴及属性一览 敖厂长生存解说视频 新手建筑指导班 豪华建筑建造教程 俾斯麦号建造方法 WE建筑辅助教程 创建服务器方法指南 加入服务器联机教程 多 标签 攻略
  • 学习实践-Alpaca-Lora (羊驼-Lora)(部署+运行+微调-训练自己的数据集)

    Alpaca Lora模型GitHub代码地址 1 Alpaca Lora内容简单介绍 三月中旬 斯坦福发布的 Alpaca 指令跟随语言模型 火了 其被认为是 ChatGPT 轻量级的开源版本 其训练数据集来源于text davinci
  • elasticsearch介绍

    什么是elasticsearch Elasticsearch是一个基于Lucene的搜索服务器 它提供了一个分布式多用户能力的全文搜索引擎 基于RESTful web接口 Elasticsearch是用Java语言开发的 并作为Apache
  • 知道这10个让你的API接口突然超时的原因吗?

    前言 不知道你有没有遇到过这样的场景 我们提供的某个API接口 响应时间原本一直都很快 但在某个不经意的时间点 突然出现了接口超时 也许你会有点懵 到底是为什么呢 今天跟大家一起聊聊接口突然超时的10个原因 希望对你会有所帮助 1 网络异常
  • CSS高级用法

    收藏一些css的高级用法 1 黑白图像 这段代码会让你的彩色照片显示为黑白照片 1 2 3 4 5 6 7 img desaturate filter grayscale 100 webkit filter grayscale 100 mo