第7章:响应式设计 --[CSS零基础入门]

什么是响应式设计

响应式设计(Responsive Web Design, RWD)是一种网页设计和开发的方法,它使网站能够根据用户的设备特性(如屏幕尺寸、分辨率、方向等)自动调整其布局和内容。响应式设计的目标是确保网站在不同类型的设备上(如桌面电脑、平板电脑、智能手机等)都能提供一致且优化的用户体验,而无需为每种设备创建单独的版本。

响应式设计的核心原则

  1. 流式网格布局(Fluid Grid Layouts)

    • 使用相对单位(如百分比 % 或视窗单位 vw/vh),而不是固定像素值,来定义元素的宽度和高度。
    • 这使得布局可以随着浏览器窗口大小的变化而自动调整,避免了硬编码的尺寸限制。
  2. 弹性图片和媒体(Flexible Images and Media)

    • 设置图片和其他嵌入式媒体的最大宽度为 100%,确保它们不会超出容器的宽度,并且可以在不同的屏幕上适当地缩放。
    • 弹性媒体不仅包括图片,还包括视频、图表等其他类型的嵌入内容。
  3. 媒体查询(Media Queries)

    • CSS 中的一种功能,允许你根据设备的特性(如屏幕宽度、高度、方向等)应用不同的样式规则。
    • 媒体查询使得开发者可以根据特定条件加载不同的样式表或应用不同的样式规则,从而实现更精细的控制。
  4. 移动优先(Mobile-First Approach)

    • 开发时首先针对小屏幕设备进行设计和优化,然后通过媒体查询为更大的屏幕添加额外的样式。
    • 这种方法有助于简化设计过程,并确保网站在所有设备上的性能和可用性。
  5. 触摸友好(Touch-Friendly)

    • 确保按钮、链接和其他交互元素足够大,易于触摸操作,特别是在移动设备上。
    • 考虑到触摸屏设备的用户需求,避免过于紧密的布局,以便用户可以轻松点击目标。
  6. 渐进增强(Progressive Enhancement)

    • 从基础功能开始构建网站,然后逐步增加更多复杂的功能和样式,以支持更高级的浏览器和技术。
    • 这种方法保证了即使是在较旧或受限的设备上,用户也能获得基本的使用体验。

响应式设计的优势

  • 提升用户体验:无论用户使用何种设备访问网站,都能享受到良好的浏览体验。
  • 降低维护成本:只需要维护一个代码库,减少了为不同设备创建多个版本的工作量。
  • SEO 友好:搜索引擎更倾向于推荐响应式设计的网站,因为它们提供了更好的用户体验。
  • 适应未来设备:响应式设计不依赖于特定的设备规格,因此能够更好地适应未来的新型设备和技术。

总之,响应式设计不仅仅是一种技术实现,它更是一种设计理念,强调灵活性、适应性和用户体验。通过响应式设计,网站可以更好地服务于多样化的用户群体,同时保持高效的开发和维护流程。

媒体查询

CSS 媒体查询(Media Queries)是响应式网页设计中的关键工具,允许开发者根据设备的特性(如屏幕宽度、高度、方向等)应用不同的样式规则。通过媒体查询,可以确保网站在不同类型的设备上都能提供最佳的用户体验。

基本语法

媒体查询的基本语法如下:

@media 媒体类型 and (媒体特性) {/* 样式规则 */
}
  • 媒体类型:指定目标设备的类型,如 screen(用于电脑、平板和手机屏幕)、print(用于打印文档或打印预览模式)。常用的值有 all(适用于所有设备,默认值),screenprint
  • 媒体特性:定义条件,只有当这些条件满足时,媒体查询内的样式才会被应用。常见的媒体特性包括 widthheightorientationaspect-ratio 等。

示例

1. 根据屏幕宽度调整布局
/* 当屏幕宽度小于等于 600px 时应用以下样式 */
@media screen and (max-width: 600px) {body {background-color: lightblue;}
}/* 当屏幕宽度大于 600px 小于等于 900px 时应用以下样式 */
@media screen and (min-width: 601px) and (max-width: 900px) {body {background-color: lightgreen;}
}/* 当屏幕宽度大于 900px 时应用以下样式 */
@media screen and (min-width: 901px) {body {background-color: lightcoral;}
}
2. 根据屏幕方向调整布局
/* 当设备处于纵向模式时应用以下样式 */
@media screen and (orientation: portrait) {.container {flex-direction: column;}
}/* 当设备处于横向模式时应用以下样式 */
@media screen and (orientation: landscape) {.container {flex-direction: row;}
}
3. 结合多个媒体特性
/* 当屏幕最小宽度为 768px 且最大高度为 1024px 时应用以下样式 */
@media screen and (min-width: 768px) and (max-height: 1024px) {.content {font-size: 1.2em;}
}
4. 使用 notonly 关键字
  • not:否定一个媒体查询,当条件不满足时应用样式。
  • only:限制样式只应用于特定类型的媒体,并帮助老版本浏览器忽略媒体查询。
/* 只在屏幕宽度小于等于 600px 的情况下应用样式 */
@media only screen and (max-width: 600px) {body {background-color: lightyellow;}
}/* 当不是屏幕宽度小于等于 600px 的情况下应用样式 */
@media not screen and (max-width: 600px) {body {background-color: lightgray;}
}
5. 使用 aspect-ratio 特性
/* 当元素的宽高比为 16:9 时应用以下样式 */
@media (aspect-ratio: 16/9) {.video-container {padding-top: 56.25%; /* 16:9 ratio */position: relative;}.video-container iframe {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}
}

实际应用场景

  • 移动优先设计:先为小屏幕设备设计样式,然后使用媒体查询为更大屏幕添加额外的样式。
  • 优化图片加载:根据设备分辨率选择不同大小或质量的图片,以节省带宽并加快页面加载速度。
  • 适应不同屏幕尺寸:确保网站在各种屏幕尺寸下都有良好的显示效果,从智能手机到桌面显示器。
  • 支持多种设备类型:不仅限于传统的桌面和移动设备,还可以针对智能电视、电子书阅读器等特殊设备进行优化。

注意事项

  • 测试与调试:确保在不同设备和浏览器上测试你的媒体查询,因为实现和支持可能有所不同。
  • 性能考虑:避免过度复杂的媒体查询,过多的条件可能会增加浏览器解析 CSS 的负担,影响性能。
  • 保持简洁:尽量简化媒体查询逻辑,避免嵌套过深,使代码更易于维护和理解。

通过合理使用媒体查询,你可以创建出更加灵活和用户友好的响应式网页,提升用户的浏览体验。

视口单位

CSS 视口单位(Viewport Units)是一种相对于视口(即浏览器窗口或设备屏幕的可见区域)大小来定义元素尺寸的方式。这些单位使得网页设计更加灵活,能够更好地适应不同大小和分辨率的屏幕。视口单位主要包括 vwvhvminvmax

视口单位详解

  • vw (Viewport Width)

    • 1vw 等于视口宽度的 1%。
    • 例如,如果你设置一个元素的宽度为 50vw,那么该元素的宽度将占视口宽度的一半。
  • vh (Viewport Height)

    • 1vh 等于视口高度的 1%。
    • 类似地,如果一个元素的高度被设置为 50vh,则该元素的高度将是视口高度的一半。
  • vmin

    • vmin 等于视口宽度和高度中较小的那个值的 1%。
    • 这意味着在一个正方形屏幕上,1vmin 等于 1vw1vh;但在矩形屏幕上,它等于两者中的较小者。这在确保元素不会因为屏幕比例而变得过大或过小方面非常有用。
  • vmax

    • vmax 等于视口宽度和高度中较大的那个值的 1%。
    • vmin 相反,vmax 选择的是两者中的较大者,适用于希望元素根据屏幕的最大尺寸进行缩放的情况。

示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS 视口单位示例</title>
<style>body {margin: 0;padding: 0;font-family: Arial, sans-serif;}.container {width: 90vw; /* 宽度为视口宽度的 90% */height: 80vh; /* 高度为视口高度的 80% */background-color: lightblue;margin: 5vh auto; /* 上下外边距为视口高度的 5%,左右居中 */padding: 2vh 3vw; /* 内边距为视口高度的 2% 和宽度的 3% */}.text {font-size: 4vw; /* 字体大小为视口宽度的 4% */}
</style>
</head>
<body><div class="container"><p class="text">使用视口单位可以创建响应式布局。</p>
</div></body>
</html>

在这里插入图片描述

解释:
  • .container:

    • 宽度为视口宽度的 90%,因此它会随着屏幕宽度的变化而调整。
    • 高度为视口高度的 80%,同样会随屏幕高度变化。
    • 使用 margin: 5vh auto; 实现上下间距为视口高度的 5%,并且水平居中。
    • 内边距根据视口的高度和宽度设置,以保持一致的比例。
  • .text:

    • 字体大小设置为视口宽度的 4%,这样文本大小也会随着屏幕宽度自动调整,确保在不同设备上都能有良好的可读性。

应用场景

  • 响应式布局:视口单位非常适合用于创建响应式布局,因为它们允许元素根据视口大小动态调整尺寸,无需依赖媒体查询。
  • 全屏背景图片或视频:使用 100vw100vh 可以轻松实现覆盖整个屏幕的背景图像或视频。
  • 导航栏和页脚:通过设置固定的高度(如 7vh),可以使导航栏和页脚在不同设备上保持一致的高度,同时避免硬编码像素值。
  • 字体大小:使用视口单位来定义字体大小可以让文本根据屏幕尺寸自适应,提高可读性和用户体验。

注意事项

  • 移动设备上的地址栏:在某些移动浏览器中,当用户滚动页面时,地址栏可能会隐藏或显示,这会导致视口高度发生变化。因此,在使用 vh 单位时需要注意这一点,可能需要额外的处理来保证布局的稳定性。
  • 最小/最大限制:为了防止元素在极端情况下变得过大或过小,可以结合 min-widthmax-widthmin-heightmax-height 属性来设置合理的限制。
  • 浏览器支持:尽管大多数现代浏览器都支持视口单位,但仍然应该检查目标用户的浏览器兼容性,并考虑提供回退方案。

通过合理利用视口单位,你可以创建出更灵活、更具响应性的网页设计,提升不同设备上的用户体验。

移动优先策略

移动优先策略(Mobile-First Approach)

移动优先策略是一种网页设计和开发的方法,它强调首先为小屏幕设备(如智能手机)设计和优化网站,然后通过媒体查询为更大的屏幕添加额外的样式。这种方法不仅有助于简化设计过程,还能确保网站在所有设备上的性能和可用性。

为什么选择移动优先?
  1. 用户趋势:随着移动设备使用的增长,越来越多的用户通过手机和平板访问网站。因此,优先考虑这些设备可以提供更好的用户体验。
  2. 性能优化:移动设备通常具有较低的处理能力和较慢的网络连接,所以移动优先的设计会更加注重性能优化,减少不必要的资源加载。
  3. 简化开发流程:从最小屏幕开始设计,逐步增加复杂性和样式,可以使代码更简洁、更易于维护。
  4. SEO 友好:Google 推荐移动优先索引,这意味着如果一个网站对移动设备友好,它可能会在搜索引擎结果中获得更好的排名。

实现移动优先策略的关键步骤

1. 使用流式布局和弹性图片
  • 流式网格布局:使用相对单位(如百分比 % 或视窗单位 vw/vh),而不是固定像素值,来定义元素的宽度和高度。
  • 弹性图片:设置图片的最大宽度为 100%,确保它们不会超出容器的宽度,并且可以在不同的屏幕上适当地缩放。
.container {width: 100%;max-width: 1200px;margin: 0 auto;
}img {max-width: 100%;height: auto;
}
2. 利用媒体查询进行增强
  • 从小到大:先为小屏幕设备编写基础样式,然后使用媒体查询为更大屏幕添加额外的样式规则。
  • min-width:使用 min-width 媒体特性,当屏幕宽度达到或超过指定值时应用样式。
/* 移动设备的基础样式 */
body {font-size: 16px;line-height: 1.5;
}nav ul {list-style: none;padding: 0;
}nav li {display: block;margin-bottom: 10px;
}/* 当屏幕宽度大于等于 600px 时应用以下样式 */
@media (min-width: 600px) {nav li {display: inline-block;margin-right: 20px;}
}/* 当屏幕宽度大于等于 900px 时应用以下样式 */
@media (min-width: 900px) {.container {max-width: 900px;}nav ul {display: flex;justify-content: space-between;}
}
3. 触摸友好设计
  • 增大点击区域:确保按钮、链接和其他交互元素足够大,易于触摸操作。
  • 避免紧密布局:考虑到触摸屏设备的用户需求,避免过于紧密的布局,以便用户可以轻松点击目标。
button, a.button {padding: 10px 20px;font-size: 18px;border-radius: 5px;
}
4. 简化导航
  • 汉堡菜单:对于移动设备,使用“汉堡”图标隐藏并展开导航菜单,以节省空间。
  • 单列布局:在较小屏幕上使用单列布局,使内容更容易滚动和浏览。
<nav><button class="menu-toggle"></button><ul class="menu"><li><a href="#home">Home</a></li><li><a href="#about">About</a></li><li><a href="#services">Services</a></li><li><a href="#contact">Contact</a></li></ul>
</nav><style>
.menu {display: none;
}.menu-toggle {display: block;
}@media (min-width: 600px) {.menu {display: flex;}.menu-toggle {display: none;}
}
</style>
5. 图片和多媒体优化
  • 响应式图片:使用 <picture> 元素或 srcset 属性根据设备分辨率选择不同大小或质量的图片,以节省带宽并加快页面加载速度。
  • 懒加载:推迟非关键资源的加载,直到它们进入视口,从而提高初始页面加载速度。
<picture><source media="(min-width: 600px)" srcset="large-image.jpg"><img src="small-image.jpg" alt="Responsive Image">
</picture><img src="image.jpg" loading="lazy" alt="Lazy Loaded Image">

总结

移动优先策略是一种有效的设计理念,它可以帮助开发者创建出适应多种屏幕尺寸和设备类型的响应式网站。通过遵循这一策略,你可以确保网站在所有设备上都能提供良好的用户体验,同时保持高效的开发和维护流程。此外,移动优先还能够帮助提升网站的性能和搜索引擎优化(SEO),从而吸引更多流量并提高用户满意度。

响应式图像

响应式图像(Responsive Images)是确保图像在不同设备和屏幕尺寸上都能良好显示的关键。通过使用 HTML 和 CSS 的组合,你可以根据视口大小、分辨率等因素来优化图像的加载和显示,从而提高网页性能和用户体验。

实现响应式图像的方法

1. 使用 max-widthheight: auto

最简单的方式是让图像根据其容器自动调整大小。这可以通过设置 max-width: 100%height: auto 来实现,确保图像不会超出其容器,并保持正确的宽高比。

img {max-width: 100%;height: auto;
}

这种方法适用于大多数情况,但并不考虑不同的屏幕分辨率或图像密度。

2. 使用 <img> 标签的 srcset 属性

srcset 属性允许你为同一图像提供多个版本,并根据用户的设备选择最适合的版本。这有助于减少移动设备上的数据流量并提升加载速度。

<img src="small.jpg" srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 2000w"alt="Responsive Image">
  • src:默认图像源,当浏览器不支持 srcset 时使用。
  • srcset:列出不同宽度的图像资源,并指定每个资源的宽度(如 500w 表示宽度为 500 像素)。
  • 浏览器会根据视口大小和设备像素比率选择最合适的一个图像版本。
3. 使用 <picture> 元素

<picture> 元素提供了更复杂的控制,可以定义一组条件,根据这些条件来选择适当的图像。它通常与 sourceimg 元素一起使用。

<picture><source media="(min-width: 1200px)" srcset="large.jpg"><source media="(min-width: 600px)" srcset="medium.jpg"><img src="small.jpg" alt="Responsive Image">
</picture>
  • <source>:定义了不同的图像资源及其对应的媒体查询条件。浏览器会按照顺序检查这些条件,直到找到匹配的第一个条件为止。
  • <img>:作为回退选项,当没有 source 匹配时使用。
4. 使用 sizes 属性

sizes 属性用于描述图像将占用的空间,帮助浏览器更好地决定从 srcset 中选择哪个图像版本。这对于那些在不同布局中宽度变化较大的图像特别有用。

<img src="small.jpg" srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 2000w"sizes="(max-width: 600px) 100vw, (max-width: 1200px) 50vw, 33vw"alt="Responsive Image">
  • sizes:定义了一系列媒体查询条件和相应的图像宽度值(如 100vw 表示视口宽度的 100%,即全屏宽度)。
  • 浏览器会根据当前视口宽度选择一个合适的图像版本。
5. 使用 CSS 背景图像

对于某些情况,使用 CSS 背景图像可能是更好的选择,特别是当你需要对图像进行更多的样式控制时。你可以结合媒体查询来改变背景图像的 URL 或大小。

.background-image {background-image: url('small.jpg');background-size: cover;
}@media (min-width: 600px) {.background-image {background-image: url('medium.jpg');}
}@media (min-width: 1200px) {.background-image {background-image: url('large.jpg');}
}

最佳实践

  • 懒加载(Lazy Loading):推迟非关键资源的加载,直到它们进入视口,以提高初始页面加载速度。HTML 支持原生懒加载,只需添加 loading="lazy" 属性即可。

    <img src="image.jpg" loading="lazy" alt="Lazy Loaded Image">
    
  • WebP 图像格式:现代浏览器广泛支持 WebP 格式,它可以提供更好的压缩率而不会显著降低质量。你可以使用 <picture> 元素来为支持 WebP 的浏览器提供 WebP 版本的图像,同时为其他浏览器提供回退选项。

    <picture><source type="image/webp" srcset="image.webp"><img src="image.jpg" alt="WebP and Fallback Image">
    </picture>
    
  • 避免不必要的大图:尽量不要为小屏幕设备提供过大的图像,因为这会浪费带宽并延长加载时间。使用上述方法之一来确保为每种设备提供适当大小的图像。

通过采用这些技术和最佳实践,你可以创建出高效的响应式图像,使你的网站在各种设备上都表现出色,同时优化性能和用户体验。

响应式框架简介

CSS 响应式框架简介

响应式框架是预先构建的 CSS 和 JavaScript 库,它们提供了一系列工具和组件,帮助开发者更快速、高效地创建响应式网页。这些框架通常包括预定义的样式、网格系统、实用工具类(utility classes)、以及交互组件(如导航栏、按钮、表单等),使得开发者可以专注于核心功能的开发,而不必从头开始设计每一个元素。

常见的响应式框架
  1. Bootstrap

    • 概述:Bootstrap 是最流行的前端框架之一,提供了丰富的组件库和强大的栅格系统,支持移动优先的设计理念。
    • 特点
      • 预定义的 CSS 类和组件,易于使用。
      • 强大的栅格系统,适用于各种屏幕尺寸。
      • 内置 JavaScript 插件,如模态框、下拉菜单等。
      • 大量的社区支持和文档资源。
    • 官网:getbootstrap.com
  2. Foundation

    • 概述:由 ZURB 开发,Foundation 是另一个非常流行且灵活的响应式框架,强调可定制性和模块化设计。
    • 特点
      • 模块化的架构,允许选择性引入所需的功能。
      • 支持 Sass 编译,方便自定义主题。
      • 丰富的 UI 组件和插件。
      • 良好的浏览器兼容性和性能优化。
    • 官网:foundation.zurb.com
  3. Tailwind CSS

    • 概述:Tailwind CSS 是一个实用工具优先的 CSS 框架,它不提供现成的组件或布局,而是通过一组低级别的实用工具类来构建自定义设计。
    • 特点
      • 实用工具类(如 p-4 表示内边距为 4px)让开发者可以直接在 HTML 中编写样式。
      • 提供高度灵活性,适合创建独特的设计。
      • 内置对响应式设计的支持,简化了媒体查询的使用。
      • 通过 PurgeCSS 自动移除未使用的样式,减小生产环境下的文件大小。
    • 官网:tailwindcss.com
  4. Bulma

    • 概述:Bulma 是一个基于 Flexbox 的现代 CSS 框架,以简洁易用著称,具有清晰的文档和支持。
    • 特点
      • 简洁直观的 API 和组件。
      • 使用 Flexbox 构建,确保跨浏览器一致性。
      • 完全响应式,内置对移动设备的支持。
      • 支持 Sass 编译,便于扩展和自定义。
    • 官网:bulma.io
  5. Materialize

    • 概述:Materialize 是一个遵循 Google Material Design 规范的响应式框架,提供了美观的默认样式和丰富的组件。
    • 特点
      • 严格遵循 Material Design 指南,保证一致的设计语言。
      • 包含大量的预设组件,如卡片、表格、图标等。
      • 内置动画效果和交互特性。
      • 支持 Sass 编译,方便主题定制。
    • 官网:materializecss.com
响应式框架的核心特性
  1. 栅格系统(Grid System)

    • 栅格系统是响应式设计的基础,它允许你轻松创建多列布局,并根据屏幕尺寸调整列宽。
    • 框架通常提供固定的列数(如 12 列),并支持通过媒体查询自动适应不同设备。
  2. 实用工具类(Utility Classes)

    • 许多框架提供了一套低级别的实用工具类,用于快速设置常见的样式属性(如边距、填充、字体大小等)。
    • 这些类可以直接应用于 HTML 元素,减少了重复编写 CSS 的需要。
  3. 组件库(Component Library)

    • 响应式框架通常包含一系列预构建的 UI 组件,如按钮、导航栏、表单控件等。
    • 这些组件已经过优化,确保在不同设备上的表现一致,并且易于集成到项目中。
  4. JavaScript 插件(JavaScript Plugins)

    • 一些框架还提供了额外的 JavaScript 插件,增强了页面的交互性,如模态框、轮播图、下拉菜单等。
    • 这些插件通常与框架的 CSS 样式无缝集成,简化了开发过程。
  5. 移动优先设计(Mobile-First Approach)

    • 现代响应式框架大多采用移动优先的设计理念,首先为小屏幕设备优化,然后逐步增强大屏幕上的体验。
    • 这种方法有助于提高性能,确保网站在所有设备上都能提供良好的用户体验。
  6. 浏览器兼容性(Browser Compatibility)

    • 响应式框架通常经过广泛的测试,确保在主流浏览器中的兼容性和稳定性。
    • 它们还会处理一些常见的跨浏览器问题,使开发者无需担心这些问题。
  7. 性能优化(Performance Optimization)

    • 为了提高加载速度和渲染效率,许多框架都注重性能优化,例如通过懒加载图片、最小化 CSS 文件等方式。
选择合适的框架

选择响应式框架时,应考虑以下因素:

  • 项目需求:评估项目的具体需求,确定是否需要特定的功能或组件。
  • 团队技能:考虑团队成员的技术背景和偏好,选择易于学习和使用的框架。
  • 维护和支持:查看框架的活跃度、更新频率以及社区支持情况,确保长期维护的可能性。
  • 定制能力:如果项目有独特的设计要求,选择一个易于定制的框架非常重要。

通过使用响应式框架,你可以大大缩短开发时间,同时确保网站在不同设备上的表现一致且优化良好。每个框架都有其独特的优势和适用场景,因此在选择之前最好进行充分的研究和试用。

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

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

相关文章

探索 ONLYOFFICE 8.2 版本:更高效、更安全的云端办公新体验

引言 在当今这个快节奏的时代&#xff0c;信息技术的发展已经深刻改变了我们的工作方式。从传统的纸质文件到电子文档&#xff0c;再到如今的云端协作&#xff0c;每一步技术进步都代表着效率的飞跃。尤其在后疫情时代&#xff0c;远程办公成为常态&#xff0c;如何保持团队之间…

Vue-打印自定义HTML表格

自定义打印方法 1. 准备HTML结构 首先&#xff0c;构造了一个基本的HTML页面框架&#xff0c;并设置了页面的字符编码为UTF-8&#xff0c;以确保中文和其他特殊字符能正确显示。页面的标题设置为传入的 title 参数值。 let printStr "<html><head><met…

http1.0、1.1、2.0、 3.0

http1.0、1.1、2.0、 3.0 http1.1 引入长连接&#xff0c;在1.0&#xff0c;每次请求都需要建立新的TCP连接&#xff0c;处理请求完毕后立即断开。就导致处理大量图片&#xff0c;链接等资源&#xff0c;需要大量的连接与断开&#xff0c;造成资源浪费和时间延迟。而长连接允许…

跟着问题学15——GRU网络结构详解及代码实战

1 RNN的缺陷——长期依赖的问题 &#xff08;The Problem of Long-Term Dependencies&#xff09; 前面一节我们学习了RNN神经网络&#xff0c;它可以用来处理序列型的数据&#xff0c;比如一段文字&#xff0c;视频等等。RNN网络的基本单元如下图所示&#xff0c;可以将前面的…

pytest中使用conftest做测试前置和参数化

pytest中比较高阶的应用是&#xff0c;使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件&#xff0c;用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件&#xff0c;以便在多个测试模块之间共享配置信息。即&#xff0…

04 创建一个属于爬虫的主虚拟环境

文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…

mvn test 失败,单独运行单元测试成功

标题mvn test 失败&#xff0c;单独运行单元测试成功 使用junit4进行单元测试时是通过的&#xff0c;但是在执行maven的test与package时测试不通过 报错信息&#xff1a; parse data from Nacos error,dataId:guoyu-new-asset-dev.yml,data: ....... 配置文件内容 ....... o…

android 富文本及展示更多组件

模拟微博 #热贴 和 用户 的这种 富文本形式组件&#xff0c;不说了&#xff0c; 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…

gitlab 生成并设置 ssh key

一、介绍 &#x1f3af; 本文主要介绍 SSH Key 的生成方法&#xff0c;以及如何在GitLab上添加SSH Key。GitLab 使用SSH协议与Git 进行安全通信。当您使用 SSH密钥 对 GitLab远程服务器进行身份验证时&#xff0c;您不需要每次都提供您的用户名和密码。SSH使用两个密钥&#x…

保姆级教程Docker部署Nacos镜像

目录 1、创建挂载目录 2、拉取 Nacos 镜像 3、临时启动并复制文件 4、创建Nacos表结构 5、修改Nacos配置 6、正式启动 Nacos 7、登录Nacos 1、创建挂载目录 在宿主机上创建一个目录用于配置文件映射&#xff0c;这个目录将作为数据卷挂载到容器内部&#xff0c;使得我…

【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

【银河麒麟操作系统真实案例分享】内存黑洞导致服务器卡死分析全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 机房显示器连接服务器后黑屏&#xff…

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展&#xff0c;旅游已经成为人…

【数据库】关系代数和SQL语句

一 对于教学数据库的三个基本表 学生S(S#,SNAME,AGE,SEX) 学习SC(S#,C#,GRADE) 课程(C#,CNAME,TEACHER) &#xff08;1&#xff09;试用关系代数表达式和SQL语句表示&#xff1a;检索WANG同学不学的课程号 select C# from C where C# not in(select C# from SCwhere S# in…

IS-IS二

目录 ISIS建立邻接关系的基本条件&#xff1a; 1、接口链路类型一致 2、广播型链路上&#xff0c;接口类型一致 3、Hello包级别和类型一致 4、L1区域的ID要一致&#xff0c;L2的邻居区域ID不做要求 5、L1-2在区域ID相同下&#xff0c;即建立L1也建立L2区域ID不同只能建立…

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 &#x1f4dd; 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能的飞速发展&#xff0c;越来越多的开发者尝试在本地环境中部署大模型进行实验。然而&#xff0c;由于资源需求高、网络限制多…

设计模式の单例工厂原型模式

文章目录 前言一、单例模式1.1、饿汉式静态常量单例1.2、饿汉式静态代码块单例1.3、懒汉式单例&#xff08;线程不安全&#xff09;1.4、懒汉式单例&#xff08;线程安全&#xff0c;同步代码块&#xff09;1.5、懒汉式单例&#xff08;线程不安全&#xff0c;同步代码块&#…

net.sf.jsqlparser.statement.select.SelectItem

今天一启动项目&#xff0c;出现了这个错误&#xff0c;仔细想了想&#xff0c;应该是昨天合并代码&#xff0c;导致的mybatis-plus版本冲突&#xff0c;以及分页PageHelper版本不兼容 可以看见这个我是最下边的Caused by 报错信息&#xff0c;这个地方提示我 net .sf.jsqlpar…

第427场周赛: 转换数组、用点构造面积最大的矩形 Ⅰ、长度可被 K 整除的子数组的最大元素和、用点构造面积最大的矩形 Ⅱ

Q1、转换数组 1、题目描述 给你一个整数数组 nums&#xff0c;它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result &#xff1a; 对于每个下标 i&#xff08;其中 0 < i < nums.length&#xff09;&#xff0c;独立执行以下操作&#xff1a; 如…

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…