HTML+CSS进阶用法 (下)——移动端适配、媒体查询和响应式布局

news2024/12/23 17:06:44

    欢迎来到移动端适配方案的介绍!随着移动互联网的快速发展,越来越多的用户通过手机和平板电脑访问网站。为了确保网站能够在各种设备上呈现出最佳的视觉效果和用户体验,我们需要采取有效的适配策略。本篇文章将带你了解几种常用的适配方法,包括宽度适配、等比适配、媒体查询以及使用 flexible.js 和 vw 布局。让我们一起探索如何构建响应式网页,使其能够完美适应不同屏幕尺寸!


文章目录

  • 移动端
    • 适配方案
      • 宽度适配
        • 百分之布局
        • Flex布局
      • 等比适配
        • rem适配
    • rem布局
      • 媒体查询
      • flexible
    • vw布局
  • 响应式网页
    • 媒体查询实现响应式
      • 媒体查询范围值
      • 媒体查询书写顺序
      • 媒体查询完整写法
      • 媒体查询外部引入
    • Bootstrap框架
      • Bootstrap的使用

移动端

适配方案

宽度适配

百分之布局

百分比布局是一种常见的响应式布局方式,它通过将元素的宽度设置为父元素宽度的百分比来实现。这种方式非常适合创建可伸缩的布局。

示例代码

.container {
  width: 100%; /* 容器宽度为100%,即占据父元素的全部宽度 */
}

.item {
  width: 50%; /* 子元素宽度为容器的一半 */
}
Flex布局

Flex布局是一种现代的布局方法,可以轻松地调整元素的位置和大小以适应不同的屏幕尺寸。

示例代码

.container {
  display: flex; /* 容器变为Flex容器 */
  justify-content: space-between; /* 内容在主轴上均匀分布 */
  align-items: center; /* 内容在交叉轴上居中对齐 */
}

.item {
  flex: 1; /* 子元素占满可用空间 */
}

等比适配

rem适配
  • rem单位,是相对单位
  • rem单位是相对于HTML标签的字号计算结果
  • 1rem=1HTML字号大小

rem标准:目前rem布局方案中,将网页等分成10份,HTML标签的字号为视口宽度的1/10。

示例代码:

html {
  font-size: 10vw; /* 字体大小为视口宽度的10% */
}

.container {
  width: 50rem; /* 宽度为根元素字体大小的50倍 */
}

⚠️还有一种方案就是使用less预处理来实现,我也有一篇关于less的教程,大家可以看一看🤗。

  • 一天搞定前端必备开发技能 (2)——less和Sass预处理器的使用_less sass的使用-CSDN博客

rem布局

媒体查询

作用:媒体查询能够检测视口的宽度,然后编写差异化的CSS样式,当某个条件成立,执行对应的CSS样式

语法:

@media (媒体特性){
	选择器{
		CSS样式
	}
}

案例:

@media (width:375px){
		body{
			background-color:pink;
		}
}

flexible

flexible.js是阿里巴巴的手淘开发出的一个用来适配移动端的js库。

核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。

引入文件

<script src="flexible的地址路径"></script>

vw布局

也是一个相对单位,相对视口的尺寸计算结果。

vw:viewportwidth【1vw=1/100视口宽度】

vh:viewportheight【1vh=1/100视口高度】

注意⚠️:并不是vw就给宽度,vh就给高度赋值,这两个是相对单位,宽度和高度都是可以用的。

单位使用要统一!!!

div{
  width: 50vh;
  height:30vh;
  background-color:skyblue;
}
div2{
  width: 50vw;
  height:30vw;
  background-color:skyblue;
}
//这里❌是错误的,要统一使用
div3{
  width: 50vw;
  height:30vh;
  background-color:skyblue;
}

vwvh使用更多,主要是因为:

  1. 页面布局:大多数网页布局更侧重于宽度的适应性。
  2. 设备适应性:不同设备的屏幕高宽比不同,vw 更容易适应这些变化。
  3. 文本排版vw 有助于保持文本的行宽一致,提供更好的阅读体验。

响应式网页

响应式网页是一种使网站能够适应不同设备屏幕尺寸的设计方法。它的主要目的是确保网站在各种设备上都能提供良好的用户体验,无论用户是在台式机、笔记本电脑、平板电脑还是智能手机上浏览。

核心就是通过媒体查询来查询网页宽度或者高度。

媒体查询实现响应式

媒体查询范围值

  • min-width:最小宽度
  • max-height:最大宽度
//当宽度小于700的时候就是红色
@media (max-width:768px){
  html{
  	background-color:red;
  	}
}

//当宽度大于700的时候就是蓝色
@media (min-width:768px){
  html{
  	background-color:blue;
  	}
}

媒体查询书写顺序

媒体查询的书写顺序很重要,以确保正确的样式应用。通常,媒体查询应按照从小屏幕到大屏幕的顺序编写,以确保样式能够正确地覆盖和应用。

书写顺序

  1. 从小到大:从最小的屏幕尺寸开始,逐步过渡到较大的屏幕尺寸。
  2. 从宽泛到具体:先定义适用于最大范围的样式,再逐步添加更具体的条件。

案例:

/* 默认样式,适用于所有设备 */
body {
  background-color: white;
  font-size: 16px;
}

/* 小屏幕设备(如手机) */
@media (max-width: 600px) {
  body {
    background-color: pink;
    font-size: 14px;
  }
}

/* 中等屏幕设备(如平板电脑) */
@media (min-width: 601px) and (max-width: 1024px) {
  body {
    background-color: lightblue;
    font-size: 16px;
  }
}

/* 大屏幕设备(如桌面显示器) */
@media (min-width: 1025px) {
  body {
    background-color: lightgreen;
    font-size: 18px;
  }
}

媒体查询完整写法

语法:

//完整版:
@media 关键词 媒体类型 and (媒体特性){CSS代码}
//简写:
@media (媒体特性){CSS代码}

关键词/逻辑操作符

  • and
  • only
  • not

媒体类型:

image-20240815000926466

媒体特性:

image-20240815001022267

媒体查询外部引入

语法:

<linkrel="stylesheet"media="逻辑符 媒体类型 and(媒体特性)" href="xx.css">

案例:

html文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>简单的响应式案例</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="container">
    <h1>欢迎来到我的网站</h1>
    <p>这是一个简单的响应式网页示例。</p>
  </div>
</body>
</html>

css文件

/* 默认样式 */
body {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  line-height: 1.6;
}

.container {
  max-width: 960px;
  margin: 0 auto;
  padding: 20px;
  text-align: center;
}

h1 {
  font-size: 2em;
}

p {
  font-size: 1em;
}

/* 响应式样式 */
@media (max-width: 600px) {
  h1 {
    font-size: 1.5em;
  }

  p {
    font-size: 0.9em;
  }
}

Bootstrap框架

Bootstrap是由Twitter公司开发维护的前端UI框架,它提供了大量编写好的CSS样式,允许开发者结合一定HTML结构及JavaScript,快速编写功能完善的网页及常见交互效果。

image-20240815001913095

中文官网:https://www.bootcss.com/

Bootstrap的使用

  1. 引入文件

    <linkrel="stylesheet"href="./Bootstrap/css/bootstrap.min.css">
    
  2. 调用类名

    <div class="bootstrap的类名">
    	内容
    </div>
    

    通过本文的学习,我们已经了解了几种主流的移动端适配方案,包括百分比布局、Flex布局、rem适配、媒体查询以及 flexible.js 和 vw 布局的应用。这些方法各有优势,可以根据项目的具体需求灵活选择。记住,优秀的响应式设计不仅能够提升用户体验,还能增加网站的流量和用户留存率。希望这些知识能够帮助你在未来的项目中实现更加出色的响应式设计。感谢阅读,期待你在实践中运用这些技巧,创造出更多令人赞叹的作品!

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

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

相关文章

记事本打不开(保姆级教程)

问题可能是这样的&#xff1a; 1. 应用程序故障&#xff1a;记事本程序可能遇到了临时的应用程序故障或错误。 2. 系统文件损坏&#xff1a;系统文件损坏或丢失可能导致记事本无法正常启动。 3. 注册表问题&#xff1a;注册表中的条目错误或缺失可能影响记事本的加载。 4. 输入…

Blender的Python编程介绍

在Blender这个免费的开源3D设计软件中&#xff0c;最值得称道的一点是可以用Python程序来辅助进行3D设计&#xff0c;我们可以通过Python来调整物体的属性&#xff0c;生成新的物体&#xff0c;甚至生成新的动画等等。 在最近的一个项目中&#xff0c;我用Blender制作了一个动…

PVE 系统下虚拟机数据盘从IDE转换为VIRIO

一、卸载已经挂载的 IDE 数据盘 [rootlocalhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 29G 897M 29G 4% / devtmpfs 909M 0 909M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.5M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgro…

nginx的平滑升级及版本回滚

官方源码包下载地址&#xff1a;nginx: download 一、编译安装Nginx-1.24.0 [rootNginx ~]# dnf install gcc pcre-devel zlib-devel openssl-devel -y [rootNginx ~]# mkdir /nginx #创建目录&#xff0c;将nginx-1.24.0.tar.gz放在这个目录里 [rootNginx nginx]# tar…

C++的动态数组以及std:vector的优化

文章目录 静态数组动态数组代码背景第一种打印方式&#xff1a;使用 for 循环和索引解释 第二种打印方式&#xff1a;使用基于范围的 for 循环解释改进方式&#xff1a;避免拷贝 总结清理数组 代码示例代码分析输出结果总结 代码示例代码详解总结使用 reserve 的优点:使用 empl…

【考研数学】定积分应用——旋转体体积的计算(一文以蔽之)

目录 一、如何计算旋转体体积&#xff1f;思考一个小例子 二、旋转体体积的二重积分表达式 三、用真题&#xff0c;小试牛刀 定积分的应用中&#xff0c;有一类题是求解旋转体的体积问题。 相较于记忆体积计算公式&#xff0c;有一种通法求解体积更不容易出错&#xff1a;二重…

系统数据库介绍及实践

目录 案例 【题目】 【问题 1】(8 分) 【问题 2】(13 分) 【问题 3】(4 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于应用系统数据架构的说明&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某软件公司拟开发一套…

svn文件定时全量备份

在win11操作系统中&#xff0c;使用定时任务脚本的方式实现对SVN文件的定时备份 SVN备份脚本 1 创建脚本simpleBackup.bat 该脚本主要用于实现备份过程的信息展示 echo 正在备份版本库%1...... md %BACKUP_DIRECTORY%\%2 %SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_D…

蓝桥杯 双周赛 第16场 强者赛 题目复盘 (2024年8月10日)

6. 花魁之争 解题思路&#xff1a; 根据题意&#xff0c;对于每一次操作&#xff0c;每个仙女来说都取最优解&#xff0c;那第一次每个仙女都操作一次&#xff0c;这时候胜出的仙女&#xff0c;是一定赢的。所以&#xff0c;只要计算n个字符串操作一次的最优字符串&#xff0c;…

HarmonyOS NEXT - 通过 module 模块化引用公共组件和utils

demo 地址: https://github.com/iotjin/JhHarmonyDemo 代码不定时更新&#xff0c;请前往github查看最新代码 HarmonyOS NEXT 一、HAP & HSP & HAR介绍HAP官方介绍HAR官方介绍HSP官方介绍怎么理解App、HAP、HAR的关系HAR如何转换为HSPHSP模块如何快速切换成HAR模块 二…

【JavaSE】基础知识复习(六)(不全)

1.File与IO流 File类就是代表系统的文件 / 目录&#xff0c;IO流是用来处理File类的 File类 构造器 分隔符&#xff08;三种&#xff09; 第三种File.separator是跨平台的&#xff0c;获取当前操作系统的分隔符 常用方法 length() 返回文件大小(字节)&#xff0c;如果是目录&am…

EcoDev Studio 与 gitlab【拉取项目,切换分支,再修改提交】

1 安装git工具 https://blog.csdn.net/mukes/article/details/115693833 2 创建空项目 3 推送gitlab 1、进入本地该项目目录下&#xff0c;右键Git Bash Here打开git命令窗口 2、初始化本地仓库&#xff1a; git init将本地项目的所有文件添加到暂存区&#xff1a; git a…

EMC学习笔记2——电磁兼容问题分析

分析一个电磁兼容问题一般从三方面入手&#xff0c;分别是骚扰源、敏感源、耦合路径。解决掉其中一个问题&#xff0c;就能解决大部分的电磁兼容问题。 例如&#xff1a;当骚扰源是雷电时&#xff0c;敏感源是电子线路时&#xff0c;我们需要消除的就是耦合电路。 耦合路径就是…

吴恩达机器学习-C2W1L1-神经元和层

在本实验中&#xff0c;我们将探索神经元/单元和层的内部工作原理。特别地&#xff0c;这个实验将与你在课程1中掌握的模型&#xff0c;回归/线性模型和逻辑模型进行类比。本实验室将介绍Tensorflow&#xff0c;并演示如何在该框架中实现这些模型。 包 Tensorflow和Keras Te…

Ubuntu中编译使用ANTs(医学图像配准)含github无法访问问题解决

目录 第一步、修改hosts文件 1.打开https://github.com.ipaddress.com/ 2.打开https://fastly.net.ipaddress.com/github.global.ssl.fastly.net#ipinfo 3.打开hosts文件&#xff0c;并在文件末尾添加如下内容 第二步、编译ANTs 1&#xff09;首先安装git、cmake以及c编译…

基于DVWA-Brute Force(LowMedium)的渗透测试

Brute force主要是通过爆破达到渗透目的&#xff1a; Low 查看源代码&#xff1a; <?phpif( isset( $_GET[ Login ] ) ) {// Get username$user $_GET[ username ];// Get password$pass $_GET[ password ];$pass md5( $pass );// Check the database$query "SE…

流量分析0.o

[陇剑杯 2021]签到 此时正在进行的可能是__________协议的网络攻击。&#xff08;如有字母请全部使用小写&#xff0c;填写样例&#xff1a;http、dns、ftp&#xff09;。得到的flag请使用NSSCTF{}格式提交。 过滤协议 例子:tcp&#xff0c;udp&#xff0c;arp&#xff0c;i…

基于SpringBoot和Leaflet的全国省会城市风景区分布分析实践

目录 前言 一、空间数据表的设计与实现 1、城市信息数据表 2、风景区信息表设计与实现 3、数据库查询应用 二、WebGIS程序设计与实现 1、使用select中转义字符的使用 2、Leaflet空间信息展示 三、省会城市风景区可视化成果展示 1、哈尔滨市风景区分析 2、南京市风景区…

【6大设计原则】依赖倒置原则:构建灵活软件架构的基石 - 通过代码实例深入解析

1.引言 1.1为什么要学习依赖倒置原则 在软件开发过程中&#xff0c;我们经常需要对代码进行修改和扩展。如果代码之间的耦合度过高&#xff0c;那么在进行修改或扩展时&#xff0c;可能会对其他部分的代码产生影响&#xff0c;甚至引发错误。这就要求我们在编写代码时&#xf…

TransFormer学习的一些重要链接

以下是自己在学习和掌握TransFormer中的一些重要链接: 1. 这篇讲解的我看的最明白和清楚&#xff0c;但是仍要结合代码来加深理解。Transformer模型详解&#xff08;图解最完整版&#xff09;https://zhuanlan.zhihu.com/p/338817680 2. 七月在线-TransFormer的文本分类http…