21个超实用的 CSS 技巧分享(附图示)

news2024/11/19 2:28:52

8a985be304aa3e0cde0ce773761a65df.jpeg

本文中分享的所有CSS技巧都是来自GitHub代码库“css tips tricks”的手工精选,此代码库专为开发者提供专业的CSS技巧。

42c35b65a4c90eb52a74a6853c539c3a.png

1、文档布局

使用仅两行CSS代码,创建一个响应式的文档布局。这个布局风格类似于文档页面,可以很好地展示各种信息。

.parent{
  display: grid;
  grid-template-columns: minmax(150px, 25%) 1fr;
}

813a00add9a8323d3bf7db9f56267e22.jpeg

2、自定义光标

查看GitHub代码库“css tips tricks”,以了解更多相关信息。

html{
  cursor:url('no.png'), auto;
}

a6edd3c7ad0fea6f1591631c08eba4e9.gif

3、使用图片填充文本

h1{
  background-image: url('images/flower.jpg');
  background-clip: text;
  color: transparent;
  background-color: white;
}

ab373fa59d991e11c03478ffa0f4be87.png

注意:当使用这种技巧时,始终要指定background-color。这是因为,如果由于某种原因图片无法加载,将使用background-color作为后备值。

4、给文字添加描边

使用text-stroke属性为文字添加描边或轮廓,使文字更易读、更可见。

/*  Apply a 5px wide crimson text stroke to h1 elements */

h1 {
  -webkit-text-stroke: 5px crimson;
  text-stroke: 5px crimson;
}

aa35e8cc6dcd07405fd5d658c7eed09c.png

5、:paused伪类

使用:paused选择器为媒体元素在暂停状态下设置样式,同样地,我们还有:playing选择器可以使用。

/*  currently, only supported in Safari */

video:paused {
  opacity: 0.6;
}

d796a8dced74a441141d62ee5ad9ef3b.png

6、强调文字

使用text-emphasis属性在文本元素上应用强调标记。您可以指定任何字符串,包括表情符号作为其值。

h1 {
  text-emphasis: "⏰";
}

845316b8ae6b5b8ed2bcb0a4f27f45bc.png

7、首字母下沉

避免使用不必要的span标签,而是使用伪元素来为内容设置样式。同样地,我们还有first-letter伪元素和first-line伪元素可以使用。

h1::first-letter{
  font-size: 2rem;
  color:#ff8A00;
}

2b2f3598fdeda679cd02ebc22a8ba397.png

8. 变量的回退值(Fallback values for Variables 暂且这么翻译)

“变量的回退值”,也就是指在 CSS 变量中设置默认值,当变量无法被解析时,会自动回退到默认值。

/*  crimson color will be applied as var(--black) is not defined */

:root {
  --orange: orange;
  --coral: coral;
}

h1 {
  color: var(--black, crimson);
}

bfda8bb606b78f227475a755a3ff61d6.png

9、改变书写模式

<h1>Cakes & Bakes</h1>
/*  specifies the text layout direction to sideways-lr  */

h1 {
  writing-mode: sideways-lr;
}

f86ac8d35ced9a3f704e121b4b851514.png

10、彩虹动效

为元素创建一个连续循环的颜色动画,以吸引用户的注意力。请阅读css tips tricks存储库,了解何时使用prefer-reduced-motion媒体功能。

button{
  animation: rainbow-animation 200ms linear infinite;
}

@keyframes rainbow-animation {
  to{
    filter: hue-rotate(0deg);
  }
 from{
    filter: hue-rotate(360deg);
  }
}

7107e8c89386438522f045e6d00b91d2.gif

11、鼠标悬停时缩放

/*  Define the height and width of the image container & hide overflow */

.img-container {
  height: 250px; width: 250px; overflow: hidden;
 }

/* ️ Make the image inside the container fill the container */

.img-container img {
  height: 100%; width: 100%; object-fit: cover; 
  transition: transform 200m ease-in;
 }

 img:hover{
  transform: scale(1.2);
 }

6290754f4c361e048528b4aac699c890.png

12. 属性选择器

使用属性选择器来选择具有特定属性的 HTML 元素。

<a href="">HTML</a>
<a>CSS</a>
<a href="">JavaScript</a>
/*  targets all a elements that have a href attribute */

a[href] {
  color: crimson;
}

620b764152fc1bff25154cacce74ca43.png

13、剪裁元素

使用clip-path属性可以创建有趣的视觉效果,例如将元素裁剪成自定义形状,如三角形或六边形。

div {
  height: 150px;
  width: 150px;
  background-color: crimson;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

f608ed999b77c4dd340b35cf1e77980e.png

14、检测属性支持

使用 CSS @support 规则直接在您的 CSS 中检测对 CSS 特性的支持。查看 css tips tricks 存储库以了解有关功能查询的更多信息。

@supports (accent-color: #74992e) {
/* code that will run if the property is supported */
  blockquote {
    color: crimson;
  }
}

166de4ea4d1404f5110c8f59fbd0cd48.png

这段代码使用了CSS @supports规则来检测浏览器是否支持设置accent-color属性为#74992e的样式,如果支持则应用在blockquote元素上,将其文本颜色设置为crimson。如果不支持,就不会应用这个代码块。

accent-color 属性是一个CSS属性,用于设置元素的强调颜色。它允许网站或应用程序使用用户设备的主题颜色,并将其应用于元素的背景、边框、文本等部分。如果未设置 accent-color 属性,元素将使用默认的强调色,通常是蓝色或类似的颜色。

15、CSS 嵌套

CSS工作组一直在研究如何在CSS中添加嵌套功能。使用嵌套,你将能够编写更加直观、有组织、高效的CSS代码。

<header class="header">
  <p class="text">Lorem ipsum, dolor</p>
</header>
/*  You can try CSS nesting now in Safari Technology Preview*/

.header{

  background-color: salmon;

  .text{
    font-size: 18px;
  }

}

16、Clamp 函数

使用 clamp() 函数实现响应式排版。

/* Syntax: clamp(minimum, preferred, maximum) */
h1{
  font-size: clamp(2.25rem,6vw,4rem);
}

这段代码的意思是在h1元素中应用一个clamp()函数来设置字体大小。clamp()函数接受3个参数:最小值、首选值和最大值。在这里,最小值为2.25rem,最大值为4rem,而首选值为视口宽度(vw)的6%。这样设置会使字体大小在最小值和最大值之间自适应,并根据视口宽度(vw)的大小,将字体大小设置为首选值。如果视口变得更宽或更窄,字体大小也会随之调整。这种技术可用于响应式设计中,以便在不同的设备和屏幕尺寸上获得更加一致和可读的字体大小。

5ea2f4b23b58d763c984ba1b84345e15.gif

17、可选字段的样式(Styling Optional Fields)

您可以使用 :optional 伪类来设置没有 required 属性的表单字段的样式,例如 input、select 和 textarea。

/* Selects  all optional form fields on the page */

*:optional{
  background-color: green;
}

这段代码意思是选择页面上所有可选的表单字段,即那些没有设置required属性的input、select和textarea元素,并将它们的背景颜色设置为绿色。使用通配符选择器(*)选择所有元素,再使用:optional伪类选择器选择可选表单字段。

18、字间距属性

使用word-spacing属性来指定单词之间的空白长度。

p {
  word-spacing: 1.245rem;
}

19、 创建渐变阴影

这就是您如何创建渐变阴影以获得独特的用户体验。

:root{
  --gradient: linear-gradient(to bottom right, crimson, coral);
}

div {
  height: 200px;
  width: 200px;
  background-image: var(--gradient);
  border-radius: 1rem;
  position: relative;
}

div::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--gradient);
  border-radius: inherit;
  filter: blur(25px) brightness(1.5);
  transform: translateY(15%) scale(0.95);
  z-index: -1;
}

12083648e61e7ab1c872956e51801a6f.jpeg

20、改变标题的方向(Change Caption Side)

使用caption-side属性将表格标题放置在表格的指定侧边,以更改标题的位置。

table {
  caption-side: bottom;
}

3a0bca0a2d99d66d11711c11b3843aa5.gif

21. 创建文本列(Text Columns)

使用列属性为文本元素制作漂亮的列布局。

/* ️ divide the content of the "p" element into 3 columns  */

p{
  column-count: 3;
  column-gap: 4.45rem;          
  column-rule: 2px dotted crimson;
}

结束

感谢您阅读本文,希望这些CSS技巧和技巧能够帮助您在您的项目中创建更优美、更高效和更专业的样式。如果您喜欢这篇文章和GitHub存储库(https://github.com/devsyedmohsin/css-tips-tricks),请不要忘记给它们点个赞,这将有助于其他人发现这些有用的资源。感谢您的阅读,祝您编码愉快!❤️

文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

原文:
https://dev.to/devsyedmohsin/22-useful-css-tips-and-tricks-every-developer-should-know-13c6

作者:Syed Mohsin Raza

非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

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

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

相关文章

【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~

目录 一、通过querySelector / querySelectorAll获取元素 1.1 单个标签选中 1.2 多个标签选中 二、基于这组DOM API&#xff0c;对元素进行操作 2.1 innerHTML获取/修改元素内容 2.2获取/修改元素属性 三、单标签元素属性的获取和修改 3.1 value 3.2checked 3.3 type …

网上蛋糕商城JSP页面

首先是一个注册页面&#xff1a; 视图如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><title>用户注册</title><meta name"viewport" content"widthdevice-width, initial-scale1"><meta …

前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)

目录 一、案例效果 二、实现思路 三、完整代码详细注释 四、案例素材 一、案例效果 二、实现思路 创建游戏背景板和小鸟&#xff0c;并分别设置相对定位与绝对定位&#xff1b;初始化背景图的位置&#xff1b;初始化小鸟的位置&#xff1b;设置游戏状态&#xff0c;游戏开…

vue 的表单验证

1.使用<el-form>包裹整个表单 在其中使用:model 绑定数据 和 :rules绑定校验规则 <el-form :model"user" :rules"rules"> ...................................... </el-from> 2.在script中添加使用数据 以及 校验规则&#xff08;都添加…

Chrome浏览器中清除特定网站的Cookie数据

背景&#xff1a;当我们在网站上遇到错误时&#xff0c;经常会用到的一个方法就是清除Cookie&#xff0c;清除网站的Cookie和网站数据来重置本地的缓存&#xff0c;很多客户端引起的错误都可以使用该方法修复&#xff0c; 但是在清除Cookie时有一个问题是使用浏览器更多中的清…

css实现文字大小自适应

在页面编写中经常会碰到页面自适应的问题&#xff0c;也就是页面内部的元素会随着窗口的放大缩小而放大缩小&#xff0c;box可以通过calc 百分比的形式做到页面自适应&#xff0c;但是box内的字体却无法做到这点&#xff0c;往往box自适应大小了&#xff0c;内部的字体还是原来…

一行代码“黑”掉任意网站

文章目录只需一行代码&#xff0c;轻轻一点就可以把任意网站变成暗黑模式。 首先我们先做一个实验&#xff0c;在任意网站中&#xff0c;打开浏览器开发者工具(F12)&#xff0c;在 C1onsole 控制台输入如下代码并回车&#xff1a; document.documentElement.style.filterinve…

使用npm安装yarn

很多同学用惯了npm安装项目依赖&#xff0c; 想要尝试使用yarn的命令&#xff0c; 但是第一次使用yarn的时候&#xff0c;发现报错&#xff0c; 这是什么情况呢&#xff1f; 因为&#xff0c;想要使用yarn&#xff0c;需要首先安装yarn。 那么问题来了&#xff0c;如何安装呢…

IDEA 创建Maven Web项目

背景 公司有一个非常老的项目&#xff0c;决定进行简单重构&#xff0c;纳入自动化流水线部署的序列。原项目采用很古老的Jar包依赖模式&#xff0c;也就是直接将jar包放在项目中。同时&#xff0c;项目结构也非常奇特&#xff0c;不是标准的Web项目目录结果。 于是&#xff…

用vue实现打印页面的几种方法

1.第一种就是直接调用 window.print()方法 这种方法的坏处就是 默认打印整个页面&#xff0c;不能打印局部页面。 2.第二种使用v-print 首先先下载 npm install vue-print-nb --save 然后在main.js中引入 main.js中引入 import Print from vue-print-nb Vue.user(Print)由于…

JS 生成条形码(一维码)jsBarcode

jsBarcode 官网 一、安装 script 引入 <script src"JsBarcode.all.min.js"></script>地址&#xff1a;https://cdn.jsdelivr.net/npm/jsbarcode3.11.5/dist/JsBarcode.all.min.js 也可以进官网查看地址。 npm方式 安装&#xff1a; npm install jsb…

vue3路由配置与路由跳转

Vue Router 是Vue.js的官方路由器。它与 Vue.js 核心深度集成&#xff0c;使使用 Vue.js 构建单页应用程序变得轻而易举。特点包括&#xff1a; 嵌套路由映射 动态路由 模块化、基于组件的路由器配置 路由参数、查询、通配符 查看由 Vue.js 的过渡系统提供支持的过渡效果细粒度…

【蓝桥杯Web】第十四届蓝桥杯Web模拟赛 3 期 | 精品题解(下)

&#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f5a5;️ 蓝桥杯专栏&#xff1a;蓝桥杯题解/感悟 &#x1f5a5;️ TS知识总结&#xff1a;十万字TS知识点总结 &#x1f449; 你的一键三连是我更新的最大动力❤️&#xff01; &…

HTML插入图片

图片介绍一、src属性二、其余属性三、alt用法四、title用法五、属性特点六、src路径的讲解一、src属性 符号&#xff1a;img 特点&#xff1a;单标签 代码&#xff1a; <!doctype html> <html><head><meta charset"utf-8"><title>HT…

尚品汇后台管理项目(Vue)

简介 1:什么是后台管理系统项目? 注意&#xff1a;前端领域当中&#xff0c;开发后台管理系统项目&#xff0c;并非是java、php等后台语言项目。 在前面课程当中&#xff0c;我们已经开发了一个项目【尚品汇电商平台项目】&#xff0c;这个项目主要针对的是用户&#xff08;游…

vue表单验证rules以及validator验证器的使用

为防止用户犯错&#xff0c;尽可能更早地发现并纠正错误。 Element中Form &#xff08;表单&#xff09;组件提供了表单验证的功能&#xff0c;只需要通过 rules 属性传入约定的验证规则&#xff0c;并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 注意&#xff1a;…

案例说明:vue中Element UI下拉列表el-option中的key、value、label含义各是什么

可以简单理解为&#xff1a;label 是给用户展示的东西&#xff0c;value是前端往后端传递的真实值 <template><div><el-page-header back"goBack" content"注册"></el-page-header><el-divider></el-divider><el-…

flex布局优化(两端对齐,从左至右)

文章目录前言方式一 nth-child方式二 gap属性方式三 设置margin左右两边为负值总结前言 flex布局是前端常用的布局方式之一&#xff0c;但在使用过程中&#xff0c;我们总是感觉不太方便&#xff0c;因为日常开发中&#xff0c;大多数时候&#xff0c;我们想要的效果是这样的 …

2023年网络安全比赛--CMS网站渗透中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 2.使用渗透机对服务器信息收集,将网站的名称作为flag提交; 3.使用渗透机对服务器渗透,将可渗透页面的名称作为flag提交; 4.使用渗透机对服务器渗透,…

全网最新的vue.js下载和安装的3种方法(2023年)

文章目录1. 文章引言2. 环境搭建3. 安装vue.js3.1 方法一&#xff1a;官网下载vue.js源代码3.2 方法二&#xff1a;使用npm install创建3.3 方法三&#xff1a;使用bower下载4. 总结1. 文章引言 我主要从事java后端开发&#xff0c;但对前端也非常感兴趣&#xff0c;立志成为全…