CSS学习(5) - 布局

news2025/1/19 8:17:11

文章首发于我的个人博客:欢迎大佬们前来逛逛

文章目录

  • CSS布局
    • display属性
    • width和max-width
    • position 属性
    • 溢出
    • 浮动和清除
      • float
      • clear
  • 布局案例

CSS布局

display属性

display 属性是CSS布局的最重要的属性。

display属性规定是否/如何显示元素。

display元素通常与 javascript 一起使用,用于显示或者隐藏元素。

默认情况下, javascript: none

修改默认的display值:

  • inline: 行内元素形式
  • block: 块级元素形式
  • none: 隐藏属性并且不占用任何空间visibility:hidden 也可以隐藏元素,但仍会影响布局)

案例:HTML+CSS+Javascript 实现对display的控制:

.imgbox{
    padding: 10px;
    margin: 5;
    border: 2px solid black;
    display: inline;
    float: left;
    text-align: center;
}

button{
    background-color: gainsboro;
}
<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="5.css">
    </head>

    <body>
        <h1>这是一个标题</h1>
        <div class="imgbox" id="1">
            <img src="https://www.w3school.com.cn//i/css/imgbox-1.gif" alt="1.img" >
            <button onclick="onHiddenimg()">隐藏图片</button>
        </div>
        <div class="imgbox" id="2">
            <img src="https://www.w3school.com.cn//i/css/imgbox-2.gif" alt="2.img">
            <button onclick="onDelimg()">删除图片</button>
        </div>
        <div class="imgbox" id="3">
            <img src="https://www.w3school.com.cn//i/css/imgbox-3.gif" alt="3.img">
            <button onclick="onReset()">重置图片</button>
        </div>
        <script>
            function onHiddenimg(){
                document.getElementById('1').style.display = "none";
            }
            function onDelimg(){
                document.getElementById('2').style.visibility = "hidden";
            }
            function onReset(){
                document.getElementById('1').style.display = "block";
                document.getElementById('2').style.visibility = "visible";
            }
        </script>
    </body>
</html>

width和max-width

块级元素始终占用可用的全部宽度

设置 width 以防止其扩展到容器边缘,然后将 margin 设置为auto可以使其水平居中,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配。

使用 max-width 使得适应小窗口的处理,可以使得在小窗口的情况下可以自动收缩,否则会产生一个滑动条。


position 属性

position应用于元素的定位方法。

有五个不同的位置值:

  • static
  • relative
  • fixed
  • absolute
  • sticky

static

设置了此属性后,我们如果再指定其四个方位的边距,left,right top bottom等,则将不会有任何改变,相当于static就已经固定了位置。

relative

设置了此属性后,设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。

fixed

设置了此属性后,则会按照四个方位的属性值进行位置的固定。即如果我们滑动了窗口,这个元素也是固定在此位置的。

absolute

设置了此属性后,将会设置为相对于其最近的父窗口进行定位。

然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。

sticky

根据用户的滚动位置进行定位,相当于在 excel 中固定单元格

首先是 相对relative,然后当窗口滑动超过时,切换为 固定fixed定位。

  • 注意:

    Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀,您还必须至少指定 top,right,bottom,left 之一,以便粘性定位起作用。

div.sticky{
    position: -webkit-sticky;
    position: sticky;
    top: 0px;
    background-color: green;
    border: 2px solid black;
    text-align: center;
    padding: 10px;
}

如果设置位置的时候元素出现重叠,则可以指定z-index 表示元素的覆盖顺序,数字越大的越靠前。

溢出

overflow 用于处理内容太大而无法放入指定区域时是剪裁内容还是添加滚动条

  • visible:可见的,如果超过了元素框,则文本内容接着显示
  • hidden:隐藏内容,切断多余的内容
  • scroll:切断,但是有一个滑动条
  • auto:相当于scroll,但是它仅在必要时添加滚动条:

overflow-xoverflow-y 控制水平还是垂直更改内容的溢出。


浮动和清除

float

控制元素如何浮动。

  • left:元素浮动到容器左侧
  • right:元素浮动到容器右侧
  • none:元素不会浮动
  • inherit

最简单的总结:float可以实现报纸上文字包围图片的效果。

测试:

img.left{
    float: left;
}
img.right{
    float: right;
}
img.none{
    float: none;
}

在这里插入图片描述


clear

可以指定元素浮动于被清除元素的旁边以及哪一侧

  • none:两侧都可以有浮动
  • left,right:左侧或者右侧不允许浮动
  • both:左右侧都不允许
  • inherit

在使用此属性的时候,要与 float 一起使用。

如果一个元素浮动到了左侧,则应该清除左侧,这样浮动的元素会继续浮动,而清除的元素会显示在下面

div.box{
    height: 100px;
    width: 100px;
    border: 2px solid red;
    padding: 10px;
    float: left;
}
/*没有clear*/
div.noclear{
    border: 2px solid green;
    padding: 10px;
    margin: 10px;
}
/*有clear*/
div.clear{
    clear: left;
    border: 2px solid green;
    padding: 10px;
    margin: 10px;
}
  • 效果展示

    不存在清除:

在这里插入图片描述

存在清除:

在这里插入图片描述

clearfix 清除浮动! 这是一段很有用的代码!

.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

布局案例

一个较简单的Web网页的实现:

*{
    box-sizing: border-box;
}

body{
    background-color: rgb(255,255,238);
    margin: 0;
}

.topMenu ul{
    background-color: rgb(119,119,119);
    border: 2px solid black;
    padding: 0px;
    margin: 0px;
    overflow: hidden;
    list-style-type: none;
}

/*列表项不要设置边距:因为一个列表项就是一个a标签,所以直接在a标签内设置边距*/
.topMenu li{
    float: left;
}

.topMenu li a{
    color: white;
    text-decoration: none;
    text-align: center;
    padding: 30px; /*设置列表项的内边距以调整顶部菜单的大小*/
    display: table;
}

.topMenu a.active{
    background-color: red;
}

.topMenu a:hover{
    background-color: blueviolet;
}

/*左侧边栏*/
.sideMenu{
    width: 25%;
}

.sideMenu ul{
    margin: 10px;
    padding: 0px;
    list-style-type: none;
}

.sideMenu li a{
    background-color: rgb(255,238,238);
    color: black;
    text-decoration: none;
    text-align: center;
    padding: 5% 35%;
    display: table;
    margin-bottom: 10px;
}      

.sideMenu a.active{
    background-color: coral;
}

.sideMenu a:hover{
    background-color: aquamarine;
}

/*这一段不太懂*/
.clearfix::after {
    content: "";
    clear: both;
    display: table;
}
  

/*水平分割*/
.column{
    float: left;
}

/*正文标题*/
.mainTop{
    background-color: #2196F3;
    color: white;
    text-align: center;
    font-size: 150%;
    padding: 2%;
}

/*文本内容*/
.content{
    width: 75%;  /*sideMenu:25% content: 75%*/
}

/*底部*/
.footer{
    background-color: black;
    padding: 15px;
    color: white;
    text-align: center;
    font-size: larger;
}

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="flaotWebpage.css">
    </head>

    <body>
        <!-- 顶部菜单 -->
        <div class="topMenu">
            <ul>
                <li><a href="https://helloylh.com" class="active">Home</a></li>
                <li><a href="https://helloylh.com">News</a></li>
                <li><a href="https://helloylh.com">Contact</a></li>
                <li><a href="https://helloylh.com">About</a></li>
            </ul>
        </div>

        <!-- 侧边栏菜单 -->
        <div class="clearfix">
            <div class="column sideMenu">
                <ul>
                    <li><a href="https://helloylh.com" class="active">标题1</a></li>
                    <li><a href="https://helloylh.com">标题2</a></li>
                    <li><a href="https://helloylh.com">标题3</a></li>
                    <li><a href="https://helloylh.com">标题4</a></li>
                    <li><a href="https://helloylh.com">标题5</a></li>
                    <li><a href="https://helloylh.com">标题6</a></li>
                    <li><a href="https://helloylh.com">标题7</a></li>
                    <li><a href="https://helloylh.com">标题8</a></li>
                    <li><a href="https://helloylh.com">标题9</a></li>
                    <li><a href="https://helloylh.com">标题10</a></li>
                    <li><a href="https://helloylh.com">标题11</a></li>
                    <li><a href="https://helloylh.com">标题12</a></li>
                </ul>
            </div>
        
        <!-- 文本内容 -->
            <div class="column content">
                <div class="mainTop">
                    <h1>文章标题</h1>
                </div>
                <h1>文章</h1>
                <p>文章包括各种文体的著作、作品,如诗歌、戏剧、小说、科学论文,记叙文、议论文、说明文、应用文等等。“千古文章未尽才”“文章千古事”“文章憎命达”“板凳要坐十年冷、文章不写一字空”“积句而成章,积章而成篇”“言出为论,下笔成章”等,都是现在所说的文章的意思。更广义的文章,也包含“学问”“奥秘”等意思,如“洞明世事皆学问,人情练达即文章”就是。
                </p>
            </div>
        </div>

        <!-- 底部 -->
        <div class="footer"> 
            <p>Fooder Text</p>
        </div>

    </body>
</html>

实现如下:

在这里插入图片描述

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

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

相关文章

Python词云

词云图wordcloud 1.安装第三方库 j i e b a 库、 m a t p l o t l i b 、 w o r d c l o u d 库 jieba库、matplotlib、wordcloud库 jieba库、matplotlib、wordcloud库 2.过程 1.使用 j i e b a jieba jieba 库对数据进行分词整理&#xff0c;转为 t x t txt txt文件&#…

AI和ML:数据中心的新前沿创新和优化

数据中心现在正在将人工智能(AI)和机器学习(ML)技术集成到其基础架构中&#xff0c;以保持竞争力。通过在传统数据中心架构中实施人工智能驱动层&#xff0c;企业可以创建自主数据中心&#xff0c;无需人工干预即可优化和执行通用数据工程任务。 随着对数据处理和存储的需求持续…

【行为型模式】策略模式

文章目录 1、简介2、结构3、实现方式3.1、案例引入3.2、结构分析3.3、具体实现 4、对比模板方法模式5、策略模式优缺点6、应用场景 1、简介 策略模式(Strategy)是一种设计模式&#xff0c;它允许在运行时根据需要选择算法的行为。这个模式将每个算法封装到一个类中&#xff0c…

Oracle VM VirtualBox安装开放麒麟桌面版本操作

1.环境 Oracle VM VirtualBox版本6.1.18 开放麒麟桌面版本openkylin 0.0.5 https://mirror.lzu.edu.cn/openkylin-cdimage/yangtze/openkylin-0.9.5-x86_64.iso 1.创建新虚拟电脑 ql 并将ios导入 然后点击启动 注意&#xff1a; vm box如果鼠标设置不当的话 基本上不可能完成…

PEIS源码 体检源码 医院体检系统源码

PEIS体检管理系统源码 PEIS源码 体检源码 医院体检系统源码 本套PEIS医院体检管理系统源码&#xff0c;采用C#语言开发&#xff0c;C/S架构&#xff0c;前台开发工具为Vs2012&#xff0c;后台数据库采用oracle大型数据库。有演示。 文末获取联系 PEIS体检管理系统适用于大中型…

鹅厂狂招工程师,国产自研芯片“沧海”斩获8项世界第一

前言 4月17日&#xff0c;腾讯云官方披露&#xff0c;在由莫斯科国立大学举办的最新一届MSU硬件视频编码比赛中&#xff0c;腾讯自研的编解码芯片“沧海”&#xff0c;经过数月的严格测试&#xff0c;获得了所参加的两个赛道8项评分的全部第一。 MSU为视频压缩领域最具影响力…

TensorFlow-GPU【易安装】(全网最全、通俗易懂、小白友好)

写在前面&#xff1a;CSDN的小伙伴们&#xff0c;很长时间没有发文了&#xff0c;自从靠运气侥幸考上研究生&#xff0c;就一直在苦苦寻找自己的研究方向。在跟风“随大流”之后&#xff0c;选择了深度学习这一领域&#xff0c;也是一场噩梦的开始&#xff01; 为了更好的学习吴…

MySQL数据恢复-亲测有效版

MySQL数据恢复-亲测有效版 1.日志恢复的前提&#xff1a;1.1.登录远程MySQL服务器&#xff1a;1.2.查看binlog是否开启&#xff1a; 2.查看binlog存放日志文件目录&#xff1a;3.找到mysqlbinlog命令4.设置mysqlbinlog命令为全局可见5.使用mysqlbinlog解析binlog日志6.数据恢复…

信号频谱分析举例

以IQ解调不加滤波器的信号频谱进行分析 系统结构 IQ解调不加滤波器的系统结构框图为&#xff1a; 最后输出的基带复信号时域表达式为&#xff1a; s b b ( t ) s i ( t ) j s q ( t ) s ( t ) c o s ( ω c t ϕ ) − j s ( t ) s i n ( ω c t ϕ ) s_{bb}(t) s_i(t…

UDP报文结构解析

文章目录 UDP报文结构的讲解以及注意事项源端口和目的端口报文长度校验和 UDP报文结构的讲解以及注意事项 想要学习一个协议&#xff0c;我们就需要认识一下这个协议的报文格式&#xff0c;认识这个协议具体是如何组织数据的&#xff1a; 我们常见的UDP报文的格式图都是这样画…

体验编写Vue框架项目实例的详细步骤(包括git仓库使用)

一、查看项目设计图 二、确定项目开发技术栈 vue-cli3 element-ui axios vuex 三、页面布局 四、查看接口文档 五、开始开发 &#xff08;五&#xff09;.搭建项目结构 1.创建项目 vue create godlike 创建项目的文章在&#xff1a;Vue自主搭建项目&#xff1a;Man…

Unity插件XCharts 图表

参考网址&#xff1a;Unity插件XCharts_xcharts unity_Raki_0的博客-CSDN博客 XCharts 下载地址 &#xff1a;Unity插件XCharts资源-CSDN文库 github 地址&#xff1a;Releases XCharts-Team/XCharts GitHub 一.导入教程 1.直接放入XCharts源码到项目 下载好XCharts源码…

Linux -- Web服务器 快速搭建静态网站,替换默认网页目录

快速搭建静态网站 &#xff1a; 先简单写个 页面 [rootserver ~]# echo " This is my first simple-Web " > /var/www/html/index.html 我们给网页写了一行内容 作为 静态网页的内容 &#xff08; 当然了&#xff0c;写的相当简单&#xff0c;您先理解着看&a…

【排序算法 上】带你手撕常见排序 (插入,希尔,选择,堆排序) (动图详解)

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; “东风随春归&#xff0c;发我枝上花。” 前言&#xff1a; 排序是日常生活中极其常见的一种算法&#xff0c;它的功能很简单&#xff0c;就是将数字按照升序/降序排列&#xff0c;最终形成一组有序的数字&a…

Blender3.5 面的操作(一)

目录 1. 面操作1.1 细分面 Subdivide1.2 删除面1.3 挤出面 Extrude1.4 挤出流形1.5 内插面 Inset1.5.1 内插之后选择外侧1.5.2 选择多个面&#xff0c;同时内插操作1.5.3 选择多个面&#xff0c;同时内插选择外侧 1.6 外插1.7 尖分面 Poke Faces1.8 面三角化 Triangulate Faces…

【案例教程】R语言在气象、水文中数据处理及结果分析、绘图实践技术

语言是一门由统计学家开发的用于统计计算和作图的语言&#xff08;a Statistic Language developed for Statistic by Statistician&#xff09;&#xff0c;由S语言发展而来&#xff0c;以统计分析功能见长。R软件是一款集成了数据操作、统计和可视化功能的优秀的开源软件。来…

分布式对象存储服务minio安装和部署

一、服务器安装minio 1.进行下载 下载地址&#xff1a; https://dl.min.io/server/minio/release/linux-amd64/minio2.新建minio安装目录&#xff0c;执行如下命令 mkdir -p /home/minio/data 把二进制文件上传到安装目录后&#xff0c;执行&#xff1a; chmod x minio //…

(leetcode)20. 有效的括号 13. 罗马数字转整数 14. 最长公共前缀

目录 20. 有效的括号 思路 代码 13. 罗马数字转整数 思路 代码 14. 最长公共前缀 思路 代码 20. 有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&…

使用element-plus组件,修改date-picker默认样式

使用深度选择器来修改子组件的样式&#xff0c;今天遇到一个需求&#xff0c;在el-drawer中嵌入的el-date-picker&#xff0c;再一次总结一下深度选择器的用法&#xff0c;需求如下&#xff1a; template内容&#xff1a; <el-drawer size"70%" v-model"dr…

ZVL3网络分析仪

ZVL3 Rohde&Schwarz ZVL3 3G矢量网络分析仪|罗德与施瓦茨 9KHz至3GHz 罗德与施瓦茨Rohde&Schwarz 性能特点&#xff1a; 频率范围 9kHz至3GHz/6 GHz(典型值为5kHz) 测量时间(201个测量点&#xff0c;以校准的双端口) <75ms 数据传输(201个测量点) 在100Mbit/sLAN…