前端面经-CSS篇(五)---布局(3)浮动、table布局、响应式布局

目录

一、浮动

1. 基本概念:float

float 的取值:

2. 浮动的常见效果和行为

3. 清除浮动(clearfix)

解决方法:clearfix

4. 浮动常见应用场景

6. 浮动的缺点和限制

二、table布局

1. display: table 的基本概念

2. 常见的 display 值

 3. 基本的 Table 布局示例

4. 垂直居中对齐

5.使用 table-layout 属性

6.使用 caption 和 thead, tbody, tfoot

三、响应式布局

1. 响应式布局的关键要素

2. 媒体查询(Media Queries)

例子:根据视口宽度调整样式

3. 使用百分比、vw 和 vh 单位进行流式布局

百分比布局

vw 和 vh 单位

4. 使用 Flexbox 创建响应式布局

媒体查询与 Flexbox 结合

5. 使用 CSS Grid 创建响应式布局

媒体查询与 Grid 布局结合

6. 响应式布局的技巧和注意事项

媒体查询的组成部分

媒体类型(Media Types)

媒体特性(Media Features)

逻辑运算符(and、not、or)


一、浮动

在 CSS 中,浮动float)是一个用于将元素从文档的常规流中移出的布局技术,最初用于实现文本环绕效果(如文本围绕图片)。浮动元素会向左或向右浮动,直到其容器的边界为止。虽然浮动最初主要用于图文排版,但随着时间的推移,浮动也被用作布局的一种手段。

然而,浮动布局虽然曾经广泛用于网页布局(特别是多列布局),但它有一些局限性和缺点,因此在现代 CSS 布局中,flexboxgrid 等新布局模型已逐渐取代了浮动。

1. 基本概念:float

float 属性允许元素向左或向右浮动,并将文档的其他内容环绕在它的周围。

float 的取值:
  • left:将元素向左浮动,元素会靠着父容器的左边缘浮动,其他内容将围绕在其右侧。

  • right:将元素向右浮动,元素会靠着父容器的右边缘浮动,其他内容将围绕在其左侧。

  • none:默认值,表示元素不会浮动,它会按照正常文档流排列。

  • inherit:继承父元素的浮动值。

2. 浮动的常见效果和行为

  1. 浮动元素的文档流

    • 浮动的元素会脱离正常文档流,但它们仍然会占用空间。其他内容会围绕浮动元素排列,直到浮动元素的容器没有足够的空间为止。

    • 如果多个元素浮动,它们会排列在同一行,直到容器的宽度被占满。如果容器的宽度不足,它们会换到下一行。

    • 浮动的曲线:元素浮动了,先向上移动,直到贴靠到父元素的边界,接着,如果是左浮动,就向左移动,直到移动到父元素的左边界,如果是向右浮动,就向右移动,直接移动到父元素的右边界。

  2. 浮动元素的高度问题

    • 当元素浮动时,它会脱离文档流,这可能导致父容器的高度“塌陷”。这是因为父容器没有包含浮动元素的实际高度,因此会显示为没有高度。这个问题通常需要通过清除浮动(clearfix)来解决。

  3. 文本环绕

    • 浮动最常见的应用是让文本围绕图像排列。当图像浮动时,文本会环绕在图像的左侧或右侧。

3. 清除浮动(clearfix)

由于浮动元素脱离文档流,可能导致父容器的高度“塌陷”,这个问题可以通过**清除浮动(clearfix)**来解决。

解决方法:clearfix
  1. 使用 clear 属性

    • 通过 clear 属性,指定元素在浮动元素之后显示,常用的值有:

      • left:清除左侧浮动。

      • right:清除右侧浮动。

      • both:清除左右两侧浮动。

        2、 清除浮动的常用技巧 - clearfix hack: 使用 :after 伪元素来清除浮动,这种方法通常应用于父容器,防止浮动元素导致父容器高度塌陷。

4. 浮动常见应用场景

  1. 图文混排

    • 常见应用:让文本围绕图像或其他浮动元素。

    • 例子:文章中嵌入图像,图像浮动在文本的左侧或右侧。

  2. 多列布局

    • 通过浮动,可以创建简单的多列布局。

    • 例如,将多个元素浮动到左侧或右侧,控制它们在容器中的排列。

        3.导航条

  • 使用浮动来实现水平或垂直的导航条,尤其是当菜单项需要并排显示时。

6. 浮动的缺点和限制

  1. 复杂性

    • 浮动布局可能导致页面变得难以维护和调试,尤其是对于复杂的布局。

  2. 对父容器的影响

    • 浮动元素会脱离文档流,导致父容器无法正确计算高度。通过 clearfix 等技术解决,但这些技术有时可能会增加额外的复杂度。

  3. 不适合多维布局

    • 浮动非常适用于简单的布局(如文本环绕图像、两列布局),但对于更复杂的多维布局(如响应式设计、大型网站的布局), FlexboxGrid 布局更为推荐。

二、table布局

CSS Table 布局是一个基于表格的布局方法,它通过设置元素的 display 属性为 table,模拟 HTML 表格的行为来构建网页布局。CSS Table 布局被设计用来提供一种 类表格的布局方式,适用于需要行和列结构的网页布局。

虽然现代的布局方法(如 FlexboxCSS Grid)更加灵活和强大,但在一些旧的布局场景中,CSS Table 布局仍然有它的适用场景。

学习这个的前提是你一定知道table是什么,不懂得可以去看看html怎么讲解table标签得

1. display: table 的基本概念

通过将某个元素的 display 属性设置为 table,它就会表现得像一个 HTML <table> 元素一样。可以与 display: table-rowdisplay: table-cell 等配合使用,创建表格样式的布局。

2. 常见的 display

### IoT硬件开发试经验 对于IoT硬件开发岗位的试,候选人不仅需要掌握基本的电子电路设计原理和嵌入式编程技能,还需要具备处理实际项目中的各种挑战的能力。在准备这类职位的试时,可以从以下几个方着手: #### 1. 基础理论知识 深入理解微控制器的工作机制、传感器接口技术以及无线通信模块的应用是必不可少的基础。例如,在对具体应用场景时如何选择合适的MCU型号及其外设资源分配方案;熟悉SPI/IIC等常见串行总线协议的操作方式。 #### 2. 实际操作能力 除了笔试之外,很多公司还会安排动手实践环节来考察应聘者的实战水平。这可能涉及到PCB板的设计与焊接、编写简单的固件程序实现特定功能或是搭建小型网络节点之间的数据传输链路等内容[^2]。 #### 3. 调试技巧 当遇到设备无法正常工作的情况时,能否快速有效地找到原因至关重要。因此要学会运用逻辑分析仪、示波器之类的工具辅助排查故障点所在位置,并通过调整参数设置或修改代码逻辑解决问题。 #### 4. 安全意识 随着越来越多敏感信息被上传至云端存储空间内,保障整个系统的安全性变得越来越重要。了解TLS/SSL加密算法的作用机理及其与其他主流物联网通讯标准(比如MQTT, CoAP)相结合的方式有助于增强个人竞争力[^3]。 ```c++ // 示例:使用MBED库初始化Wi-Fi连接并发送HTTP请求获取远程服务器时间戳 #include "mbed.h" #include "EthernetInterface.h" int main() { EthernetInterface eth; eth.connect(); TCPSocket socket; SocketAddress addr("time.nist.gov", 80); socket.open(&eth); socket.connect(addr); char send_data[] = "GET / HTTP/1.1\r\nHost: time.nist.gov\r\nConnection: close\r\n\r\n"; socket.send(send_data, strlen(send_data)); char recv_data[100]; int bytes_received = socket.recv(recv_data, sizeof(recv_data)); printf("Received %d bytes from server:\r\n%s", bytes_received, recv_data); socket.close(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值