编程笔记 html5cssjs 045 网页布局

编程笔记 html5&css&js 045 网页布局

  • 一、网页布局
  • 二、头部区域
  • 三、菜单导航区域
  • 三、内容区域
  • 四、不相等的列
  • 五、底部区域
  • 六、box-sizing
    • box-sizing 属性可以被用来调整这些表现:
    • 属性值
      • content-box
      • border-box
  • 六、响应式网页布局
  • 小结

网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域。

一、网页布局

网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域。
在这里插入图片描述

二、头部区域

头部区域位于整个网页的顶部,一般用于设置网页的标题或者网页的 logo:

.header {
  background-color: #F1F1F1;
  text-align: center;
  padding: 20px;
}

三、菜单导航区域

菜单导航条包含了一些链接,可以引导用户浏览其他页面:

/* 导航条 */
.topnav {
  overflow: hidden;
  background-color: #333;
}
 
/* 导航链接 */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
/* 链接 - 修改颜色 */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}

三、内容区域

内容区域一般有三种形式:
1 列:一般用于移动端
2 列:一般用于平板设备
3 列:一般用于 PC 桌面设备
创建一个 3 列布局,在小的屏幕上将会变成 1 列布局(响应式):

/* 创建三个相等的列 */
.column {
  float: left;
  width: 33.33%;
}
 /* 列后清除浮动 */
.row:after {
  content: "";
  display: table;
  clear: both;
}
 /* 响应式布局 - 小于 600 px 时改为上下布局 */
@media screen and (max-width: 600px) {
  .column {
    width: 100%;
  }
}

要设置两列可以设置 width 为 50%。创建 4 列可以设置为 25%。

四、不相等的列

不相等的列一般是在中间部分设置内容区域,这块也是最大最主要的,左右两次侧可以作为一些导航等相关内容,这三列加起来的宽度是 100%。

.column {
  float: left;
}
/* 左右侧栏的宽度 */
.column.side {
  width: 25%;
}
/* 中间列宽度 */
.column.middle {
  width: 50%;
}
/* 响应式布局 - 宽度小于600px时设置上下布局 */
@media screen and (max-width: 600px) {
  .column.side, .column.middle {
    width: 100%;
  }
}

五、底部区域

底部区域在网页的最下方,一般包含版权信息和联系方式等。

.footer {
  background-color: #F1F1F1;
  text-align: center;
  padding: 10px;
}

六、box-sizing

CSS 中的 box-sizing 属性定义了 user agent 应该如何计算一个元素的总宽度和总高度。
在 CSS 盒子模型的默认定义里,你对一个元素所设置的 width 与 height 只会应用到这个元素的内容区。如果这个元素有任何的 border 或 padding ,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。这意味着当你调整一个元素的宽度和高度时需要时刻注意到这个元素的边框和内边距。当我们实现响应式布局时,这个特点尤其烦人。

box-sizing 属性可以被用来调整这些表现:

content-box 是默认值。如果你设置一个元素的宽为 100px,那么这个元素的内容区会有 100px 宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。
border-box 告诉浏览器:你想要设置的边框和内边距的值是包含在 width 内的。也就是说,如果你将一个元素的 width 设为 100px,那么这 100px 会包含它的 border 和 padding,内容区的实际宽度是 width 减去 (border + padding) 的值。大多数情况下,这使得我们更容易地设定一个元素的宽高。
译者注: border-box不包含margin
备注: 对于新的 web 站点,你可能希望首先将 box-sizing 设置为 border-box,如下所示:

* {
  box-sizing: border-box;
}

这使得处理元素大小的工作变得容易得多,并且通常消除了在布局内容时可能遇到的许多陷阱。然而,在某些情况下,你应谨慎使用这个属性。例如:你正在编写一个将由其他人使用的共享组件库,如果他们网站的其余部分没有设置此值,他们可能会发现很难使用你的组件库。

box-sizing 属性被指定为下面列表中的关键字。

属性值

content-box

默认值,标准盒子模型。width 与 height 只包括内容的宽和高,不包括边框border),内边距(padding),外边距(margin)。注意:内边距、边框和外边距都在这个盒子的外部。比如说,.box {width: 350px; border: 10px solid black;} 在浏览器中的渲染的实际宽度将是 370px。
尺寸计算公式:
width = 内容的宽度
height = 内容的高度
宽度和高度的计算值都不包含内容的边框(border)和内边距(padding)。

border-box

width 和 height 属性包括内容,内边距和边框,但不包括外边距。这是当文档处于 Quirks 模式 时 Internet Explorer 使用的盒模型。注意,填充和边框将在盒子内 , 例如, .box {width: 350px; border: 10px solid black;} 导致在浏览器中呈现的宽度为 350px 的盒子。内容框不能为负,并且被分配到 0,使得不可能使用 border-box 使元素消失。
尺寸计算公式:
width = border + padding + 内容的宽度
height = border + padding + 内容的高度

六、响应式网页布局

响应式页面,页面的布局会根据屏幕的大小来调整。

<!DOCTYPE html>
<html lang="zh-cn">
   <head>
      <title>网页布局 编程笔记 html5&css&js</title>
      <meta charset="utf-8" />
      <style>
         * {
            box-sizing: border-box;
         }
         body {
            font-family: Arial;
            padding: 10px;
            background: #f1f1f1;
         }
         /* 头部标题 */
         .header {
            padding: 30px;
            text-align: center;
            background: white;
         }
         .header h1 {
            font-size: 50px;
         }
         /* 导航条 */
         .topnav {
            overflow: hidden;
            background-color: #333;
         }
         /* 导航条链接 */
         .topnav a {
            float: left;
            display: block;
            color: #f2f2f2;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
         }
         /* 链接颜色修改 */
         .topnav a:hover {
            background-color: #ddd;
            color: black;
         }
         /* 创建两列 */
         /* Left column */
         .leftcolumn {
            float: left;
            width: 75%;
         }
         /* 右侧栏 */
         .rightcolumn {
            float: left;
            width: 25%;
            background-color: #f1f1f1;
            padding-left: 20px;
         }
         /* 图像部分 */
         .fakeimg {
            background-color: #aaa;
            width: 100%;
            padding: 20px;
         }
         /* 文章卡片效果 */
         .card {
            background-color: white;
            padding: 20px;
            margin-top: 20px;
         }
         /* 列后面清除浮动 */
         .row:after {
            content: "";
            display: table;
            clear: both;
         }
         /* 底部 */
         .footer {
            padding: 20px;
            text-align: center;
            background: #ddd;
            margin-top: 20px;
         }
         /* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
         @media screen and (max-width: 800px) {
            .leftcolumn,
            .rightcolumn {
               width: 100%;
               padding: 0;
            }
         }
         /* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */
         @media screen and (max-width: 400px) {
            .topnav a {
               float: none;
               width: 100%;
            }
         }
      </style>
   </head>
   <body>
      <div class="header">
         <h1>明月看潮生的网页</h1>
         <p>重置浏览器大小查看效果。</p>
      </div>
      <div class="topnav">
         <a href="#">链接1</a>
         <a href="#">链接2</a>
         <a href="#">链接3</a>
         <a href="#" style="float: right">链接4</a>
      </div>
      <div class="row">
         <div class="leftcolumn">
            <div class="card">
               <h2>文章标题</h2>
               <h5>2019 年 4 月 17日</h5>
               <div class="fakeimg" style="height: 200px">图片</div>
               <p>一些文本...</p>
               <p>少年软件工程师。不再是一个启蒙用过程,直接向着目标前进!</p>
            </div>
            <div class="card">
               <h2>文章标题</h2>
               <h5>2019 年 4 月 17日</h5>
               <div class="fakeimg" style="height: 200px">图片</div>
               <p>一些文本...</p>
               <p>少年软件工程师。不再是一个启蒙用过程,直接向着目标前进!</p>
            </div>
         </div>
         <div class="rightcolumn">
            <div class="card">
               <h2>关于我</h2>
               <div class="fakeimg" style="height: 100px">图片</div>
               <p>关于我的一些信息..</p>
            </div>
            <div class="card">
               <h3>热门文章</h3>
               <div class="fakeimg"><p>图片</p></div>
               <div class="fakeimg"><p>图片</p></div>
               <div class="fakeimg"><p>图片</p></div>
            </div>
            <div class="card">
               <h3>关注我</h3>
               <p>一些文本...</p>
            </div>
         </div>
      </div>
      <div class="footer">
         <h2>底部区域</h2>
      </div>
   </body>
</html>

小结

网页布局是设计网页必做之事,需要熟练掌握。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL(视图,存储函数,存储过程)

作业1&#xff1a; 作业实现&#xff1a; 首先创建学生表&#xff0c;课程表&#xff0c;以及学生选课表。 CREATE TABLE Student (Sno INT PRIMARY KEY,Sname VARCHAR(20) NOT NULL,Ssex CHAR(1) CHECK (Ssex IN (男, 女)),Sage INT,SDept VARCHAR(20) DEFAULT 计算机 );CRE…

zabbix监控扩展

目录 一、zabbix自动发现与自动注册 &#xff08;一&#xff09;理论定义 1.自动发现 2.自动注册 &#xff08;二&#xff09;实操部署 1.自动发现 &#xff08;1&#xff09;新增一台客户端命名为zbx-agent02 ① 配置时间同步 ② 在服务端和客户端上配置 hosts 解析 …

枚举类型缝缝补补

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 1.关键字enum的定义 enum是C语言中的一个关键字&#xff0c;enum叫枚举数据类型&#…

天津想转行学python培训班靠谱吗?

现在的职业如此繁多&#xff0c;很多人把高薪当成衡量工作好坏的重要标准&#xff0c;因此IT行业以超出其他行业几倍薪资水平成为不错的选择&#xff0c;而Python又以其简单易学好上手成为大家所青睐的学习目标。 Python发展前景如何 Python语言就业发展方向广泛&#xff1a;…

C-Lodop (Print)前端自定义打印控件

1.首先安装C-Lodop.exe软件&#xff0c;参考地址 Welcome to C-Lodop 2.软件下载地址 下载中心 - Lodop和C-Lodop官网主站 3.案列 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script srchttp://19…

Nginx前后端分离部署springboot和vue项目

Nginx前后端分离部署springboot和vue项目&#xff0c;其实用的比较多&#xff0c;有的小伙伴对其原理和配置还一知半解&#xff0c;现在就科普一下&#xff1a; 1、准备后端项目 后端工程无论是微服务还是单体&#xff0c;一般最终都是jar启动&#xff0c;关键点就是把后端服…

谷达冠楠科技:抖音开网店新手小白可以卖的产品

随着互联网的发展&#xff0c;越来越多的人选择在网上开设自己的店铺。而抖音作为目前最火的短视频平台&#xff0c;也提供了开店的功能。那么&#xff0c;对于新手小白来说&#xff0c;抖音开网店可以卖哪些产品呢? 我们可以考虑的是服装类商品。抖音上有很多时尚博主&#x…

工厂企业消防安全AI可视化视频智能监管解决方案

一、方案背景 2023年11月20日下午6时30分许&#xff0c;位于江苏省无锡市惠山区前洲街道的某公司突发严重火灾&#xff0c;共造成7人死亡。这次火灾提醒我们工业安全至关重要&#xff0c;企业都应该时刻保持警惕&#xff0c;加强安全意识和培训&#xff0c;提高应对突发事件的…

【单片机】改写DS2431芯片的地址码,地址ROM,DS2431芯片解密

对DS2431里面的128字节可以进行任意读写&#xff0c;方式可以看这里&#xff1a;https://blog.csdn.net/x1131230123/article/details/132248958 但DS2431芯片的地址码是光刻不可修改的&#xff0c;所以只有使用模拟芯片。 原理&#xff1a; https://www.dianyuan.com/article…

“一键中日文件夹名转换 - 批量修改,轻松实现中文到日语的名称翻译“

在处理大量文件夹时&#xff0c;你是否曾为中日文件夹名称的转换而感到困扰&#xff1f;现在&#xff0c;有了我们的批量修改工具&#xff0c;这些烦恼全部消失&#xff01;只需简单几步&#xff0c;就能将中文名的文件夹名称翻译成日语&#xff0c;让你的文件管理更加高效。 …

搭建DHCP 服务

1. 确认yum 源 2. 安装DHCP 服务 3. 配置DHCP 服务&#xff0c;导入配置模板文件 管理DHCP 服务 配置yum 源 安装DHCP 服务 [rootlocalhost ~]# yum install dhcp -y ... Complete! [rootlocalhost ~]# 配置DHCP 服务 DHCP 配置文件路径。 [rootlocalhost ~]# cat /etc/dhcp/dh…

欧科云链与《警察技术》联合发布技术专题.pdf

欧科云链受《警察技术》邀请&#xff0c;于第201期期刊正式刊登“区块链生态安全与虚拟货币犯罪治理”技术专题。欧科云链作为该技术专题主要作者&#xff0c;直接参与本次期刊2篇文章撰写&#xff0c;同时为多篇文章提供欧科云链的最新数据和研究成果。 《警察技术》期刊创办于…

使用人工智能助手 Github Copilot 进行编程 01

本章涵盖了 AI 助⼿如何改变新程序员的学习⽅式为什么编程永远不会再⼀样了AI 助⼿如 Copilot 的⼯作原理Copilot 如何解决⼊⻔级编程问题AI 辅助编程的潜在危险 在本章中&#xff0c;我们将讨论人类如何与计算机进行交流。我们将向您介绍您的 AI 助手 GitHub Copilot&#x…

Excel2016随手记录-学生按照教学班区分出成绩表,形成独立教学班Excel表。

软件版本&#xff1a;Microsoft Office 标准版 2016 一、背景二、学生成绩按教学班区分成各个子表2.1.区分子表操作步骤2.2.优化调整表格式 三、教学班多个子表导出独立的表 ————————————————————————————————————————————————…

MySQL 删除ibdata1时怎么恢复

标题&#xff1a;MySQL InnoDB数据恢复&#xff0c;丢失ibdata1时怎么安全恢复 废话在前&#xff1a; 恭喜你&#xff0c;当你看到这篇文章的时候&#xff0c;说明有可能 你心里已经有一万匹&#x1f40e;在奔腾了。千万不要乱删除ibdata1&#xff0c;有些博客无脑抓取、复制…

表的增删改查CURD(基础)

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;MySql&#x1f4d5;格言&#xff1a;那些在暗处执拗生长的花&#xff0c;终有一日会馥郁传香欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 新增&#xff08;Create&#xff09; 全列插入 指定列…

安全加速SCDN是什么

安全加速SCDN&#xff08;Secure Content Delivery Network&#xff0c;SCDN&#xff09; 是集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络&#xff08;CDN&#xff09;或全站加速网络&#xff08;ECDN&#xff09;的用户&…

vue基于Spring Boot共享单车租赁报修信息系统

共享单车信息系统分为二个部分&#xff0c;即管理员和用户。该系统是根据用户的实际需求开发的&#xff0c;贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限&#xff0c;其次是用户。管理员一般负责整个系统的运行维护…

【并发编程】synchornized原理

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳重求进&#xff0c;晒太阳 目录 Monitor概念 Java对象头 普通对象 数组对象 Monitor(锁) Monitor结构如下&#xff1a; 注意&#xff1a; 原理之synchornized 轻量…

C#MQTT编程08--MQTT服务器和客户端(cmd版)

1、前言 前面完成了winform版&#xff0c;wpf版&#xff0c;为什么要搞个cmd版&#xff0c;因为前面介绍了mqtt的报文结构&#xff0c;重点分析了【连接报文】&#xff0c;【订阅报文】&#xff0c;【发布报文】&#xff0c;这节就要就看看实际报文是怎么组装的&#xff0c;这…