Web入门——三栏布局页面

news2024/12/24 8:52:47

前置知识

内外边距

  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.coloradmin.cn/o/1666970.html

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

相关文章

每日OJ题_贪心算法四④_力扣397. 整数替换

目录 力扣397. 整数替换 解析代码 力扣397. 整数替换 397. 整数替换 难度 中等 给定一个正整数 n &#xff0c;你可以做如下操作&#xff1a; 如果 n 是偶数&#xff0c;则用 n / 2替换 n 。如果 n 是奇数&#xff0c;则可以用 n 1或n - 1替换 n 。 返回 n 变为 1 所需…

计算机网络复习-传输层

概念 传输层是进程与进程之间的通信使用端口(Port)来标记不同的网络进程端口(Port)使用16比特位表示(0~65535) UDP协议详解 UDP&#xff1a;用户数据报协议数据报&#xff1a;应用层传输过来的一个完整的数据不合并&#xff0c;不拆分 UDP的头部 UDP特点 UDP是无连接协…

picoCTF-Web Exploitation-Trickster

Description I found a web app that can help process images: PNG images only! 这应该是个上传漏洞了&#xff0c;十几年没用过了&#xff0c;不知道思路是不是一样的&#xff0c;以前的思路是通过上传漏洞想办法上传一个木马&#xff0c;拿到webshell&#xff0c;今天试试看…

【计算机网络】物理层 通信基础、奈氏准则、香农公式 习题2

下列说法中正确的是( )。 A. 信道与通信电路类似&#xff0c;一条可通信的电路往往包含一个信道 B.调制是指把模拟数据转换为数字信号的过程 C. 信息传输速率是指通信信道上每秒传输的码元数 D.在数值上&#xff0c;波特率等于比特率与每符号所含的比特数的比值 信息传输速率&a…

python随机显示四级词汇

python实现一个浮动窗口随机显示四级单词在桌面跑来跑去 实现一个浮动窗体随机显示四级单词在windows桌面置顶移动 tkinter库来创建窗口和显示单词&#xff0c;以及random库来随机选择单词。 使用after方法来定时更新窗口的位置&#xff0c;实现单词窗口的慢慢移动效果 使用…

【Apache Doris】周FAQ集锦:第 3 期

【Apache Doris】周FAQ集锦&#xff1a;第 3 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

SpringBoot+Vue实现图片滑块和文字点击验证码

一、背景 1.1 概述 传统字符型验证码展示-填写字符-比对答案的流程&#xff0c;目前已可被机器暴力破解&#xff0c;应用程序容易被自动化脚本和机器人攻击。 摒弃传统字符型验证码&#xff0c;采用行为验证码采用嵌入式集成方式&#xff0c;接入方便&#xff0c;安全&#…

速了解及使用布隆过滤器

布隆过滤器 介绍 概念&#xff1a;是一种高效查询的数据结构 作用&#xff1a;判断某个元素是否在一个集合中。&#xff08;但是会出现误判的情况&#xff09; 实现原理 加入元素&#xff1a; 当一个元素需要加入到布隆过滤器中时&#xff0c;会使用一组哈希函数对该元素进…

每周日发系统规划与管理师伴读脑图,今天是第4章

从第4章开始&#xff0c;系统规划与管理师的学习就正式步入了主题&#xff0c;考虑到我过去中断了2周&#xff0c;想必你的第4章教程已经看完了吧&#xff1f;

2024年天津市静海区教师招聘报名流程(建议电脑)

2024年天津市静海区教师招聘报名流程&#xff08;建议电脑&#xff09; #报名 #教师招聘 #教师招聘考试 #教招 #天津教师招聘 #天津教师招聘考试 #24年天津教师招聘 #24年天津市教师招聘考试 #天津市静海区教师招聘 #静海区教师招聘考试 #静海区教师编 #静海区#

【OceanBase诊断调优】—— 租户资源统计项及其查询方法

本文主要介绍 OceanBase 数据库中租户资源统计项及其查询方法。 适用版本 OceanBase 数据库 V4.1.x、V4.2.x 版本。 CPU 资源统计项 逻辑 CPU 使用率&#xff08;线程处理请求的时间占比&#xff09;。 通过虚拟表 __all_virtual_sysstat 在 SYS 系统租户下&#xff0c;查看…

Ubuntu意外断电vmdk损坏--打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。

背景&#xff1a;电脑资源管理器崩溃卡死&#xff0c;强行断电重启&#xff0c;结果虚拟机打不开了&#xff0c;提示打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。 删除lck文件&#xff1a;失败vmware-vdiskmanager修复 &#xff1a;提示无法修复最终用 VMFS Recovery挂载…

【机器学习】集成学习在信用评分领域实例

集成学习在信用评分领域的应用与实践 一、引言二、集成学习的概念与原理三、集成学习在信用评分中的应用实例四、总结与展望 一、引言 在当今金融数字化快速发展的时代&#xff0c;信用评分成为银行、金融机构等评估个人或企业信用风险的重要工具。然而&#xff0c;单一的信用评…

OFDM802.11a的FPGA实现(十二)使用FFT IP核添加循环前缀

原文链接&#xff08;相关文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA实现 目录 1.前言2.循环前缀3.硬件实现4.ModelSim仿真 1.前言 为了能够消除传输过程当中的符号间干扰&#xff0c;在IFFT处理完毕之后还要加上循环前缀。 2.循环前缀 实际通信信道中,由于接…

Linux常用软件安装(JDK、MySQL、Tomcat、Redis)

目录 一、上传与下载工具Filezilla1. filezilla官网 二、JDK安装1. 在opt中创建JDK目录2.上传JDK压缩文件到新建目录中3.卸载系统自代jdk4.安装JDK5.JDK环境变量配置6. 验证是否安装成功 三、安装MySQL1.创建mysql文件夹2.下载mysql安装压缩包3.上传到文件夹里面4. 卸载系统自带…

动态规划算法:⼦数组、⼦串系列(数组中连续的⼀段)

例题一 解法&#xff08;动态规划&#xff09;&#xff1a; 算法思路&#xff1a; 1. 状态表⽰&#xff1a; 对于线性 dp &#xff0c;我们可以⽤「经验 题⽬要求」来定义状态表⽰&#xff1a; i. 以某个位置为结尾&#xff0c;巴拉巴拉&#xff1b; ii. 以某个位置…

清除HP打印机内存的5种方法,总有一种适合你

序言 HP打印机通常具有2 MB到32 MB的内部内存容量。打印机使用此内存存储打印作业和信息,如文档中的页数、纸张类型、纸张大小和字体。但是,如果打印作业的大小超过打印机的内存大小,它将无法执行打印命令,并将拒绝打印文档。 此外,有时打印作业可能会卡在打印机的内存中…

Matlab/simulink永磁直驱风机的建模仿真

Matlab/simulink直驱永磁同步风机的建模仿真&#xff0c;跟随风速波动效果好&#xff0c;可以作为后期科研的基础模型

关于 IIS 开启匿名访问网站仍要账号密码登录网站的解决方法

欢迎关注公总号【云边小网安】 问题提出&#xff1a;发现虽然勾选了允许匿名访问网站&#xff0c;但在访问某一网站的时候仍然需要登录账号密码 解决方法一&#xff1a;登录管理员账号密码解决方法二&#xff1a;添加访问网站文件夹的用户 访问某一网站本质上来讲&#xff0…

Adobe Animate 2024软件下载

Adobe Animate 2024软件下载&#xff1a; 百度网盘下载https://pan.baidu.com/s/1cQQCFL16OUY1G6uQWgDbSg?pwdSIMS Adobe Animate 2024&#xff0c;作为Flash技术的进化顶点&#xff0c;是Adobe匠心打造的动画与交互内容创作的旗舰软件。这款工具赋予设计师与开发者前所未有的…