首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
JavaScript类型:关于类型,有哪些你不知道的细节?
JavaScript对象:面向对象还是基于对象?
JavaScript对象:我们真的需要模拟类吗?
JavaScript对象:你知道全部的对象分类吗?
JavaScript执行(一):Promise里的代码为什么比setTimeout先执行?
JavaScript执行(二):闭包和执行上下文到底是怎么回事?
JavaScript执行(三):你知道现在有多少种函数吗?
JavaScript执行(四):try里面放return,finally还会执行吗?
JavaScript词法:为什么12.toString会报错?
(小实验)理解编译原理:一个四则运算的解释器
JavaScript语法(预备篇):到底要不要写分号呢?
JavaScript语法(一):在script标签写export为什么会抛错?
JavaScript语法(二):你知道哪些JavaScript语句?
JavaScript语法(三):什么是表达式语句?
JavaScript语法(四):新加入的**运算符,哪里有些不一样呢?
HTML语义:div和span不是够用了吗?
HTML语义:如何运用语义类标签来呈现Wiki网页?
CSS语法:除了属性和选择器,你还需要知道这些带@的规则
HTML元信息类标签:你知道head里一共能写哪几种标签吗?
CSS 选择器:如何选中svg里的a元素?
CSS选择器:伪元素是怎么回事儿?
HTML链接:除了a标签,还有哪些标签叫链接?
CSS排版:从毕昇开始,我们就开始用正常流了
HTML替换型元素:为什么link一个CSS要用href,而引入js要用src呢?
HTML小实验:用代码分析HTML标准
CSS Flex排版:为什么垂直居中这么难?
CSS动画与交互:为什么动画要用贝塞尔曲线这么奇怪的东西?
HTML语言:DTD到底是什么?
CSS渲染:CSS是如何绘制颜色的?
CSS小实验:动手做,用代码挖掘CSS属性
HTML·ARIA:可访问性是只给盲人用的特性么?
浏览器:一个浏览器是如何工作的?(阶段一)
浏览器:一个浏览器是如何工作的?(阶段二)
浏览器:一个浏览器是如何工作的(阶段三)
浏览器:一个浏览器是如何工作的?(阶段四)
浏览器:一个浏览器是如何工作的?(阶段五)
浏览器DOM:你知道HTML的节点有哪几种吗?
浏览器CSSOM:如何获取一个元素的准确位置
浏览器事件:为什么会有捕获过程和冒泡过程?
浏览器API(小实验):动手整理全部API
性能:前端的性能到底对业务数据有多大的影响?
工具链:什么样的工具链才能提升团队效率?
持续集成:几十个前端一起工作,如何保证工作质量?
搭建系统:大量的低价值需求应该如何应对?
前端架构:前端架构有哪些核心问题?
当前位置:
首页>>
技术小册>>
深入学习前端重构知识体系
小册名称:深入学习前端重构知识体系
### CSS语法:除了属性和选择器,你还需要知道这些带`@`的规则 在深入探索前端重构知识体系的过程中,CSS(层叠样式表)作为网页样式设计的基石,其掌握程度直接影响到网页的外观与用户体验。除了基础的属性与选择器外,CSS还包含了一系列以`@`符号开头的特殊规则,这些规则为CSS提供了更丰富的功能和更高的灵活性。本章将详细探讨这些带`@`的CSS规则,帮助你更全面地理解和运用CSS。 #### 一、`@import`:引入外部样式表 `@import`规则允许你在一个CSS样式表中引入另一个CSS样式表。这对于模块化CSS代码、重用样式定义以及保持样式表的组织性非常有用。然而,需要注意的是,`@import`规则应当谨慎使用,因为它会增加页面加载时间,因为浏览器必须等待`@import`的样式表加载并解析完成后才能继续渲染页面。 ```css @import url("base.css"); @import url("layout.css") print; /* 仅在打印时应用 */ ``` **最佳实践**:尽量将`@import`规则放在样式表的顶部,并考虑使用HTML的`<link>`标签替代,以提高页面加载性能。 #### 二、`@media`:媒体查询 `@media`规则是响应式网页设计(RWD)的核心,它允许你根据不同的媒体类型和条件应用不同的样式规则。这意味着你可以为不同的屏幕尺寸、分辨率、方向(横屏或竖屏)等编写特定的样式。 ```css @media screen and (max-width: 600px) { body { background-color: lightblue; } } @media print { body * { visibility: hidden; } .print-section, .print-section * { visibility: visible; } .print-section { position: absolute; left: 0; top: 0; } } ``` **应用场景**:通过媒体查询,可以创建在不同设备上都能良好展示的网页,提升用户体验。 #### 三、`@font-face`:自定义字体 `@font-face`规则允许你在网页上使用自定义字体,而不仅仅是依赖于用户计算机上已安装的字体。这对于保持品牌一致性、提升网页视觉吸引力至关重要。 ```css @font-face { font-family: 'MyCustomFont'; src: url('fonts/MyCustomFont.woff2') format('woff2'), url('fonts/MyCustomFont.woff') format('woff'); font-weight: normal; font-style: normal; } body { font-family: 'MyCustomFont', sans-serif; } ``` **注意事项**:选择适当的字体格式和提供回退选项是确保兼容性和可访问性的关键。 #### 四、`@keyframes`:定义动画关键帧 `@keyframes`规则用于定义CSS动画序列中的关键帧。通过指定动画开始、中间和结束时的样式,你可以创建复杂的动画效果。 ```css @keyframes example { from {background-color: red;} to {background-color: yellow;} } div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; } ``` **进阶应用**:结合`@keyframes`与`animation`属性,可以实现无限循环、延迟开始、动画迭代次数等高级动画效果。 #### 五、`@supports`:条件规则 `@supports`规则允许你编写仅在浏览器支持特定CSS属性或值的情况下才应用的样式。这对于渐进增强(Progressive Enhancement)策略非常有用,可以在支持高级CSS特性的浏览器上提供更丰富的用户体验。 ```css @supports (display: grid) { .container { display: grid; grid-template-columns: repeat(3, 1fr); } } /* 回退样式 */ .container { display: flex; flex-wrap: wrap; } ``` **应用场景**:在尝试使用新的CSS布局或样式特性时,`@supports`规则可以确保在不支持这些特性的浏览器上也能有基本的可用性和可访问性。 #### 六、`@document`(非标准,但值得了解) 虽然`@document`规则在大多数现代浏览器中并不受支持,但它最初的设计意图是在样式表中针对特定的文档(或文档的特定部分)应用样式。尽管其实际用途有限,但了解这一规则的存在有助于我们理解CSS规范的演进和多样性。 ```css /* 示例,实际不被支持 */ @document url(http://example.com/) { body { background-color: blue; } } ``` **历史视角**:`@document`规则是CSS试图实现更细粒度样式控制的一次尝试,尽管最终未能广泛实现,但它反映了CSS设计者对提升样式表灵活性和强大性的持续追求。 #### 七、总结 CSS中带`@`的规则为前端开发提供了强大的工具集,它们不仅扩展了CSS的功能范围,还使得样式表更加灵活、模块化,并促进了响应式设计和渐进增强的实践。通过深入学习这些规则,你将能够更好地控制网页的外观和行为,为用户提供更加丰富、一致且可访问的浏览体验。在前端重构知识体系中,掌握这些高级CSS特性是迈向专业前端开发者的关键一步。
上一篇:
HTML语义:如何运用语义类标签来呈现Wiki网页?
下一篇:
HTML元信息类标签:你知道head里一共能写哪几种标签吗?
该分类下的相关小册推荐:
Javascript重点难点实例精讲(一)
编程入门课:Javascript从入门到实战
Flutter核心技术与实战
Javascript-ES6与异步编程
web前端开发性能优化实战
Javascript编程指南
JavaScript入门与进阶
剑指javascript
ES6入门指南
javascript设计模式原理与实战
npm script实战构建前端工作流
剑指javascript-ES6