前端必知必会-html布局和响应式网页设计

news2024/11/21 0:13:30

文章目录

  • HTML 布局
  • CSS 框架
  • CSS 浮动布局
  • CSS flex布局
  • CSS 网格布局
  • HTML 响应式网页设计
  • 设置viewport
  • 响应式图像
  • 使用 max-width 属性
  • 根据浏览器宽度显示不同的图像
  • 响应式文本大小
  • 媒体查询
  • Bootstrap
  • 总结


HTML 布局

html布局

HTML5 有几个语义元素,它们定义网页的不同部分:
<header> - 定义文档或部分的页眉
<nav> - 定义一组导航链接
<section> - 定义文档中的部分
<article> - 定义独立的、自包含的内容
<aside> - 定义除内容之外的内容(如侧边栏)
<footer> - 定义文档或部分的页脚
<details> - 定义用户可以根据需要打开和关闭的其他详细信息
<summary> - 定义 元素的标题

有四种不同的技术可以创建多列布局。每种技术都有其优缺点:

CSS 框架
CSS 浮动属性
CSS 弹性框
CSS 网格

CSS 框架

快速创建布局可以使用 CSS 框架,如 Bootstrap。

CSS 浮动布局

通常使用 CSS 浮动属性进行整个网页布局。浮动需要记住浮动和清除属性的工作原理。缺点:浮动元素与文档流绑定,这可能会损害灵活性。

CSS flex布局

使用flex布局可确保当页面布局必须适应不同的屏幕尺寸和不同的显示设备时,元素的行为可预测。

CSS 网格布局

CSS 网格布局模块提供基于网格的布局系统,包含行和列,可让您更轻松地设计网页,

HTML 响应式网页设计

响应式网页设计将自动调整以适应不同的屏幕尺寸和视口。

什么是响应式网页设计?
响应式网页设计就是使用 HTML 和 CSS 自动调整、隐藏、缩小或放大网站,使其在所有设备(台式机、平板电脑和手机)上看起来都不错:

设置viewport

要创建响应式网站,请将以下 <meta> 标记添加到所有网页:

示例

<meta name="viewport" content="width=device-width, initial-scale=1.0">

这将设置页面的视口,从而向浏览器提供有关如何控制页面尺寸和缩放比例的说明。

响应式图像

响应式图像是可以很好地缩放以适应任何浏览器尺寸的图像。

使用 width 属性
如果 CSS width 属性设置为 100%,则图像将响应并放大和缩小:

示例

<img src="img_girl.jpg" style="width:100%;">

请注意,在上面的示例中,图像可以放大到比其原始尺寸更大。在许多情况下,更好的解决方案是改用 max-width 属性。

使用 max-width 属性

如果 max-width 属性设置为 100%,则图像会根据需要缩小,但绝不会放大到大于其原始大小:

示例

<img src="img_girl.jpg" style="max-width:100%;height:auto;">

根据浏览器宽度显示不同的图像

HTML <picture> 元素允许您为不同的浏览器窗口大小定义不同的图像。

调整浏览器窗口的大小,查看下面的图像如何根据宽度变化:

示例

<picture>
	<source srcset="img_smallflower.jpg" media="(max-width: 600px)">
	<source srcset="img_flowers.jpg" media="(max-width: 1500px)">
	<source srcset="flowers.jpg">
	<img src="img_smallflower.jpg" alt="">
</picture>

响应式文本大小

文本大小可以用“vw”单位设置,意思是“视口宽度”。

这样,文本大小将遵循浏览器窗口的大小

示例

<h1 style="font-size:10vw">Hello World</h1>

视口是浏览器窗口大小。1vw = 视口宽度的 1%。如果视口宽度为 50cm,则 1vw 为 0.5cm。

媒体查询

除了调整文本和图像的大小外,在响应式网页中使用媒体查询也很常见。

使用媒体查询,您可以为不同的浏览器大小定义完全不同的样式。

示例:调整浏览器窗口大小,可以看到下面的三个 div 元素将在大屏幕上水平显示,并在小屏幕上垂直堆叠:

<style>
.left, .right {
float: left;
width: 20%; /* 宽度默认为 20% */
}

.main {
float: left;
width: 60%; /* 默认情况下,宽度为 60% */
}

/* 使用媒体查询在 800px 处添加断点:*/
@media screen and (max-width: 800px) {
.left, .main, .right {
width: 100%; /* 当视口为 800px 或更小时,宽度为 100% */
}
}
</style>

Bootstrap

流行的 CSS 框架 Bootstrap:

示例

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap 5 示例</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>

<div class="container-fluid p-5 bg-primary text-white text-center">
<h1>我的第一个 Bootstrap 页面</h1>
<p>调整此响应式页面的大小以查看效果!</p>
</div>

<div class="container mt-5">
<div class="row">
<div class="col-sm-4">
<h3>第 1 列</h3>
<p>Lorem ipsum...</p>
</div>
<div class="col-sm-4">
<h3>第 2 列</h3>
<p>Lorem ipsum...</p>
</div>
<div class="col-sm-4">
<h3>列3</h3>
<p>Lorem ipsum...</p>
</div>
</div>
</div>

总结

本文介绍了的html布局和响应式网页设计的使用,如有问题欢迎私信和评论

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

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

相关文章

【Python系列】Python 中的垃圾收集:深入理解与实践

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

vue中使用Marked实现预览md文件(base64编码图片)

vue中使用Marked实现预览md文件&#xff08;base64编码图片&#xff09; 在上一篇vue-markdown实现预览md文件时&#xff0c;后端返回的图片格式是base64格式的&#xff0c;试了很多方法都不能显示&#xff0c;因此换成了marked插件进行预览&#xff0c;同时也支持显示大纲目录…

入门 PyQt6 看过来(案例)12~ 列表增删排序

本文介绍如何实现列表增加删除和排序的功能&#xff0c;效果如下&#xff1a; 1 页面设计 1.1 列表 #列表数据self.list [福宝, 萌兰, 金虎,蓝天]# 创建四行一列标准数据模型self.modeQStandardItemModel(4,1)# 将数据中的列表项作为标准数据模型输出for i in range(self.mod…

17.延迟队列

介绍 延迟队列&#xff0c;队列内部是有序的&#xff0c;延迟队列中的元素是希望在指定时间到了以后或之前取出和处理。 死信队列中&#xff0c;消息TTL过期的情况其实就是延迟队列。 使用场景 1.订单在十分钟内未支付则自动取消。 2.新创建的店铺&#xff0c;如果十天内没…

tomat 启动项目请求中文乱码 日志乱码

tomat 启动项目请求中文乱码 日志乱码 tomat 启动项目请求中文乱码 日志乱码检查tomcat编码检查项目编码检查服务器编码修改catalina.bat 测试 tomat 启动项目请求中文乱码 日志乱码 项目部署后 请求信息中文乱码 {""address":"娴嬭瘯", "Prov…

【Django】ajax和django接口交互(获取新密码)

文章目录 一、需求1. 效果图 二、实验1. 写get接口后端2. 写html后端3. 写前端4. 测试 一、需求 1. 效果图 二、实验 1. 写get接口后端 写views import string import random def getnewpwd(request):words list(string.ascii_lowercasestring.ascii_uppercasestring.digi…

C# form的移植工作

前言&#xff1a; 目标&#xff0c;将一个项目的form移植到新的工程下&#xff0c;且能够正确编译执行&#xff1a; 1 Copy form的两个文件到新工程下&#xff1a; 比如笔者的logo form 2 修改命名空间&#xff1a; 然后&#xff0c;找到新项目的主程序&#xff1a; 的命名…

Hive3:Hive初体验

1、创建表 CREATE TABLE test(id INT, name STRING, gender STRING);2、新增数据 INSERT INTO test VALUES(1, 王力红, 男); INSERT INTO test VALUES(2, 钉钉盯, 女); INSERT INTO test VALUES(3, 咔咔咔, 女);3、查询数据 简单查询 select * from test;带聚合函数的查询 …

vue2和el-input无法修改和写入,并且不报错

文章目录 一. 业务场景描述二. 原因分析三.解决方案3.1 方案一 原生标签&#xff08;不建议&#xff09;3.2 方案二 父子传递&#xff08;不建议&#xff09;3.3 方案三 vuex&#xff0c;pinia 状态传值&#xff08;不建议&#xff09;3.4 方案四 vue初始化属性 &#xff08;建…

C语言程序设计之链表篇1

程序设计之链表1 链表问题1_1代码1_1结果1_1 问题1_2代码1_2结果1_2 问题1_3代码1_3结果1_3 链表 考查链表的数据结构&#xff0c;需利用指针变量才能实现&#xff0c;一个结点中应包含一个指针变量&#xff0c;用来存放下一个结点的地址。 建立单向链表的一般步骤是&a…

Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)

之前都是在Windows桌面版进行深度学习的环境部署及训练&#xff0c;今天尝试了一下在Ubuntu上进行环境部署&#xff0c;踩了不少坑&#xff0c;提供一些解决办法给大家避雷。 目录 一、下载和安装anaconda 1. 下载 2. 安装 二、创建虚拟环境 一、下载和安装anaconda 1. …

项目管理工具-Maven

文章目录 Maven概述俩个经典的作用Maven 仓库 Maven 常用命令Maven 指令的生命周期Maven 的概念模型Maven 工程的认识 Maven概述 Maven 是一个项目管理工具&#xff0c;它包含了一个项目对象模型 (POM&#xff1a;Project Object Model)&#xff0c;一组标准集合&#xff0c;一…

记录一次Linux服务器被人使用SSH字典爆破

2024年1.20凌晨睡了一觉&#xff0c;早上起来用termux远程ssh登录小主机发现密码没法登录了&#xff0c;一直显示密码错误&#xff0c;到了晚上用电脑ssh连接小主机&#xff0c;发现小主机真的没法登录了&#xff0c;直接把小主机接上屏幕查看&#xff0c;发现密码被人修改了&a…

什么是Socket、Socket在Java中的应用、Socket和SocketChannel区别

目录 什么是Socket TCP\IP UDP体系结构 Socket和TCP\IP的关系 Socket在Java中的应用 Socket和SocketChannel的区别 SocketChannel和Selector的关系 服务器的设计演化历程---多线程版 服务器的设计演化历程---线程池版 服务器的设计演化历程---Selector版 参考链接 什么…

深度学习loss

pytorch模型训练demo代码 在PyTorch中&#xff0c;模型训练通常涉及几个关键步骤&#xff1a;定义模型、定义损失函数、选择优化器、准备数据加载器、编写训练循环。以下是一个简单的PyTorch模型训练演示代码&#xff0c;该代码实现了一个用于手写数字识别&#xff08;使用MNIS…

大数据——HBase原理

摘要 HBase 是一个开源的、非关系型的分布式数据库系统&#xff0c;主要用于存储海量的结构化和半结构化数据。它是基于谷歌的 Bigtable 论文实现的&#xff0c;运行在 Hadoop 分布式文件系统&#xff08;HDFS&#xff09;之上&#xff0c;并且可以与 Hadoop 生态系统的其他组…

线程与进程的区别与联系,线程状态的切换

目录 什么是线程&#xff1f;进程&#xff1f;协程&#xff1f; 线程和进程的区别&#xff1f; 多线程的好处&#xff1a; 单核CPU有没有必要上多线程&#xff1f; 为什么没有变成单进程多线程的操作系统&#xff1f; 线程的状态 sleep &#xff08;&#xff09; 和wait&…

1.4 操作系统结构

操作系统的体系结构&#xff1a;操作系统的内核设计&#xff08;本节内容简要了解即可&#xff09; 宏内核 & 微内核 操作系统的内核 计算机系统的层次结构将操作系统部分更详细地划分为内核部分和非内核部分 宏内核 & 微内核 从操作系统的内核架构来划分&#xff…

【初阶数据结构篇】时间(空间)复杂度

文章目录 算法复杂度时间复杂度1. 定义2. 表示方法3. 常见时间复杂度4.案例计算分析冒泡排序二分查找斐波那契数列&#xff08;递归法&#xff09;斐波那契数列&#xff08;迭代法&#xff09; 空间复杂度案例分析冒泡排序斐波那契数列&#xff08;递归法&#xff09;斐波那契数…

【ACM独立出版,高录用】第四届物联网与机器学习国际学术会议(IoTML 2024,8月23-25)

2024年第四届物联网与机器学习国际学术会议&#xff08;IoTML 2024&#xff09;将于2024年8月23-25日在中国南昌召开。 会议将围绕着物联网和机器学习开展&#xff0c;探讨本领域发展所面临的关键性挑战问题和研究方向&#xff0c;以期推动该领域理论、技术在高校和企业的发展和…