当前位置: 首页 > news >正文

重学前端013 --- 响应式网页设计 CSS网格布局

文章目录

  • 加载字体
  • 图片延迟加载 loading="lazy"
  • 忽略访问来源 rel="noreferrer"
  • blockquote
    • 主要作用和优势
    • 显示引用来源
    • 使用注意事项
  • ::before, ::after
  • box-sizing
    • 为何同时选择 *, ::before, ::after?
  • grid-template-columns
  • minmax(min, max)
  • grid-column
  • object-fit
  • grid-auto-flow
  • text-align: justify
  • column-gap
  • list 无样式
  • place-items

加载字体

字体样式表将加载三种不同的字体:Anton、Baskervville 和 Raleway。
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Anton%7CBaskervville%7CRaleway&display=swap"/>
<link rel="stylesheet"  href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"/>

图片延迟加载 loading=“lazy”

img 元素上的 loading 属性可以设置为 lazy,以告诉浏览器在需要(例如,当用户将图像滚动到视图中时)的时候才获取图像资源。
另外一个好处是,延迟加载的元素在加载非延迟元素之前不会加载——这意味着互联网连接速度较慢的用户可以查看你的页面的内容,而无需等待图像加载。

<img src="https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920X1080-indigo.png"/ alt="freecodecamp logo" class-"hero-img" loading="lazy">

忽略访问来源 rel=“noreferrer”

Referer HTTP标头包含有关用户可能正在访问的页面的地址或URL的信息。
例如,这些信息可用于分析,以跟踪您的页面中有多少用户访问了freecodecamp.org。将rel属性设置为noreferrer会从HTTP请求中省略此信息。为你的a元素设置一个rel属性为noreferrer。

<a href="https://freecodecamp.org" target="_blank" rel="noreferrer">noreferrer</a>

blockquote

<blockquote><hr/><p class="quote">The entire curriculum should be a series of projects</p><hr />
</blockquote>

<blockquote>是 HTML 中用于定义​​块级引用​​的语义化标签,通常用于标记来自其他来源的大段引文,如书籍、文章、演讲等,以便与普通文本区分开来。

了解它的核心特性和与行内引用 的区别,对比表格如下:

特性
(块级引用)
(行内引用)
​​用途​​引用​​长段​​内容,独立成块在段落中嵌入​​简短​​引用
​​显示方式​​默认​​独立区块​​,通常有缩进​​行内显示​​,浏览器​​自动添加引号​​
​​多段落​​​​支持​​包含多个段落​​不支持​​
​​语义​​强语义,表示大段引文行内语义,表示小段引文

主要作用和优势

• ​​语义化清晰​​:明确告诉浏览器、搜索引擎和辅助技术(如屏幕阅读器)这是引用的内容,有助于​​SEO优化​​和​​可访问性​​。

• ​​默认样式​​:浏览器通常会自动为其添加左右外边距(约 40px),使其缩进,视觉上与周围内容分离。

• ​​提升可读性​​:使文章结构更清晰,读者更容易识别引用的部分

显示引用来源

若需在页面上​​可见地标注​​出处,可以在 <blockquote>内部或其后使用 <cite>元素

<blockquote cite="https://example.com/source"><p>被引用的文本内容...</p><footer>— 作者名, <cite>作品名称</cite></footer>
</blockquote>

使用注意事项

• ​​与 <q>标签的区别​​:记住表格中的区别,​​短引用用 <q>​​,​​长引用用 <blockquote>​​。

• ​​内容嵌套​​:<blockquote>内可以包含其他块级元素,如段落 <p>、列表等,但不应再嵌套另一个 <blockquote>。

• ​​避免滥用​​:仅在真正引用外部内容时使用,不要仅为了缩进文本而使用它。

::before, ::after

*, ::before, ::after {padding: 0;margin: 0;box-sizing: border-box;
}

这段 CSS 代码是一个常用的全局样式重置片段,用于消除不同浏览器对元素的默认样式差异,并统一盒模型的计算方式。

  • *​​:这是​​通配选择器​​,它会匹配文档中的所有 HTML 元素。
  • ​​::before​​ 和 ​​::after​​:这两个是 ​​伪元素​​。它们不是实际存在于 HTML 文档中的元素,而是由 CSS 创建用于在特定元素的内容​​前面​​(::before)或​​后面​​(::after)插入装饰性或结构性的内容的虚拟元素.
  • ​​box-sizing: border-box;​​:这条规则​​改变了盒模型的计算方式​​。

box-sizing

• 默认的盒模型(content-box)中,一个元素的总宽度 = width+ padding+ border。如果你设置了 width: 100px;和 padding: 10px;,元素的实际宽度会是 100px + 10px + 10px = 120px。

• 使用 border-box后,元素的总宽度就是你设置的 width,​​内边距(padding)和边框(border)的宽度都会包含在 width和 height之内​​。设置 width: 100px;和 padding: 10px;,元素的实际宽度仍然是 100px,内容区的宽度会自动减小为 100px - 10px - 10px = 80px。这让元素的尺寸计算更直观,更容易控制,特别是在进行响应式布局时。

为何同时选择 *, ::before, ::after?

::before和 ::after伪元素​​独立于它们所属的元素​​。即使你用 *选择了所有元素,这个选择器也不会自动应用到这些元素生成的伪元素上。
为了确保伪元素(它们经常被用来添加装饰性内容,如图标、形状等)也遵循同样的盒模型规则并且没有意外的间距, explicitly 将它们列入选择器是非常必要和良好的实践。

创建一个html选择器,并将其字体大小属性设置为62.5%。这将把网页的默认字体大小设置为10px(浏览器默认为16px)。
这将使你以后更容易使用 rem 单位,因为 2rem 将是 20px。

html {font-size: 62.5%;
}

grid-template-columns

main {display: grid;grid-template-columns: 1fr 94rem 1fr;
}
@media only screen and (max-width:720px) {.image-wrapper {grid-template-columns: 1fr;}
}

minmax(min, max)

使用minmax函数使列在任何设备上都有响应。minmax函数有两个参数,第一个是最小值,第二个是最大值。这些值可以是长度、百分比、fr,甚至是像max-content这样的关键字。

main {display: grid;grid-template-columns: minmax(2rem, 1fr) minmax(min-content,94rem) minmax(2rem, 1fr);row-gap: 3rem;
}

grid-column

grid-column 属性,它是 grid-column-start 和 grid-column-end 的简写。
grid-column 属性告诉网格项从哪条网格线开始和结束。

CSS repeat() 函数用于重复一个值,而不是手动写出它,这对网格布局很有帮助。 例如,将 grid-template-columns 属性设置为 repeat(20, 200px) 将创建 20 列,每列 200px 宽。

.heading {grid-column: 2 / 3; display: grid;grid-template-columns: repeat(2, 1fr);row-gap: 1.5rem;
}

并将其 grid-column 属性设置为 1 / -1。 这将告诉元素跨越网格的整个宽度。
(这将允许第一个和第三个图像跨越网格的整个宽度。)

object-fit

object-fit 属性告诉浏览器如何在其容器中定位元素。 在这种情况下,cover 会将图像设置为填充容器,并根据需要进行裁剪以避免更改宽高比。

grid-auto-flow

grid-auto-flow此属性将 row 或 column 作为第一个值,第二个值可选 dense。
grid-auto-flow 使用自动放置算法来调整网格布局。 将其设置为 column,将告诉算法根据需要为内容创建新列。dense 值允许算法回溯并用较小的项目填充网格中的空白,这可能导致项目出现乱序。

.text {grid-column: 2 / 3;font-size: 1.8rem;letter-spacing: 0.6px;column-width: 25rem; /* 使用列宽属性在元素内创建列,而无需使用网格 */text-align: justify;
}

text-align: justify

text-align: justify;是 CSS 中用于实现文本​​两端对齐​​的属性值,它能让段落的左右边缘都整齐地对齐容器边界,呈现出类似报纸或杂志的排版效果。

给引用的名人名言添加引号:

.quote::before {content: '" ';
}.quote::after {content: ' "';
}

column-gap

.text-with-images {display: grid;grid-template-columns: 1fr 2fr;column-gap: 3rem;
}

gap属性是一种同时设置列间隙和行间隙值的简写方式。如果给定一个值,它会将列间距和行间距都设置为该值。如果给定两个值,则将行间距设置为第一个值,将列间距设置为第二个值。

list 无样式

.lists {list-style-type: none;
}

place-items

place-items 属性可用于同时设置 align-items 和 justify-items 的值。 place-items 属性采用一个或两个值。 如果提供了一个值,则它同时用于 align-items 和 justify-items 属性。 如果提供了两个值,则第一个值用于 align-items 属性,第二个值用于 justify-items 属性。


文章转载自:

http://xGEkELsA.nybns.cn
http://Zgepa9gU.nybns.cn
http://RgptnK26.nybns.cn
http://93TqZUQy.nybns.cn
http://FzATjHJO.nybns.cn
http://1kwdP4d6.nybns.cn
http://BBzIn4y1.nybns.cn
http://WCHmLJoK.nybns.cn
http://yEuDwOy6.nybns.cn
http://ILhmvHo2.nybns.cn
http://eQCXupLI.nybns.cn
http://iRkws69r.nybns.cn
http://AQqmiHBc.nybns.cn
http://WCBjgHvi.nybns.cn
http://FKQIxpLb.nybns.cn
http://ZxvZNfJ2.nybns.cn
http://sZfGGUGr.nybns.cn
http://54cLSRwj.nybns.cn
http://m0kI3U5F.nybns.cn
http://GeROqToa.nybns.cn
http://TMwe227k.nybns.cn
http://zniyqCaS.nybns.cn
http://pqTA8DIO.nybns.cn
http://j04B2jLQ.nybns.cn
http://7QiC0WRw.nybns.cn
http://cDYYSYVG.nybns.cn
http://UdVh0pmM.nybns.cn
http://8gPSl8ej.nybns.cn
http://buoTu65x.nybns.cn
http://iifNLj5W.nybns.cn
http://www.dtcms.com/a/377417.html

相关文章:

  • hCaptcha 图像识别 API 对接说明
  • 大模型应用开发八股
  • Linux进程概念(上):进程基本概念和进程状态
  • 汽车EPAS ECU功能安全建模分析:Gamma框架+深度概率编程落地ISO 26262(含寿命预测案例)
  • 深入解析:ES6 中 class 与普通构造器的区别
  • 华清远见25072班网络编程学习day3
  • QT(3)
  • 具有区域引导参考和基础的大型语言模型,用于生成 CT 报告
  • 【QT】-怎么实现瀑布图
  • 【Leetcode hot 100】94.二叉树的中序遍历
  • 渗透测试真的能发现系统漏洞吗
  • 【芯片设计-信号完整性 SI 学习 1.2 -- loopback 回环测试】
  • Android App瘦身方法介绍
  • MySQL修改字段类型避坑指南:如何应对数据截断与转换错误?
  • Linux权限以及常用热键集合
  • 成品油加油站综合监管迈入 “云时代”!智慧物联网涉税数据采集平台推行工作全面推进
  • c primer plus 第五章复习题和练习题
  • C++设计模式,高级开发,算法原理实战,系统设计与实战(视频教程)
  • Spring 统一功能处理
  • ES6基础入门教程(80问答)
  • 第3讲 机器学习入门指南
  • InnoDB 逻辑存储结构:好似 “小区管理” 得层级结构
  • copyparty 是一款使用单个 Python 文件实现的内网文件共享工具,具有跨平台、低资源占用等特点,适合需要本地化文件管理的场景
  • C# 哈希查找算法实操
  • 一个C#开发的Windows驱动程序管理工具!
  • 环境变量
  • Codeforces Round 1049 (Div. 2)
  • Eclipse下载安装图文教程(非常详细,适合新手)
  • vue2迁移到vite[保姆级教程]
  • 基于webpack的场景解决