上升响应式Web设计:纯HTML和CSS的实现技巧-1
响应式Web设计(Responsive Web Design, RWD)是一种旨在确保网站在不同设备和屏幕尺寸下都能良好运行的网页设计策略。通过纯HTML和CSS实现响应式设计,主要依赖于媒体查询(Media Queries)、灵活的布局、可伸缩的图片和字体、以及适当的视口设置等技术。
1. 视口元标签(Viewport Meta Tag)
在HTML文档的<head>部分添加视口元标签是响应式设计的基础。这个标签告诉浏览器如何控制页面的尺寸和比例。最常用的设置是:
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
width=device-width:使页面的宽度与设备的屏幕宽度一致。initial-scale=1.0:设置初始缩放比例为1:1,即页面按照实际大小显示,不进行缩放。
2. 媒体查询(Media Queries)
媒体查询是CSS3引入的一个强大功能,它允许你根据不同的媒体类型和条件应用不同的样式规则。在响应式设计中,媒体查询主要用于根据不同的屏幕尺寸应用不同的布局和样式。
示例:
/* 基础样式 */ | |
body { | |
font-family: Arial, sans-serif; | |
margin: 0; | |
padding: 0; | |
} | |
/* 屏幕宽度大于600px时应用的样式 */ | |
@media (min-width: 600px) { | |
.container { | |
width: 80%; | |
margin: auto; | |
} | |
} | |
/* 屏幕宽度小于600px时应用的样式 */ | |
@media (max-width: 599px) { | |
.container { | |
width: 100%; | |
padding: 20px; | |
} | |
} |
在这个例子中,我们定义了一个.container类,它根据屏幕宽度的大小改变其宽度和边距。
3. 灵活的布局(Flexbox 和 Grid)
Flexbox(弹性盒模型)和Grid(网格布局)是CSS3中引入的两种强大的布局模式,它们为创建响应式布局提供了极大的便利。
Flexbox
Flexbox允许容器内的元素能够在不同的屏幕尺寸和方向下灵活地排列、对齐和分配空间。
.flex-container { | |
display: flex; | |
flex-wrap: wrap; /* 允许子元素换行 */ | |
justify-content: space-between; /* 子元素之间的间隔 */ | |
} | |
.flex-item { | |
flex: 1; /* 子元素平均分配空间 */ | |
padding: 10px; | |
} |
Grid
Grid布局提供了一个二维布局系统,通过行和列来定位元素。它非常适合创建复杂的响应式布局。
.grid-container { | |
display: grid; | |
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); /* 根据容器宽度自动填充列,每列最小200px,最大为可用空间 */ | |
gap: 10px; /* 网格项之间的间隔 */ | |
} | |
.grid-item { | |
/* 网格项样式 */ | |
} |
4. 可伸缩的图片
为了确保图片在不同设备上都能良好显示,你可以使用CSS的max-width属性结合height: auto;来使图片可伸缩。
img { | |
max-width: 100%; | |
height: auto; | |
} |
这样设置后,图片将自动调整其宽度以适应其父容器的宽度,同时保持其原始的宽高比。
5. 字体大小与可访问性
在响应式设计中,字体大小也应该随着屏幕尺寸的变化而调整,以确保内容的可读性。你可以使用vw(视口宽度的百分比)或em/rem单位来设置字体大小,或者使用媒体查询来定义不同的字体大小规则:
/* 使用vw单位 */ | |
body { | |
font-size: calc(14px + (26 - 14) * ((100vw - 300px) / (1600 - 300))); | |
} | |
/* 使用媒体查询 */ | |
@media (max-width: 600px) { | |
body { | |
font-size: 14px; | |
} | |
} | |
@media (min-width: 601px) and (max-width: 120 |
未完
相关文章:
上升响应式Web设计:纯HTML和CSS的实现技巧-1
响应式Web设计(Responsive Web Design, RWD)是一种旨在确保网站在不同设备和屏幕尺寸下都能良好运行的网页设计策略。通过纯HTML和CSS实现响应式设计,主要依赖于媒体查询(Media Queries)、灵活的布局、可伸缩的图片和字…...
利用java结合python实现gis在线绘图,主要技术java+python+matlab+idw+Kriging
主要技术javapythonmatlabidwKriging** GIS中的等值面和等高线绘图主要用于表达连续空间数据的分布情况,特别适用于需要展示三维空间中某个变量随位置变化的应用场景。 具体来说,以下是一些适合使用GIS等值面和等高线绘图的场景: 地形与地貌…...
Android全面解析之context机制(三): 从源码角度分析context创建流程(下)
前言 前面已经讲了什么是context以及从源码角度分析context创建流程(上)。限于篇幅把四大组件中的广播和内容提供器的context获取流程放在了这篇文章。广播和内容提供器并不是context家族里的一员,所以他们本身并不是context,因而…...
执行docker compose命令出现 Additional property include is not allowed
问题背景 在由docker-compose.yml的文件目录下执行命令 docker compose up -d 出现错误 Additional ininoperty include is not allowed 原因 我的docker-compose.yml 文件中出现了include标签旧版本的docker-compose 不支持此标签 解决办法 下载支持的docker-compose 解决…...
STM32通过I2C硬件读写MPU6050
目录 STM32通过I2C硬件读写MPU6050 1. STM32的I2C外设简介 2. STM32的I2C基本框图 3. STIM32硬件I2C主机发送流程 10位地址与7位地址的区别 7位主机发送的时序流程 7位主机接收的时序流程 4. STM32硬件与软件的波形对比 5. STM32配置硬件I2C外设流程 6. STM32的I2C.h…...
ubuntu2204-中文输入法-pycharm-python-django开发环境搭建
文章目录 1.系统常用设置1.1.安装中文输入法1.2.配置输入法1.3.卸载输入法1.4.配置镜像源2.java安装3.pycharm安装与启动4.卸载ubuntu2204默认版本5.安装Anaconda5.1.安装软件依赖包5.2.安装命令5.3.激活安装5.4.常用命令5.5.修改默认启动源6.安装mysql6.1.离线安装mysql6.2.在…...
【学习笔记】Matlab和python双语言的学习(一元线性回归)
文章目录 前言一、一元线性回归回归分析的一般步骤一元线性回归的基本形式回归方程参数的最小二乘法估计对回归方程的各种检验估计标准误差的计算回归直线的拟合优度判定系数显著性检验 二、示例三、代码实现----Matlab四、代码实现----python回归系数的置信区间公式残差的置信…...
LeetCode //C - 316. Remove Duplicate Letters
316. Remove Duplicate Letters Given a string s, remove duplicate letters so that every letter appears once and only once. You must make sure your result is the smallest in lexicographical order among all possible results. Example 1: Input: s “bcabc”…...
【ARM+Codesys 客户案例 】RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:PCB板焊接机
现代化生产中,电子元件通常会使用自动化设备来进行生产,例如像PCB(印刷电路板)的组装。但是生产过程中也会面临一些问题,类似于如何解决在PCB板上牢固、精准地安装各种组件呢?IBL Lttechnik GmbH公司的CM80…...
【二分查找】--- 初阶题目赏析
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Joureny 上篇我们讲解了关于二分的朴素模板和边界模板,本篇博客我们试着运用这些模板。 🏠 搜索插入位置 📌 题目…...
【PostgreSQL003】PostgreSQL数据表空间膨胀,磁盘爆满,应用宕机(经验总结,已更新)
1.一直以来想写下基于PostgreSQL的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下PostgreSQL数据库相关知识体系。空间膨胀(主键、外键、…...
C语言第20天笔记
文件操作 概述 什么是 文件 文件时保存在外存储器上(一般代指磁盘,也可以是U盘、移动硬盘等)的数据的集合。 文件操作体现在哪几个方面 1. 文件内容的读取 2. 文件内容的写入 数据的读取和写入可被视为针对文件进行输入和输出的操作&a…...
为什么穷大方
为什么有些人明明很穷,却非常的大方呢? 因为他们认知太低,根本不懂钱的重要性,总是想着及时享乐,所以一年到头也存不了什么钱。等到家人孩子需要用钱的时候,什么也拿不出来,还到处去求人。 而真…...
HiveSQL实战——大数据开发面试高频SQL题
查询每个区域的男女用户数 0 问题描述 每个区域内男生、女生分别有多少个 1 数据准备 use wxthive; create table t1_stu_table (id int,name string,class string,sex string ); insert overwrite table t1_stu_table values(4,张文华,二区,男),(3,李思雨,一区,女),(1…...
RabbitMQ集群 - 普通集群搭建、宕机情况
文章目录 RabbitMQ 普通集群概述集群搭建数据准备启动容器宕机情况 RabbitMQ 普通集群 概述 1)普通模式中所有节点没有主从之分,所有节点的元数据(交换机、队列、绑定等)都是一致的. 例如只要有任意一个节点上面 新增交换机&…...
xssDOM型练习
文章目录 例1要求 例2代码解析方法 例3例4例5例6例7例8 例1 本题通过get接收并传递参数,所有参数不经过过滤直接放入h2标签里面。 要求 1.需要页面弹出1337 2.不能与用户交互 官方认为innerHTML中script标签不安全,所以将其禁用,但只禁用了…...
python中的gradio使用麦克风时报错
python中的gradio使用麦克风时报错 当运行至 import gradio as gr with gr.Blocks() as demo:with gr.Tab("microphone transcriber"):gr.Audio(source"microphone", type"numpy", streamingTrue)demo.queue()##访问链接 https://ip:1235/demo…...
Oracle(63)什么是临时表(Temporary Table)?
临时表(Temporary Table)是一种特殊类型的表,用于存储临时数据,这些数据在会话期间或事务期间是短暂的。临时表在不同的数据库系统中都有实现,但功能和特性可能有所不同。临时表通常用于存储中间计算结果、临时数据处理…...
《Techporters架构搭建》-Day06 国际化
什么是国际化? 国际化,也叫i18n,为什么叫i18n呢? "i18n"是国际化(internationalization)的缩写,数字18代表了国际化这个单词中间的字母数量。类似这样的缩写还有k8s(kube…...
Linux ACL 访问控制
今天给伙伴们分享一下Linux ACL 访问控制,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步…...
Pixel Dream Workshop 算法原理浅析:从扩散模型到创意生成
Pixel Dream Workshop 算法原理浅析:从扩散模型到创意生成 1. 引言:理解扩散模型的价值 最近两年,扩散模型在图像生成领域掀起了一场革命。从最初的DALLE到Stable Diffusion,再到各种创意生成工具,这项技术正在改变我…...
SOONet实战教程:结合Whisper提取音频文本,构建音视频联合语义定位Pipeline
SOONet实战教程:结合Whisper提取音频文本,构建音视频联合语义定位Pipeline 1. 项目概述 今天给大家介绍一个特别实用的技术方案:如何用SOONet视频时序定位系统,结合Whisper语音识别,构建一个完整的音视频语义定位pip…...
【Python内存管理2026权威白皮书】:GIL演进、引用计数重构与GC智能调度三大突破性策略首次公开
第一章:Python智能体内存管理策略2026最新趋势全景概览随着大语言模型驱动的Python智能体(Agent)在生产环境中的深度部署,传统CPython内存管理机制正面临前所未有的挑战:动态工具调用、多轮推理缓存、跨Agent状态共享及…...
嵌入式C++ RAII互斥锁封装器MutexLocker详解
1. MutexLocker:嵌入式C RAII风格互斥锁封装器深度解析1.1 设计动机与工程价值在基于mbed RTOS(现为Mbed OS中CMSIS-RTOS v2兼容层)的嵌入式实时系统开发中,互斥量(Mutex)是保障多任务共享资源安全访问的核…...
手把手教你用Swaks和Gophish绕过SPF,搭建自己的邮件钓鱼测试环境(附避坑指南)
企业级邮件安全测试实战:从SPF绕过到钓鱼环境搭建 邮件安全测试已成为企业安全防护体系中不可或缺的一环。据统计,超过90%的网络攻击始于钓鱼邮件,而其中近40%的成功攻击源于SPF配置不当或完全缺失。本文将系统性地介绍如何构建一个完整的邮件…...
OpenClaw+Qwen3-VL:30B:个人多模态AI助手全流程
OpenClawQwen3-VL:30B:个人多模态AI助手全流程 1. 为什么选择这个组合? 去年冬天,我发现自己陷入了一个典型的知识工作者困境:每天要处理大量图片资料(产品截图、会议白板照片、技术文档截图),…...
AI写论文实用宝典,4款AI论文生成工具搞定各类论文写作!
在2025年的学术写作智能化浪潮中,越来越多的人开始依赖AI写论文工具进行创作。尽管这些工具的使用越来越普遍,但在撰写硕士、博士论文等较长篇幅的学术文章时,许多AI论文写作工具往往陷入缺乏理论深度和逻辑性不强的问题。普通的AI写专著或AI…...
PdgCntEditor三步搞定PDF书签目录自动生成
1. 为什么你需要PDF书签目录? 每次打开几百页的PDF文档,像无头苍蝇一样滑动滚动条找内容?这种体验我太懂了。上周处理一份300多页的技术手册,光是翻目录就花了半小时,直到我发现PdgCntEditor这个神器。它能把杂乱无章…...
UE5 RPG开发实战:用接口轻松搞定鼠标悬停敌人描边(含完整蓝图与C++代码)
UE5 RPG开发实战:用接口实现敌人悬停描边的高效方案 在动作角色扮演游戏(ARPG)开发中,清晰的交互反馈是提升玩家体验的关键环节。当玩家将鼠标悬停在敌人身上时,如何直观地标识当前选中的目标?本文将深入探…...
