Web入门——三栏布局页面

前置知识

内外边距

  1. 内边距(padding): padding是元素边框与其内容之间的空间。也就是说,如果你给一个元素设置了内边距,这个空间会作为元素内容与元素边框之间的缓冲区域。设置内边距会使元素本身变大。例如padding:10px就创建了10像素的空间,使元素的内容与边框之间有了10像素的距离。

  2. 外边距(margin): margin则是元素与相邻元素之间的空间。与内边距不同,外边距不会使元素本身变大,但会使元素与其周围的其他元素有更大的距离。例如,margin:10px在元素与其旁边元素之间创建了10像素的空间。

在CSS中,你可以控制元素的顶部、底部、左侧和右侧的内外边距。例如:

.example {margin-top: 10px;     /* 设置外边距 */margin-bottom: 20px;  margin-left: 30px;margin-right: 40px;padding-top: 50px;    /* 设置内边距 */padding-bottom: 60px;padding-left: 70px;padding-right: 80px;
}

另外,要注意的一点是,水平方向的margin可以重叠,也就是说,两个垂直相邻元素之间的margin取的是两者之间较大的一个,不是两者的加和。对于垂直方向的padding则没有这个特性。

浮动与定位

  1. 浮动(float)float属性被用来让一个元素沿着其容器的左或右边缘,尽可能地向上浮动。同时,让文本和内联元素环绕它。是为了实现文字环绕图片的效果而诞生的。

我们可以给一个元素设置float:left;float:right;来控制这个元素浮动的方向。要注意,浮动会使元素脱离文档的普通流,所以可能会影响布局。
例如,在父元素中,如果所有的子元素都设为浮动,则父元素的高度就会变为0。可以通过设置父元素的overflow属性或者清除浮动来解决这个问题。

  1. 定位(position)position属性通过与topbottomleftright属性配合使用,允许你精确地控制一个元素的位置。其常见的值有以下几种:
  • static:元素在文档流中的默认位置。

  • relative:元素的位置相对于其在文档流中的位置。

  • absolute:元素的位置相对于最近的已定位父元素(一个父元素的position属性不为static),如果元素没有已定位的父元素,那么它的位置相对于最初的包含块。

  • fixed:元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动。

对于定位元素,通过设置top, right, bottomleft四个属性,可以决定这个元素距离定位参考点的距离。例如,top: 10px;表示元素距离上边界(或者最近的一个定位祖先元素的上边界)10像素远。

z-index层叠等级属性

z-index 是 CSS 属性,用于指定一个元素在三维Z轴上的位置。这对于控制重叠的元素的视觉顺序非常有用。
z-index 只有在元素被赋予了一个不是 static 的位置属性(即,position 的值为 relative、absolute、fixed 或 sticky)时才生效。

数字可以是正、负或零。元素的 z-index 值越高,它就越在其它元素之上。如果两个并列元素的 z-index 值相等,则根据它们在 HTML 中的顺序来决定哪一个在上面;后来的元素会覆盖先前的元素。

比如:

element1 {position: absolute;z-index: 1;  /* 此元素将位于其它元素之下 */
}element2 {position: absolute;z-index: 3;  /* 此元素将位于其他元素之上 */
}

在上述的例子中,element 2 会出现在 element 1 的上方,因为它的 z-index 值更大

不过,z-index 也有其复杂性,比如在使用嵌套元素时,z-index 只能影响其父级上下文中的层级。在有些情况下,高层级的元素会出现在低层级的项下,这种情况常常出现在有不同层叠上下文的元素交互时。所以在实际使用时需要注意这些细节。

三栏布局页面

因为代码中的.header、.main 和 .bottom 所在的位置都是 .one 的直接子元素,因此它们会默认垂直排布,因此就不需要加入position属性。
在main区域中的三个区域也同理,只需要添加float来确认排列方向就好。
实现代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>三栏布局</title><style>html body {margin: 0;padding: 0;background-color: antiquewhite;}.one {/* 设定总区域大小 */width: 600px;height: 400px;/* 定位 */position: absolute;margin: 20px 25%;background-color: rgba(0,0,0,0.4);}.one>* {margin: 0;padding: 0;}.header {/* 大小 */width: 100%;/* 设定边框和背景颜色,美观 */border: 0px solid #000;background-color: white;/* 文字居中 */text-align: center;line-height: 40px;}/* 编写代码使文字居中 */.main>* {text-align: center;line-height: 320px;}.main {width: 100%;height: 80%;float: left;}.left {height: 100%;width: 15%;background-color: rgba(0,0,0,0.5);float: left;}.middle {height: 100%;width: 70%;float: left;}.right {height: 100%;width: 15%;background-color: rgba(0,0,0,0.5);float: left;}.bottom {/* 添加这一行代码,来消除main区域的浮动影响,不然bottom区域会被挤到下方 */clear: both;width: 100%;height: 10%;background-color: white;/* 文字居中 */text-align: center;line-height: 40px;}</style>
</head>
<body><div class="one"><div class="header"><span>头部区域</span></div><div class="main"><div class="left"><span>左侧边栏</span></div><div class="middle"><span>内容区域</span></div><div class="right"><span>右侧边栏</span></div></div><div class="bottom"><span>底部区域</span></div></div>
</body>
</html>

实现效果:
在这里插入图片描述

笔记:

  1. 基于父元素而定位,所以一般position都是absolute。
  2. 内外边距都是基于父元素的宽度计算的,即margin-top:10%;计算的是宽度的10%而不是高度。

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

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

相关文章

Qt之QMqtt 发送图片数据

简述 MQTT(消息队列遥测传输)是ISO标准下基于发布/订阅范式的消息协议;它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件; MQTT是一个基于客户端-服务器的消息发布/订阅传输协议;MQT…

Ubuntu设置中午输入法

本篇博客将指导您如何在Ubuntu系统中设置中文输入法&#xff0c;让您能够轻松地进行中文输入。 准备工作 在开始之前&#xff0c;请确保您的系统已经更新到最新版本。这可以通过以下命令来完成&#xff1a; sudo apt update && sudo apt upgrade这将帮助确保所有的软…

Docker in Docker(DinD)原理与实战

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Docker幻想曲&#xff1a;从零开始&#xff0c;征服容器宇宙》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Docker简介 2、Docker …

使用 AI Assistant for Observability 和组织的运行手册增强 SRE 故障排除

作者&#xff1a;Almudena Sanz Oliv, Katrin Freihofner, Tom Grabowski 通过本指南&#xff0c;你的 SRE 团队可以实现增强的警报修复和事件管理。 可观测性 AI 助手可帮助用户使用自然语言界面探索和分析可观测性数据&#xff0c;利用自动函数调用来请求、分析和可视化数据…

Harmony 添加library依赖库步骤

在Harmony添加library依赖库步骤如下&#xff1a; 1、在library中定义名字 在library中的oh-package.json5中定义library对外的名字是什么&#xff1a;格式是 “name”:“ohos/名字” {"name": "ohos/library_name" //名字 }2、在项目目录build-profi…

windows系统安装Ubuntu子系统

安装前先在 控制面板 中打开 程序与功能选项 &#xff0c;点击 启用或关闭Windows功能&#xff1a; 勾选 适用于 Linux的Windows子系统 和 虚拟机平台 、 Hyper-v 。 重启电脑后再 Microsoft Store Windows应用商店 中下载合适的Ubuntu版本。 运行Ubuntu程序&#xff0c;如出现…

【实战】算法思路总结

面试过程中&#xff0c;总是被拷打&#xff0c;信心都要没了。但是也慢慢摸索出一些思路&#xff0c;希望对大家有帮助。 &#xff08;需要多用一下ACM模式&#xff0c;力扣模式提供好了模板&#xff0c;自己在IDEA里面写的话&#xff0c;还是会有些陌生&#xff09; 0、基本…

僵尸进程111

Linux 系统中的进程可能处于如下状态中的一种&#xff1a; D 不可中断的休眠 I 空闲 R 运行中 S 休眠 T 被调度信号终止 t 被调试器终止 Z 僵尸状态 Interruptible Sleep&#xff0c;可中断睡眠&#xff0c;在 ps 命令中显示 S。处在这种睡眠状态的进程是可以通过给它…

OC中Block为什么不能为nil

在 Objective-C 中&#xff0c;向 nil 对象发送消息是完全有效的&#xff0c;这是因为 Objective-C 运行时对 nil 消息发送进行了特别的处理。当你向 nil 对象发送消息时&#xff0c;消息会被静默地忽略&#xff0c;不执行任何操作&#xff0c;也不会返回任何值&#xff08;或者…

Unity Editor 找物体助手

找啊找朋友~ &#x1f371;功能介绍&#x1f959;使用方法 &#x1f371;功能介绍 &#x1f4a1;输入相关字符串&#xff0c;它会帮你找到名称中带有该字符串的所有物体&#xff0c;还会找包含该字符串的Text、TextMeshProUGUI。 &#x1f959;使用方法 &#x1f4a1;导入插…

小学拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 仅保留汉字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符数为偶数&#xff0c;则在中间添加空格if len(cleaned_text) % 2 0:middle_index le…

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第5章 安装SSH

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

从0开始学python(七)

目录 前言 1 break、continue和pass函数 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 总结 前言 上一篇文章我们介绍了python中的循环结构&#xff0c;包括for和while的使用。本章接着往下讲。…

腾讯云服务器之ssh远程连接登录及转发映射端口实现内网穿透(实现服务器访问本地电脑端口)

目录 一、创建密钥绑定实例二、设置私钥权限三、ssh远程连接到服务器四、修改root密码五、端口转发&#xff08;实现服务器访问本地电脑的端口&#xff09; 一、创建密钥绑定实例 创建密钥会自动下载一个私钥&#xff0c;把这个私钥复制到c盘 二、设置私钥权限 1、删除所有用户…

免费剪辑的素材资源网站,超高清、可商用、不限速、无版权,迅速有效的解决您的视频剪辑难题!

在数字媒体时代&#xff0c;高质量的剪辑素材已成为视频制作的核心资源。下面为您推荐的优质视频剪辑素材网站&#xff0c;都提供超高清、无限速、无版权、可商用的素材&#xff0c;这些网站将大大提升您的视频制作效率和质量 01. 蛙学府 实用性&#xff1a;★★★★☆ 丰富性&…

您真的会高效使用 Mac 吗?

文章目录 屏幕的保养快捷键预览修改文件名查看文件属性搜索编辑复制&#xff0c;粘贴&#xff0c;剪切&#xff0c;撤销删除 跳转窗口屏幕截图声音Dock强制退出查字典神奇的Option键鼠标与触控板切换桌面与应用程序打开通知中心打开Mission Control 安装与卸载Mac应用程序压缩和…

记一些CISP-PTE题目解析

0x01 命令执行 直接payload: 127.0.0.1 & whoami&#xff0c;发现可以成功执行whoami命令 然后ls …/ &#xff0c;发现有个key.php文件 尝试用cat命令查看 发现不行被拦截了。&#xff08;其实题目过滤了常用的查看文件的命令 &#xff09; 这里有两种思路&#xff0c;第…

关于一致性,你该知道的事儿(下)

关于一致性&#xff0c;你该知道的事儿&#xff08;下&#xff09; 前言一、并发修改单个对象1.1 原子写操作1.2 显示加锁1.3 原子的TestAndSet1.4 版本号机制 二、 多个相关对象的一致性2.1 最大努力实现2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事务 三、…

HNCTF-PWN

1.ez_pwn 直接看危险函数&#xff0c;不能溢出&#xff0c;只能覆盖ebp。 后面紧接的又是leave,ret 很明显是栈迁移&#xff0c;通过printf打印出ebp&#xff0c;通过偏移计算出栈地址。 通过gdb调试&#xff0c;偏移是0x38 以下是payload&#xff1a; from pwn import * #i…

python常用内置对象

1.字符串与字节串 对str 类型调用其encode()方法进行编码得到byte字符串&#xff0c; 对byte字节串调用其encode&#xff08;&#xff09;方法并指定正确的编码格式得到str字符串 “房地产”&#xff0c;encode("utf-8") #对中文进行编码-.decode("u…