「CSS|前端开发|页面布局」03 开发网站所需要知道的CSS:如何实现你想要的页面布局

news2025/1/13 10:32:08

本文主要介绍如何分析页面布局,了解HTML标签元素的默认布局以及如何修改标签元素的布局方式,最终能够结合CSS框架实现任意我们看到或者想到的页面布局。

文章目录

  • 本系列前文传送门
  • 一、场景说明
  • 二、页面布局设计逻辑
  • 三、CSS布局编写逻辑
    • HTML元素的默认布局
    • 修改元素布局
  • 四、布局案例
  • 五、「CSS框架 + 自由控制页面布局」让所想即所得

本系列前文传送门

  • 「Vue|网页开发|前端开发」01 快速入门:快速写一个Vue的HelloWorld项目
  • 「Vue|网页开发|前端开发」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转

一、场景说明

现代的网站美观程度是非常重要的一部分,这就需要使用CSS来对网站的外观和样式进行设计。现在已经有很多的CSS框架或者说组件库,比如:Element-UI, Bootstrap, Semantic UI, Tailwind CSS等等。

当提到网站的外观或者样式设计的时候,会涉及到两个部分,一个是单个元素的外观或样式,另一个是多个元素之间的位置或者排列。前者我认为是简单的,可以直接在组件库中选择对应的组件,然后调整对应的组件参数,甚至自己添加额外的css样式,都可以达到很好的效果。反而布局是我认为需要去掌握的重要内容。

二、页面布局设计逻辑

不同的网站在外观上也会使用不同的设计风格,比如:

  • 工具类网站会比较偏理工风,简洁甚至简陋。
  • 内容展示类的会更偏向商务,比如公司信息网站,商业查询类网站
  • 学习类的网站会比较偏向清新,色调明快之类的学生风格
  • 娱乐类的网站色彩会比较多样,布局也会比较通过较多的板块,较多的内容来体现娱乐内容的丰富

在大多数网站中,首页是一个比较重要的部分,同时首页的内容和布局也会比较丰富。我们可以看一些热门网站的首页:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

我们可以看到这些网页都是由不同的区域组成,然后不同区域里面的内容或者横向或者竖向排列。如何让内容在指定区域中,以及各个区域甚至是子区域按照我们希望的方式排列,就是页面布局的关键。

三、CSS布局编写逻辑

关于布局需要记住的三点就是:

  • HTML的元素(或者叫标签)可以分为两类:块元素行内元素
  • 块元素默认单独占据一行;行内元素默认并排在一行内
  • 要改变块元素和行内元素的占据空间,就需要使用CSSdisplay属性

HTML元素的默认布局

HTML常见的块元素和行内元素如下:

  • 块元素

    • <div>: 内容通用容器
    • <h1>~<h6>: 标题
    • <p>: 段落
    • <hr>: 创建一条水平线
    • <ol>: 定义有序列表
    • <ul>: 定义无序列表
    • <li>: 标签定义列表项目
    • <form>: 表单
    • <table>: 表格
    • <tbody>: 表格主体(正文)
    • <td>: 表格中的标准单元格
    • <tfoot>: 定义表格的页脚(脚注或表注)
    • <th>: 定义表头单元格
    • <thead>: 标签定义表格的表头
    • <tr>: 定义表格中的行
    • <header>: 页头
    • <footer>: 页脚
  • 行内元素

    • <span>: 用来区分段落的某一部分与其他部分
    • <a>: 链接
    • <img>: 图片

所以如果我们去看HelloWorld.vue里面的代码,如下:

<div class="hello">
    <h1>Hello Vue World!</h1>
    <h2>Essential Links</h2>
    <ul>    </ul>
    <h2>Ecosystem</h2>
    <ul>    </ul>
</div>

这段代码里有一个总的<div>,是块元素,所以会占整个行。
然后<div>里面在同一级别使用了<h1>, <h2>, <ul>, <h2>, <ul>,这些都是块元素,所以会在外层div所占据的块空间中,依次从上往下每一个标签占据一整行。

我们在浏览器中可以验证这一点,如下:
在这里插入图片描述

修改元素布局

当元素的默认布局不符合我们预期的时候,我们就需要去修改元素的布局,修改元素布局时我们通过修改元素的display属性来实现。比如:

  • 多个块状元素想要放在一行而不是多行display:inline-block;
  • 让行内元素变成占据一整行的块级布局:display:block;
  • 把元素变成行内元素:display:inline;
  • 隐藏元素:display:none;

元素隐藏一般搭配判断条件判断使用,只在某些情况下出现。比如页面滑动到一定位置显示广告位;或者用户做了某些点击行为后才展示对应的内容。

同样我们可以结合代码和浏览器内容来验证这些:
HelloWorld.vue中有如下代码:

<ul>
    <li>
        <a href="https://vuejs.org" target="_blank">
            Core Docs
        </a>
    </li>
    <li>
        <a href="https://forum.vuejs.org" target="_blank">
            Forum
        </a>
    </li>
    <li>
        <a href="https://chat.vuejs.org" target="_blank">
            Community Chat
        </a>
    </li>
    <li>
        <a href="https://twitter.com/vuejs" target="_blank">
            Twitter
        </a>
    </li>
    <br>
    <li>
        <a href="http://vuejs-templates.github.io/webpack/" target="_blank">
            Docs for This Template
        </a>
    </li>
</ul>

这里使用<li>标签列出了一些列表项,由于<li>是块元素,所以默认是展示多个列表项依次由上到下排列的效果。

但是HelloWorld.vue底下有如下css代码:

<style scoped>
li {
    display: inline-block;
    margin: 0 10px;
}
</style>

这使得多个块级元素<li>将并排在一行,于是有了浏览器中我们看到的布局效果:
在这里插入图片描述
这里第一个<ul>中有5个<li>,放了4个之后,行宽不够,所以第5个换了行。

同理,如果有其他的标签没有在上面罗列出来的常见块级元素清单中,可以直接查资料也可以自行验证,或者想验证行内元素的默认布局效果,可以一样通过结合代码和浏览器的方式去验证,如下:

<li>
    <a href="https://vuejs.org" target="_blank">
        Core Docs 1
    </a>
    <a href="https://vuejs.org" target="_blank">
        Core Docs 2
    </a>
</li>

在这里插入图片描述

四、布局案例

明白了布局的基本逻辑之后,我们就可以先画出自己预期的页面布局然后去实现,同时也可以去看其他网站的页面布局,然后使用同样的网页内容布局。

比如我们打开一个页面,然后就可以:

  • 从外到内,区分哪些是块级布局,哪些是行内布局
  • 然后去看实现的时候我们这些内容是使用哪些标签来表示
  • 如果标签本身是默认块级布局,而我们希望并排;或者标签是行内元素而我们希望由上到下排布,则可以将display属性修改成对应值即可。

如下:
在这里插入图片描述

  • 我们用蓝色框出了最外层的块级元素,一般是用div来承载内容。
  • 然后用红色框出了向内一个层级的元素,由于多个红框都是并列排的布局,所以如果这些红框里如果我们有用到块级标签,那么就需要给它们加上display: inline-block的样式。
  • 再向内一层,黄框是从上往下排列的,所以是块级布局,如果黄框部分有用行内元素来表示的,则修改加上display: block的样式来改成块级布局
  • 以此类推,可以分析绿框的部分也是块级布局。

五、「CSS框架 + 自由控制页面布局」让所想即所得

在能够自由控制页面布局的基础上,对单个元素的控制,比如:

  • 字体、颜色、行高、粗细
  • 背景颜色、透明度
  • 边框、间距、边角

这些内容都可以根据CSS框架文档中给出的组件参数来调整,如果需要添加自定义的样式,则可以参考CSS参数文档来定义符合自己预期的元素样式。

在框架定义好的样式的基础上添加自定义样式的方法也很简单,可以给要修改的元素新增一个类名称,然后在代码中用CSS添加样式,比如:

<style>
  // 定位class为"my_new_class_name"元素,修改它们的背景颜色
  .my_new_class_name {
    background-color: #d3dce6;
  }
</style>

除了有哪些css属性可以让我们自由定制样式之后,如果还有什么要学的,可能就是"如何定位希望修改的HTML元素"了。

掌握了页面布局的设计划分以及控制后,加上CSS框架,相信任何页面样式的设计,都只是时间问题。(●ˇ∀ˇ●) 芜湖~

写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇

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

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

相关文章

【附安装包】CorelCAD2023安装教程

软件下载 软件&#xff1a;CorelCAD版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;534.17M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.bai…

证券型代币成为新焦点!交易上链,合规也要上链?

“数字化正在使传统行业的边界变得模糊&#xff0c;这是一场真正的金融革命。”麦肯锡早在2017年的《在没有边界的世界中竞争》报告中就以此形容了数字化浪潮。随着对虚拟资产的全球接受度增加&#xff0c;监管机构也开始对其潜力展开讨论。 当代币被视为金融工具时&#xff0c…

java对时间序列每x秒进行分组

问题&#xff1a;将一个时间序列每5秒分一组&#xff0c;返回嵌套的list&#xff1b; 原理&#xff1a;int除int会得到一个int&#xff08;也就是损失精度&#xff09; 输入&#xff1a;排序后的list&#xff0c;每几秒分组值 private static List<List<Long>> get…

Yolov8-pose关键点检测:模型轻量化创新 | PConv结合c2f | CVPR2023 FasterNet

💡💡💡本文解决什么问题:新的partial convolution(PConv),通过同时减少冗余计算和内存访问可以更有效地提取空间特征。 PConv| GFLOPs从9.6降低至8.5,参数量从6482kb降低至6134kb, mAP50从0.921提升至0.925 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.n…

Centos7.9安装ElasticSearch6

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,同时也可以作为一个近实时的数据存储系统。接下来我们快速安装一个集群模式的ES. ## 1.安装JDK1.8 mv jdk-8u301-linux-x64.tar.gz /usr/local/ cd /usr/local/ …

深度学习——感受野以及与图像修复的问题

在CNN中&#xff0c;决定某一层输出结果中一个元素所对应的输入层的区域大小被称作感受野&#xff08;receptive field&#xff09;&#xff0c;指的是神经网络中一个神经元可以感知到的区域&#xff0c;在CNN中&#xff0c;即 上某个元素的计算受输入图像上影响的区域&#xf…

错误代码0x80131500要怎么解决?快速修复方法

错误代码0x80131500通常与.NET Framework 相关的问题有关。它可能表示.NET Framework的安装损坏、版本冲突或系统文件缺失等。下面我们一起来探讨一下解决错误代码0x80131500有哪些。 以下是一些解决方法 安装最新的.NET Framework版本&#xff1a;访问Microsoft官方网站&…

java ReentrantLock 锁 await、signal的用法

背景 在并发编程中&#xff0c;为了保证线程的原子执行&#xff0c;需要使用锁&#xff0c;jvm 内 可以使用 synchronized 和 ReentrantLock&#xff0c;如果是集群部署&#xff0c;我们可以使用Redis 分布式锁 其他的锁后面再介绍。 ReentrantLock 和 synchronized 1、Reent…

【93】PCI Expansion ROM

1、Expansion ROM PCIe、PCI设备可以提供Expansion ROM&#xff0c;Expansion ROM中存在设备初始化或者system boot的code。SystemBIOS在POST&#xff08;Power-on Self Test&#xff09;阶段&#xff0c;会枚举PCI设备&#xff0c;并判断有设备是否支持Expansion ROM&#xff…

贝锐蒲公英异地组网路由器如何设置虚拟串口功能?

蒲公英虚拟串口功能&#xff0c;可实现智能组网内的其它成员异地调试此串口&#xff0c;无需到现场进行调试&#xff0c;为企业降低运营成本、便捷掌控设备数据。 1. 蒲公英硬件设置串口 进入蒲公英云管理平台&#xff0c;点击【工业应用】->【串口设置】&#xff0c;开启…

23款奔驰S400商务型升级裸眼3D仪表盘,体验高配乐趣

3D驾驶员显示屏能帮助您密切留意该显示屏中的重要信息。驾驶辅助系统的警告图标和功能图标都有醒目的3D效果&#xff0c;能够立即引起驾驶员的注意。不仅如此&#xff0c;显示屏还能以出色的 3D 影像来显示车辆前方的汽车、卡车、客车和摩托车等车辆。

Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873

文章目录 0.前言1.参考文档2.基础介绍描述如果满足以下任一条件&#xff0c;应用程序就不会有太大风险&#xff1a;受影响的Spring产品和版本 3.解决方案3.1. 升级版本3.2. 替代方案 0.前言 背景&#xff1a;公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全…

Spring——Spring Boot基础

文章目录 第一个helloword项目新建 Spring Boot 项目Spring Boot 项目结构分析SpringBootApplication 注解分析新建一个 Controller大功告成,运行项目 简而言之&#xff0c;从本质上来说&#xff0c;Spring Boot 就是 Spring&#xff0c;它做了那些没有它你自己也会去做的 Spri…

博流RISC-V芯片BL616开发环境搭建

文章目录 1、工具安装2、代码下载3、环境变量配置4、下载交叉编译器5、编译与下载运行6、使用ninja编译 本文分别介绍博流RISC-V芯片 BL616 在 Windows和Linux 下开发环境搭建&#xff0c;本文同时适用BL618&#xff0c;BL602&#xff0c;BL702&#xff0c;BL808系列芯片。 1、…

Viobot输出数据说明

一.原始数据 1.ROS话题 1)相机原始图像数据 Type: sensor_msgs::Image Topic: 左目&#xff1a;/image_left 右目&#xff1a;/image_right 2&#xff09;imu数据 Type: sensor_msgs::Imu Topic: /imu 3&#xff09;TOF数据 点云数据&#xff1a; Type: sensor_msgs::P…

DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件

操作系统内核与云基础软件 鲲鹏软件构成硬件特定软件 鲲鹏软件构成硬件特定软件1. Boot Loader2. SBSA 与 SBBR3. UEFI4. ACPI 操作系统内核Linux系统调用Linux进程调度Linux内存管理Linux虚拟文件系统Linux网络子系统Linux进程间通信Linux可加载内核模块Linux设备驱动程序Linu…

警惕!10本“On Hold”期刊已被踢,仍有12本期刊被标记!

目录更新&#xff1a;2023年8月SCI、SSCI、ESCI期刊 2023年8月21日&#xff0c;科睿唯安更新了WOS期刊目录&#xff0c;此次8月更新中&#xff0c;有24本期刊发生更名或被剔除&#xff0c;其中有10本期刊曾被标记为“On Hold”状态&#xff0c;现已被踢出SCIE/ESCI数据库&…

C语言网络编程实现广播

1.概念 如果同时发给局域网中的所有主机&#xff0c;称为广播 我们可以使用命令查看我们Linux下当前的广播地址&#xff1a;ifconfig 2.广播地址 以192.168.1.0 (255.255.255.0) 网段为例&#xff0c;最大的主机地址192.168.1.255代表该网段的广播地址&#xff08;具体以ifcon…

wmv格式转换成mp4怎么转?分享一种简单好用转换方法

WMV格式和MP4格式是两种常见的视频格式。WMV格式通常是Windows Media Player默认的格式。虽然在Windows上播放WMV文件很容易&#xff0c;但是在其他平台上可能会遇到兼容性问题。另一方面&#xff0c;MP4格式是一种通用的视频格式&#xff0c;几乎可以在所有设备上播放&#xf…

ATA-3080功率放大器的电子实验案例(案例合集)

ATA-3080是一款理想的可放大交、直流信号的功率放大器。最大输出720Wp功率&#xff0c;可以驱动功率型负载。凭借其优异的指标参数受到不少电子工程师的喜欢&#xff0c;其在电子实验中的应用也非常频繁&#xff0c;下面为大家整理出ATA-3080功率放大器的应用案例合集&#xff…