每个前端开发需要了解的10个强大的CSS属性

news2024/11/20 6:18:33

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

快来免费体验ChatGpt plus版本的,我们出的钱 体验地址:https://chat.waixingyun.cn 可以加入网站底部技术群,一起找bug,另外新版作图神器已上线 https://cube.waixingyun.cn/home

本文介绍了CSS(层叠样式表)的基本概念和作用,然后深入讨论了10个常用的CSS属性。这些属性包括边框(border)、背景(background)、定位(positioning)、盒模型(box model)等。每个属性都有一个小节,解释了它的作用、语法和用法示例。

文章还包含了一些有关CSS开发的最佳实践建议,例如使用外部样式表、避免滥用!important规则和选择器的性能考虑等。作者还提供了一些有用的资源和链接,供读者进一步学习和探索。

下面是正文~~

以下是10个你可能很少使用或从未听说过的属性,但一旦你了解它们,你会爱上它们的。

自定义滚动条

让我们改变滚动条的宽度和颜色,还让它稍微变得圆润一些。

以下是滚动条的各个部分。

image.png

我们使用 ::-webkit-scrollbar 来改变属性。

/* 设置滚动条的宽度 /
::-webkit-scrollbar{
  width: 10px;
}
/ 将轨道改为蓝色并设置圆角边框 /
::-webkit-scrollbar-track{
  background-color: blue;
  border-radius: 10px;
}
/ 将滑块(显示滚动量)改为灰色并设置圆角 /
::-webkit-scrollbar-thumb{
  background: gray;
  border-radius: 10px;
}
/ 悬停时显示为深灰色 */
::-webkit-scrollbar-thumb:hover{
  background: darkgray;
}

image.png

注意:这是一个非标准属性,如果没有 -webkit- 前缀,它将无法生效。

鼠标指针样式

在鼠标悬停在元素上时,改变鼠标指针的样式。

/* class为'first'的元素 /
.first{
  cursor: not-allowed;
}
/ class为'second'的元素 /
.second{
  cursor: zoom-in;
}
/ class为'third'的元素 */
.third{
  cursor: crosshair;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bh1k6O0b-1688001716653)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6cb50750a1634f7497a6458d15365508~tplv-k3u1fbpfcp-watermark.image?)]

Scroll behavior

滚动行为可以实现平滑滚动,使页面在不同部分之间的过渡更加平滑。

添加以下简单的一行代码,亲自体验效果。

html{
  scroll-behavior:smooth;
}

不再简单地瞬间切换页面到下一个部分,而是平滑地滚动到相应的部分。在这里查看效果。

https://www.w3schools.com/cssref/tryit.php?filename=trycss_scroll_behavior

accent-color

改变用户界面的颜色,例如表单控件和复选框。

image.png

看看复选框和单选按钮的颜色是蓝色的,而不是默认(乏味的)灰色。

input{
  accent-color: blue;
}

就是这样。你可以使用选择器来使一些输入框变蓝色,一些变红色,一些变绿色。

而且这不会改变文本的颜色,所以你可以尝试各种颜色进行实验。用户界面的颜色由我们控制。

Aspect Ratio

在构建响应式组件时,经常检查高度和宽度可能会令人头疼,因为你必须保持纵横比。有时候视频和图片可能会显得拉伸。

这就是为什么我们可以使用纵横比属性。一旦设置了纵横比值,然后再设置宽度,高度就会自动设置。或者反之亦然。

/* class为example的元素 /
.example{
  / 设置纵横比 /
  aspect-ratio: 1 / .25;
  / 设置宽度后,高度会自动设置 /
  width: 200px;
  / 边框不是必需的,但这里只是为了看效果而添加的 */
  border: solid black 1px;
}

现在,我们设置了宽度,高度将自动设置为 50 像素,以保持纵横比。这对于响应式行为非常有用。

image.png

Box Reflect

Box Reflect 能够在组件下方创建其反射效果。对于这个演示,我使用了一个SVG波浪图像,我是通过这个网站获取的。

https://getwaves.io/

/* class为'example'的元素 /
.example{
  / 反射将显示在下方。其他可能的值有 above(上方) | left(左侧) | right(右侧) */
  -webkit-box-reflect: below;
}

这将在SVG下方创建一个反射效果。

image.png

我们也可以将反射偏移一点:

/* An element with class name 'example */
.example{
    /* The reflection will appear below. Other possible values are above | left | right */
    -webkit-box-reflect: below 20px;
}

image.png

此外,我希望它淡化一点。我们可以用 gradient

/* An element with class name 'example */
.example{
    /* The reflection will appear below. Other possible values are above | left | right */
    -webkit-box-reflect: below 0px linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,.5));
}

image.png

如何检查CSS中是否支持特定属性

要检查特定属性在CSS中是否受支持,可以使用 @supports 规则。以下是示例:

@supports (display: flex) {
  /* 如果支持 */
  /* 在这里放置针对支持该属性的样式规则 */
}

@supports not (display: flex) {
  /* 如果不支持 */
  /* 在这里放置针对不支持该属性的备用样式规则 */
}

在上述代码中,通过 @supports 规则,我们可以在括号内指定一个属性,然后根据该属性是否受支持来执行相应的样式规则。如果支持该属性,则执行第一个规则块中的样式规则,如果不支持该属性,则执行第二个规则块中的备用样式规则。

例如,上述示例中的 (display: flex) 表示检查浏览器是否支持 display: flex 属性。如果支持,将执行第一个规则块中的样式规则;如果不支持,则执行第二个规则块中的备用样式规则。

这种方式可以用来检查任何CSS属性的支持情况,以便根据支持情况应用不同的样式规则。

Masks

可以在CSS中使用图像遮罩。

/* class为'example'的元素 /
.example{
  / 从URL设置遮罩 */
  -webkit-mask: url(你的URL);
  mask: url(你的URL);
}

在遮罩图像中,白色代表遮罩区域,黑色是要裁剪的区域。

Filter

我们可以使用CSS为图像添加惊人的滤镜效果。滤镜效果是我们在每个照片分享应用程序中都会看到的功能,现在让我们看看它们有多容易实现。

img{ filter: /* 你的值 */; }

有许多可用的滤镜效果。可以使用模糊、增加亮度、饱和度等滤镜效果。可以使图像变为灰度、更改不透明度、反转颜色等等。

image.png

image.png

地址:https://www.w3schools.com/cssref/css3_pr_filter.php

Backdrop effects

我们可以使用backdrop-filter为图像背后的区域添加漂亮的滤镜效果。

backdrop-filter提供了filter的所有属性。简而言之,它是一个应用于背景的滤镜效果。

请注意,backdrop-filter属性在某些浏览器中可能不被完全支持,请确保在使用时进行兼容性检查。

<div class="image">
    <div class="effect">
        backdrop-filter: blur(5px);
    </div>
</div>

<style>
.image{
    background-image: url(YOUR URL);
    background-size: cover;
    width: 400px;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.effect{
    font-size: x-large;
    color: white;
    font-weight: 800;
    background-color: rgba(255, 255, 255, .3);
    backdrop-filter: blur(5px);
    padding: 20px;
}
</style>

这就产生了这样的效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxtJNWND-1688001716656)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/512fa20c6b1c47cfa96f47feaa5f65dd~tplv-k3u1fbpfcp-watermark.image?)]

通过了解这10个新的CSS属性,可以使你的网站看起来非常专业。

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

交流

有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 启动项目报错:TypeError: Cannot set property ‘parent‘ of undefined异常解决

场景&#xff1a;从git上面拉下来一个项目 npm i 下载完依赖以后 npm run serve 去运行项目的时候 报错TypeError: Cannot set property ‘parent’ of undefined 如图所示 原因&#xff1a;首先排查发现判断得出是less解析失败导致 但是经过长时间的查询解决方案发现是因为v…

【Redis一】Redis简介及安装部署

Redis简介及安装部署 1.关系数据库 VS 非关系型数据库1.1 关系型数据库1.2 非关系型数据库1.3 关系型数据库和非关系型数据库区别1.4 非关系型数据库产生背景1.5 关系型数据库与非关系型数据库总结 2.Redis简介2.1 Redis概述2.2 Redis的优点2.3 Redis使用场景2.4 关于Redis的高…

nginx配置vue项目添加访问前缀

文章目录 前言实现需求Nginx配置访问前端正确配置注意点alias的含义举个栗子静态文件及js等404错误 前言 最近&#xff0c;在搞一个SASS系统&#xff0c;将原有的单服务&#xff0c;每次卖出一套啥软件就需要部署一套环境&#xff0c;使得运维人员有些捉襟见肘。产品调整为SAS…

链表理论基础

链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域&#xff0c;一个是指针域&#xff08;存放指向下一节点的指针&#xff09;。 链表的类型 单链表 每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xf…

汽车 EDI:博泽 brose EDI 需求分析

brose&#xff08;博泽&#xff09;是一家德国汽车零部件制造商&#xff0c;总部位于德国科堡。该公司成立于1908年&#xff0c;至今已有百年历史。brose主要专注于汽车驾驶员控制系统、座椅系统、电动驱动系统和电子技术等领域的开发和生产。作为一家全球化企业&#xff0c;br…

linux修改root密码

Linux修改root密码 红帽系统&#xff1a; 进入开机界面按e。 在linux这行末尾加上rd.break 然后按下ctrlx 按下图输入命令&#xff1a; redhat 即为你想修改的密码。 然后回车等待系统重启。 CentOS7: 前两步和之前一样&#xff0c;然后找到linux16这一行。 在这行末尾…

芯片设计中的功耗挑战和低功耗设计

在早期的IC设计中&#xff0c;关注的参数主要是性能(timing)和面积(area)。EDA工具在满足性能要求的情况下&#xff0c;最小化面积。此时&#xff0c;功耗是一个不怎么被关心的问题。 因为CMOS工艺在相对较低的时钟频率下具有相当低的功耗&#xff0c;漏电流可忽略不计。随着晶…

springboot+vue校园车辆校车调度管理系统_r4le2-

本论文中实现的校车调度管理系统将以用户核心的日常信息维护工作为主&#xff0c;主要涵盖了首页&#xff0c;个人中心&#xff0c;驾驶员管理&#xff0c;车辆信息管理&#xff0c;借调车辆管理&#xff0c;车辆调度管理&#xff0c;车辆运营管理等功能&#xff0c;采用该校车…

浏览器如何捕获元素的hover事件弹出的内容,并进行样式调整修改

项目场景&#xff1a; 最近前端需要重写antd的tab卡片的更多内容弹框&#xff0c;默认的背景色和文本颜色不合适&#xff0c;需要更改。 问题描述 只有鼠标指针放上去后才会显示弹出的内容 直接用审查元素还无法进行获取。 如何用浏览器的开发者工具去捕获这些浮框内容或其他…

js中的图是什么?

图 什么是图&#xff1f; 图是网络结构的抽象模型&#xff0c;是一组由边连接的节点。图可以表示任何二元关系&#xff0c;比如道路、航班等。在 JavaScript 中没有图&#xff0c;但是可以通过 Object 和 Array 来构建图。 常用操作 深度优先遍历广度优先遍历 图的表示法 …

sql内外连接图示

student表数据&#xff1a; idname34name22golitter66kerwin123yh12golemon score表数据&#xff1a; idscore34802298663345100 内连接 1、内连接:俗称左右拼接连接&#xff1b; 2、内连接特点&#xff1a;满足连接条件的才会出现在结果里面&#xff1b; SELECT 查询字段…

第 7 章 集合-----Scala集合继承图

7.1.1 不可变集合继承图 7.1.2 可变集合继承图 7.2.3 不可变数组与可变数组的转换 7.7.6 复杂 WordCount 案例 1&#xff09;方式一 object TestWordCount {def main(args: Array[String]): Unit {// 第一种方式&#xff08;不通用&#xff09;val tupleList List(("H…

WebRTC的认知入门

一、学习目的 当前的音视频聊天功能很普通&#xff0c;社会对这方面的需求也很高&#xff0c;疫情期间的在线问诊模式解决类大量急需就医问诊患者的燃眉之急&#xff0c;我们需要了解WebRTC实现实时音视频聊天功能是如何操作的。 二、概念 什么是WebRTC?WebRTC是 Google 在…

开放式耳机是什么意思?开放式耳机和封闭式耳机区别又有哪些?

开放式蓝牙耳机的设计理念旨在为用户提供更加自然、开放的音频体验。与传统的封闭式耳机相比&#xff0c;开放式耳机的设计目的是最大程度地减少音频在耳道中的阻隔&#xff0c;使周围环境的声音与耳机音频混合在一起&#xff0c;创造更加逼真的音场感。 开放式蓝牙耳机非常适合…

6.3.2 可翻页检视

前面提到的 nl 与 cat, tac 等等&#xff0c;都是一次性的将数据一口气显示到屏幕上面。一页一页翻动的指令就是more和less。 more &#xff08;一页一页翻动&#xff09; 看到上面的范例&#xff0c;如果more后面接的文件内容行数大于屏幕输出的行数时&#xff0c;就会出现类…

Hello算法笔记之回溯

一、回溯算法介绍&#xff1a;一种通过穷举来解决问题的方法&#xff0c;它的核心思想是从一个初始状态出发&#xff0c;暴力搜索所有可能的解决方案&#xff0c;当遇到正确的解则将其记录&#xff0c;直到找到解或者尝试了所有可能的选择都无法找到解为止。 通常采用「深度优…

【论文阅读】【yolo系列】YOLACT Real-time Instance Segmentation

论文链接&#xff1a;https://arxiv.org/pdf/1904.02689.pdf Abstract 我们提出了一个简单的、全卷积的实时实例分割模型&#xff0c; 【速度和精度】该模型在TitanXp上训练MSCOCO数据集以33.5帧ps的速度达到29.8 mAP&#xff0c;比以往任何竞争方法都要快得多。此外&#xff0…

chatgpt赋能python:Python连接蓝牙模块:实现IoT设备的控制

Python连接蓝牙模块&#xff1a;实现IoT设备的控制 随着物联网技术的不断发展&#xff0c;连接设备的关键变得越来越重要。Python语言是一种灵活易用、快速上手的编程语言&#xff0c;已经成为众多物联网应用的首选编程语言之一。其中&#xff0c;Python连接蓝牙模块的应用越来…

【聚类算法】MeanShift算法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 MeanShift算法&#xff0c;同样是一种基于密度的聚类算法。两种算法直观理解都比较好理解。 DBSCAN&#xff1a;向身边人逐渐发展下线模式 MeanShfit&…

【Unity 实用插件篇】 | UI适配神器 Device Simulator 移动设备模拟器 的详细使用方法

前言 【Unity 实用插件篇】 UI适配神器 Device Simulator 移动设备模拟器 的详细使用方法一、安装Device Simulator包二、使用Device Simulator模拟各种设备三、自定义设备类型信息 总结 &#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由…